华为云用户手册
-
配置作业基本信息 为作业配置责任人、优先级信息后,用户可根据责任人、优先级来检索相应的作业。操作方法如下: 单击画布右侧“作业基本信息”页签,展开配置页面,配置如表2所示的参数。 表2 作业基本信息 参数 说明 责任人 自动匹配创建作业时配置的作业责任人,此处支持修改。 作业委托 当“作业调度身份是否可配置”设置为“是”,该参数可见。 配置委托后,作业执行过程中,以委托的身份与其他服务交互。 作业优先级 自动匹配创建作业时配置的作业优先级,此处支持修改。 实例超时时间 配置作业实例的超时时间,设置为0或不配置时,该配置项不生效。如果您为作业设置了异常通知,当作业实例执行时间超过超时时间,将触发异常通知,发送消息给用户,作业不会中断,继续运行。 实例超时是否忽略等待时间 配置实例超时是否忽略等待时间。 如果勾选上,表示实例运行时等待时间不会被计入超时时间,可前往默认项设置修改此策略。 如果未选上,表示实例运行时等待时间会被计入超时时间。 自定义字段 配置自定义字段的参数名称和参数值。 作业标签 配置作业的标签,用以分类管理作业。 单击“新增”,可给作业重新添加一个标签。也可选择管理作业标签中已配置的标签。
-
作业开发流程 作业开发功能提供如下能力: 提供图形化设计器,支持拖拉拽方式快速构建数据处理工作流。 预设数据集成、计算&分析、资源管理、数据监控、其他等多种任务类型,通过任务间依赖完成复杂数据分析处理。 支持多种作业调度方式。 支持导入和导出作业。 支持作业状态运维监控和作业结果通知。 提供编辑锁定能力,支持多人协同开发场景。 支持作业的版本管理能力,支持生成保存版本和提交版本。 保存版本时,一分钟内多次保存只记录一次版本。对于中间数据比较重要时,可以通过“新增版本”按钮手动增加保存版本。 支持单击右键,可快速复制作业名称,同时可以快速的关闭已打开的作业页签。 在 MRS API连接模式下,单任务MRS Spark SQL和MRS Hive SQL运行完以后,在执行结果中查看运行日志,增加一键跳转MRS Yarn查看日志的链接。 企业模式下,开发作业时,单击页面上方的“前往发布”跳转到任务发布页面。 支持对“已提交”、“未提交”、“已调度”和“未调度”的作业进行筛选。同时未提交的作业通过红色进行标识,未调度的作业通过黄色进行标识。 单任务作业支持SQL编辑器风格配置。单击“风格配置”,可以对编辑器、操作栏、注释模板进行配置、以及查询SQL脚本编辑器可使用的快捷键。 单任务SQL查询结果展示支持表格和列表两种展示方式。单击“风格配置”,在“编辑器配置”里面可以对SQL查询结果展示进行配置。 支持通过“责任人”和“更新时间”进行过滤查询,方便快速过滤出最近更新的作业。 开发作业前,您可以通过图1了解数据开发模块作业开发的基本流程。 图1 作业开发流程 新建作业:当前提供两种作业类型:批处理和实时处理,分别应用于批量数据处理和实时连接性数据处理,其中批处理作业还支持Pipeline和单节点作业两种模式,具体请参见新建作业。 开发作业:基于新建的作业,进行作业开发,您可以进行编排、配置节点。具体请参见开发Pipeline作业。 调度作业:配置作业调度任务。具体请参见调度作业。 如果您的作业是批处理作业,您可以配置作业级别的调度任务,即以作业为一个整体进行调度,支持单次调度、周期调度、事件驱动调度三种调度方式。具体请参见配置作业调度任务(批处理作业)。 如果您的作业是实时处理作业,您可以配置节点级别的调度任务,即每一个节点可以独立调度,支持单次调度、周期调度、事件驱动调度三种调度方式。具体请参见配置节点调度任务(实时作业)。 提交版本并解锁:作业调度配置完成后,您需要提交版本并解锁,提交版本并解锁后才能用于调度运行,便于其他开发者修改。具体请参见提交版本。 (可选)管理作业:作业开发完成后,您可以根据需要,进行作业管理。具体请参见(可选)管理作业。 发布作业。企业模式下需要发布作业,具体请参见发布作业任务。 父主题: 作业开发
-
前提条件 已新增Shell脚本,请参见新建脚本。 已新建主机连接,该Linux主机用于执行Shell脚本,请参见主机连接参数说明。 连接主机的用户需要具有主机/tmp目录下文件的创建与执行权限。 Shell或Python脚本可以在该E CS 主机上运行的最大并发数由ECS主机的/etc/ssh/sshd_config文件中MaxSessions的配置值确定。请根据Shell或Python脚本的调度频率合理配置MaxSessions的值。 当前用户已锁定该脚本,否则需要通过“抢锁”锁定脚本后才能继续开发脚本。新建或导入脚本后默认被当前用户锁定,详情参见编辑锁定功能。
-
下载或转储脚本执行结果 脚本运行成功后,支持下载和转储SQL脚本执行结果。系统默认支持所有用户都能下载和转储SQL脚本的执行结果。如果您不希望所有用户都有该操作权限,可参考配置数据导出策略进行配置。 脚本执行完成后在“执行结果”中,单击“下载”可以直接下载CSV格式的结果文件到本地。可以在下载中心查看下载记录。 脚本执行完成后在“执行结果”中,单击“转储”可以将脚本执行结果转储为CSV和JSON格式的结果文件到OBS中,详情请参见表3。 转储功能依赖于OBS服务,如无OBS服务,则不支持该功能。 当前仅支持转储SQL脚本查询(query)类语句的结果。 DataArts Studio 的下载或转储的SQL结果中,如果存在英文逗号、换行符等这种特殊符号,可能会导致数据错乱、行数变多等的问题。 表3 转储配置 参数 是否必选 说明 数据格式 是 目前支持导出CSV和JSON格式的结果文件。 资源队列 否 选择执行导出操作的 DLI 队列。当脚本为DLI SQL时,配置该参数。 压缩格式 否 选择压缩格式。当脚本为DLI SQL时,配置该参数。 none bzip2 deflate gzip 存储路径 是 设置结果文件的OBS存储路径。选择OBS路径后,您需要在选择的路径后方自定义一个文件夹名称,系统将在OBS路径下创建文件夹,用于存放结果文件。 您也可以到下载中心配置默认的OBS路径地址,配置好后在转储时会默认填写。 覆盖类型 否 如果“存储路径”中,您自定义的文件夹在OBS路径中已存在,选择覆盖类型。当脚本为DLI SQL时,配置该参数。 覆盖:删除OBS路径中已有的重名文件夹,重新创建自定义的文件夹。 存在即报错:系统返回错误信息,退出导出操作。 是否导出列名 否 是:导出列名 否:不导出列名 字符集 否 UTF-8:默认字符集。 GB2312:当导出数据中包含中文字符集时,推荐使用此字符集。 GBK:国家标准GB2312基础上扩容后兼容GB2312的标准。 引用字符 否 仅在数据格式为csv格式时支持配置引用字符。 引用字符在导出作业结果时用于标识文本字段的开始和结束,即用于分割字段。 仅支持设置一个字符。默认值是英文双引号(")。 主要用于处理包含空格、特殊字符或与分隔符相同字符的数据。 关于“引用字符”和“转义字符”的使用示例请参考引用字符和转义字符使用示例。 转义字符 否 仅在数据格式为csv格式时支持配置转义字符。 在导出结果中如果需要包含特殊字符,如引号本身,可以使用转义字符(反斜杠 \ )来表示。 仅支持设置一个字符。默认值是英文反斜杠(\)。 常用转义字符的场景: 假设两个引用字符之间的数据内容存在第三个引用字符,则在第三个引用字符前加上转义字符,从而避免字段内容被分割。 假设数据内容中原本就存在转义字符,则在这个原有的转义字符前再加一个转义字符,避免原来的那个字符起到转义作用。 关于“引用字符”和“转义字符”的使用示例请参考引用字符和转义字符使用示例。 相对于直接查看SQL脚本的执行结果,通过下载和转储能够支持获取更多的执行结果。各类SQL脚本查看、下载、转储支持的规格如表4所示。 表4 SQL脚本支持查看/下载/转储规格 SQL类型 在线查看最大结果条数 下载最大结果条数 转储最大结果 DLI 10000 1000 无限制 Hive 1000 1000 10000条或3MB DWS 1000 1000 10000条或3MB Spark 1000 1000 10000条或3MB RDS 1000 1000 不支持 Presto 1000 下载结果直接转储至OBS,条数无限制。 无限制 ClickHouse 1000 1000 10000条或3MB HetuEngine 1000 1000 10000条或3MB Impala 1000 1000 10000条或3MB Doris 1000 1000 1000
-
引用字符和转义字符使用示例 引用字符和转义字符使用说明: 引用字符:用于识别分割字段,默认值:英文双引号(")。 转义字符:在导出结果中如果需要包含特殊字符,如引号本身,可以使用转义字符(反斜杠 \ )来表示。默认值:英文反斜杠(\)。 假设两个quote_char之间的数据内容存在第三个quote_char,则在第三个quote_char前加上escape_char,从而避免字段内容被分割。 假设数据内容中原本就存在escape_char,则在这个原有的escape_char前再加一个escape_char,避免原来的那个字符起到转义作用。 应用示例: 在进行转储时,如果引用字符和转义字符不填,如下图所示。 下载的.csv用excel打开以后如下图所示,是分成两行的。 在转储时,如果引用字符和转义字符都填写,比如,引用字符和转义字符都填英文双引号("),则下载以后查看结果如下图所示。
-
脚本开发流程 脚本开发功能提供如下能力: 提供在线脚本编辑器,支持进行SQL、Shell、Python等脚本在线代码开发和调测。 支持导入和导出脚本。 支持使用变量和函数。 提供编辑锁定能力,支持多人协同开发场景。 支持脚本的版本管理能力,支持生成保存版本和提交版本。 保存版本时,一分钟内多次保存只记录一次版本。对于中间数据比较重要时,可以通过“新增版本”按钮手动增加保存版本。 支持单击右键,可快速复制脚本名称,同时可以快速的关闭已打开的脚本页签。 在MRS API连接模式下,MRS Spark SQL和MRS Hive SQL脚本运行完以后,在执行结果中查看运行日志,增加一键跳转MRS Yarn查看日志的链接。 企业模式下,开发脚本时,鼠标放置在上,单击“前往发布”跳转到任务发布页面。 支持对“已提交”和“未提交”的脚本进行筛选。未提交的脚本通过红色进行标识。 系统支持脚本参数以弹框的形式进行展示,参数名不能修改,参数值可以修改。你可以单击“测试参数”查看脚本中所引用的参数信息,同时可以查看环境中已配置的环境变量信息,不可修改,SQL语句中的参数可以按照参数名进行排序。 支持SQL编辑器风格配置。鼠标放置在上,单击“风格配置”,可以对编辑器、操作栏、注释模板进行配置、以及查询SQL脚本编辑器可使用的快捷键。 SQL查询结果展示支持表格和列表两种展示方式。单击“风格配置”,在“编辑器配置”里面可以对SQL查询结果展示进行配置。 企业模式下,支持从脚本开发界面快速前往发布。鼠标放置在上,单击“前往发布”,进入待发布任务界面。 支持Hive SQL、DLI SQL、DWS SQL、RDS SQL和Impala SQL脚本可以查看右侧的数据表,单击表名前面的单选框,可以查看该数据的列名、字段类型和描述。 支持通过“责任人”和“更新时间”进行过滤查询,方便快速过滤出最近更新的脚本。 脚本开发的使用流程如下: 图1 脚本开发流程 新建脚本:新建相应类型的脚本。具体请参见新建脚本。 开发脚本:基于新建的脚本,进行脚本的在线开发、调试和执行。具体请参见开发脚本。 提交版本并解锁:脚本开发完成后,您需要提交版本并解锁,提交版本并解锁后才能正式地被作业调度运行,便于其他开发者修改。具体请参见提交版本。 (可选)管理脚本:脚本开发完成后,您可以根据需要,进行脚本管理。具体请参见(可选)管理脚本。 发布脚本。企业模式下需要发布脚本,具体请参见发布脚本任务。 父主题: 脚本开发
-
相关操作 查看表详情:在脚本开发导航栏,选择,展开下方的数据连接至数据表层级,右键单击表名称,选择“查看表详情”,可查看如表4所示的数据表信息。 表4 表详情页面 页签名称 说明 表信息 显示数据表的基本信息和存储信息。 字段信息 显示数据表的字段信息。 数据预览 预览数据表的10条记录。 DDL 显示DLI/DWS/MRS Hive数据表的DDL。 删除表:在脚本开发导航栏,选择,展开下方的数据连接至数据表层级,右键单击表名称,选择“删除”后,在弹出的页面中单击“确定”完成删除。 删除操作不可撤销,请谨慎操作。
-
参数说明 表5 DLI数据表 参数 是否必选 说明 基本属性 表名 是 数据表的名称。只能包含英文小写字母、数字、“_”,不能为纯数字,不能以“_”开头,且长度为1~63个字符。 别名 否 数据表的别名,只能包含中文字符、英文字母、数字、“_”,不能为纯数字,不能以“_”开头,且长度为1~63个字符。 数据连接类型 是 数据表所属的数据连接类型。系统默认。 数据连接 是 数据表所属的数据连接。系统默认。 数据库 是 数据表所属的数据库。系统默认。 数据位置 是 选择数据存储的位置: OBS DLI 数据格式 是 选择数据的格式。“数据位置”为“OBS”时,配置该参数。 parquet:支持读取不压缩、snappy压缩、gzip压缩的parquet数据。 csv:支持读取不压缩、gzip压缩的csv数据。 orc:支持读取不压缩、snappy压缩的orc数据。 json:支持读取不压缩、gzip压缩的json数据。 路径 是 选择数据存储的OBS路径。“数据位置”为“OBS”时,配置该参数。 如果OBS路径不存在或者OBS桶不存在,系统支持可以自动创建OBS目录。 说明: 如果OBS桶创建超过上限,系统会自动提示“创建obs目录失败,错误原因:[Create OBS Bucket failed:TooManyBuckets:You have attempted to create more buckets than allowed]”。 表描述 否 数据表的描述信息。 表结构 列类型 是 选择列类型。包含分区列和普通列。系统默认普通列。 列名 是 填写列名,列名不能重复。 类型 是 选择数据类型,具体说明请参见《 数据湖探索 SQL语法参考》的数据类型。 列描述 否 填写列的描述信息。 操作 否 单击,增加列。 单击,删除列。 表6 DWS数据表 参数 是否必选 说明 基本属性 表名 是 数据表的名称。只能包含英文字母、数字、“_”,不能为纯数字,不能以“_”开头,且长度为1~63个字符。 别名 否 数据表的别名,只能包含中文字符、英文字母、数字、“_”,不能为纯数字,不能以“_”开头,且长度为1~63个字符。 数据连接类型 是 数据表所属的数据连接类型。系统默认。 数据连接 是 数据表所属的数据连接。系统默认。 数据库 是 数据表所属的数据库。系统默认。 模式 是 选择数据库的模式。 表描述 否 数据表的描述信息。 高级选项 否 提供以下高级选项: 选择数据表的存储方式 行存模式 列存模式 选择数据表的压缩级别 行存模式:压缩级别的有效值为YES/NO。 列存模式:压缩级别的有效值为YES/NO/LOW/MIDDLE/HIGH,还可以配置列存模式同一压缩级别下不同的压缩水平0-3(数值越大,表示同一压缩级别下压缩比越大)。 表结构 列名 是 填写列名,列名不能重复。 数据分类 是 选择数据类型的类别: 数值类型 货币类型 布尔类型 二进制类型 字符类型 时间类型 几何类型 网络地址类型 位串类型 文本搜索类型 UUID类型 JSON类型 对象标识符类型 类型 是 选择数据类型,具体说明请参见《 数据仓库 服务开发指南》的数据类型。 列描述 否 填写列的描述信息。 是否建ES索引 否 单击复选框时,表示需要建立ES索引。建立ES索引时,请同时在“CloudSearch集群名”中选择建立好的 CSS 集群。如何创建CSS集群,请参见《 云搜索服务 用户指南》的创建集群。 ES索引数据类型 否 选择ES索引的数据类型: text keyword date long integer short byte double boolean binary 操作 否 单击,增加列。 单击,删除列。 表7 MRS Hive数据表 参数 是否必选 说明 基本属性 表名 是 数据表的名称。只能包含英文小写字母、数字、“_”,不能为纯数字,不能以“_”开头,且长度为1~63个字符。 别名 否 数据表的别名,只能包含中文字符、英文字母、数字、“_”,不能为纯数字,不能以“_”开头,且长度为1~63个字符。 数据连接类型 是 数据表所属的数据连接类型。系统默认。 数据连接 是 选择数据表所属的数据连接。系统默认。 数据库 是 选择数据表所属的数据库。系统默认。 表描述 否 数据表的描述信息。 表结构 列名 是 填写列名,列名不能重复。 数据分类 是 选择数据类型的类别: 原始类型 ARRAY MAP STRUCT UNION 类型 是 选择数据类型,具体说明请参见LanguageManual DDL。 列描述 否 填写列的描述信息。 操作 否 单击,增加列。 单击,删除列。 表8 MRS Spark数据表 参数 是否必选 说明 基本属性 表名 是 数据表的名称。只能包含英文小写字母、数字、“_”,不能为纯数字,不能以“_”开头,且长度为1~63个字符。 别名 否 数据表的别名,只能包含中文字符、英文字母、数字、“_”,不能为纯数字,不能以“_”开头,且长度为1~63个字符。 数据连接类型 是 数据表所属的数据连接类型。系统默认。 数据连接 是 选择数据表所属的数据连接。系统默认。 数据库 是 选择数据表所属的数据库。系统默认。 表描述 否 数据表的描述信息。 表结构 列名 是 填写列名,列名不能重复。 数据分类 是 选择数据类型的类别: 原始类型 ARRAY MAP STRUCT UNION 类型 是 选择数据类型,具体说明请参见LanguageManual DDL。 列描述 否 填写列的描述信息。 操作 否 单击,增加列。 单击,删除列。
-
数据管理流程 数据管理功能可以协助用户快速建立数据模型,为后续的脚本和作业开发提供数据实体。通过数据管理,您可以: 支持管理DWS、MRS Hive、MRS Spark、DLI等多种 数据湖 。 支持可视化和DDL方式管理数据库表。 注意,在MRS API连接方式下,不支持通过可视化方式查看与管理该连接下的数据库、数据表和字段。 单击可以查看数据连接目录树下的数据库、数据表以及字段信息。DWS SQL、DLI SQL、MRS Hive SQL、MRS Spark SQL代理模式均支持查看目录树,其他数据连接均不支持。 如果您在使用数据开发前,已创建了数据连接和对应的数据库和数据表,则可跳过数据管理操作,直接进入脚本开发或作业开发。 数据管理的使用流程如下: 图1 数据管理流程 创建数据连接,连接相关数据湖底座服务。具体请参见新建数据连接。 基于相应服务,新建数据库。具体请参见新建数据库。 如果是DWS连接,则需要新建数据库模式;否则直接新建数据表。具体请参见(可选)新建数据库模式。 新建数据表。具体请参见新建数据表。 父主题: 数据管理
-
数据开发中的对象 数据连接:定义访问数据实体存储(计算)空间所需信息的集合,包括连接类型、名称和登录信息等。 解决方案:解决方案为用户提供便捷的、系统的方式管理作业,更好地实现业务需求和目标。每个解决方案可以包含一个或多个业务相关的作业,一个作业可以被多个解决方案复用。 作业:作业由一个或多个节点组成,执行作业可以完成对数据的一系列操作。 脚本:脚本(Script)是一种批处理文件的延伸,是一种纯文本保存的程序,一般来说的计算机脚本程序是确定的一系列控制计算机进行运算操作动作的组合,在其中可以实现一定的逻辑分支等。 节点:定义对数据执行的操作。 资源:用户可以上传自定义的代码或文本文件作为资源,以便在节点运行时调用。 表达式:数据开发作业中的节点参数可以使用表达式语言(Expression Language,简称EL),根据运行环境动态生成参数值。数据开发EL表达式包含简单的算术和逻辑计算,引用内嵌对象,包括作业对象和一些工具类对象。 环境变量:环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所使用到的信息。 补数据:手工触发周期方式调度的作业任务,生成某时间段内的实例。
-
数据开发的主要功能 表1 数据开发的主要功能 支持的功能 说明 数据管理 支持管理DWS、DLI、MRS Hive等多种数据仓库。 支持可视化和DDL方式管理数据库表。 脚本开发 提供在线脚本编辑器,支持多人协作进行SQL、Shell、Python脚本在线代码开发和调测。 支持使用变量和函数。 作业开发 提供图形化设计器,支持拖拉拽方式快速构建数据处理工作流。 预设数据集成、SQL、Shell等多种任务类型,通过任务间依赖完成复杂数据分析处理。 支持导入和导出作业。 资源管理 支持统一管理在脚本开发和作业开发使用到的file、jar、archive类型的资源。 作业调度 支持单次调度、周期调度和事件驱动调度,周期调度支持分钟、小时、天、周、月多种调度周期。调度周期配置为小时,系统支持按间隔小时和离散小时配置调度周期。 运维监控 支持对作业进行运行、暂停、恢复、终止等多种操作。 支持查看作业和其内各任务节点的运行详情。 支持配置多种方式报警,作业和任务发生错误时可及时通知相关人,保证业务正常运行。
-
配置SAP HANA源端参数 SAP HANA作为源端作业参数如表1所示。 表1 SAP HANA作源端时的作业参数 参数类型 参数名 说明 取值样例 基本参数 使用SQL语句 导出关系型数据库的数据时,您可以选择使用自定义SQL语句导出。 否 SQL语句 “使用SQL语句”选择“是”时,您可以在这里输入自定义的SQL语句, CDM 将根据该语句导出数据。 说明: SQL语句只能查询数据,支持join和嵌套写法,但不能有多条查询语句,比如 select * from table a; select * from table b。 不支持with语句。 不支持注释 ,比如 "--" ,“/*”。 不支持增删改操作,包括但不限于以下操作: load data delete from alter table create table drop table into outfile 如果SQL语句过长,会导致请求过长下发失败,继续创建作业系统会报错“错误请求”,此时您需要简化或清空SQL语句,再次尝试继续创建作业。 select id,name from sqoop.user; 模式或表空间 “使用SQL语句”选择“否”时,显示该参数,表示待抽取数据的模式或表空间名称。单击输入框后面的按钮可进入模式选择界面,用户也可以直接输入模式或表空间名称。 如果选择界面没有待选择的模式或表空间,请确认对应连接里的账号是否有元数据查询的权限。 说明: 该参数支持配置通配符(*),实现导出以某一前缀开头或者以某一后缀结尾的所有数据库。例如: SCHEMA*表示导出所有以“SCHEMA”开头的数据库。 *SCHEMA表示导出所有以“SCHEMA”结尾的数据库。 *SCHEMA*表示数据库名称中只要有“SCHEMA”字符串,就全部导出。 SCHEMA_E 表名 “使用SQL语句”选择“否”时,显示该参数,表示要抽取的表名。单击输入框后面的按钮可进入表的选择界面,用户也可以直接输入表名称。 如果选择界面没有待选择的表,请确认表是否已经创建,或者对应连接里的账号是否有元数据查询的权限。 该参数支持配置为时间宏变量,且一个路径名中可以有多个宏定义变量。使用时间宏变量和定时任务配合,可以实现定期同步新增数据,详细说明请参见使用时间宏变量完成增量同步。 说明: 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 说明: 表名支持配置通配符(*),实现导出以某一前缀开头或者以某一后缀结尾的所有表(要求表中的字段个数和类型都一样)。例如: table*表示导出所有以“table”开头的表。 *table表示导出所有以“table”结尾的表。 *table*表示表名中只要有“table”字符串,就全部导出。 table 高级属性 Where子句 “使用SQL语句”选择“否”时,显示该参数,表示配置抽取范围的Where子句,不配置时抽取整表。 该参数支持配置为时间宏变量,实现抽取指定日期的数据,详细说明请参见关系数据库增量迁移。 说明: 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 DS='${dateformat(yyyy-MM-dd,-1,DAY)}' 抽取区分字段 “使用SQL语句”选择“否”时,显示该参数,表示抽取数据时使用该字段进行数据切分,CDM依据此字段将作业分割为多个任务并发执行。一般使用数据均匀分布的字段,例如以自然增长的序号字段作为分区字段。 单击输入框后面的按钮可进入字段选择界面,用户也可以直接输入抽取分区字段名。 说明: 抽取分区字段支持TINYINT、SMALLINT、INTEGER、BIGINT、REAL、FLOAT、DOUBLE、NUMERIC、DECIMAL、BIT、BOOLEAN、DATE、TIME、TIMESTAMP类型,建议该字段带有索引。 id 父主题: 配置CDM作业源端参数
-
配置DWS源端参数 作业中源连接为DWS连接时,源端作业参数如表1所示。 表1 DWS作为源端时的作业参数 参数类型 参数名 说明 取值样例 基本参数 使用SQL语句 导出关系型数据库的数据时,您可以选择使用自定义SQL语句导出。 否 SQL语句 “使用SQL语句”选择“是”时,您可以在这里输入自定义的SQL语句,CDM将根据该语句导出数据。 说明: SQL语句只能查询数据,支持join和嵌套写法,但不能有多条查询语句,比如 select * from table a; select * from table b。 不支持with语句。 不支持注释 ,比如 "--" ,“/*”。 不支持增删改操作,包括但不限于以下操作: load data delete from alter table create table drop table into outfile 如果SQL语句过长,会导致请求过长下发失败,继续创建作业系统会报错“错误请求”,此时您需要简化或清空SQL语句,再次尝试继续创建作业。 select id,name from sqoop.user; 模式或表空间 “使用SQL语句”选择“否”时,显示该参数,表示待抽取数据的模式或表空间名称。单击输入框后面的按钮可进入模式选择界面,用户也可以直接输入模式或表空间名称。 如果选择界面没有待选择的模式或表空间,请确认对应连接里的账号是否有元数据查询的权限。 说明: 该参数支持配置通配符(*),实现导出以某一前缀开头或者以某一后缀结尾的所有数据库。例如: SCHEMA*表示导出所有以“SCHEMA”开头的数据库。 *SCHEMA表示导出所有以“SCHEMA”结尾的数据库。 *SCHEMA*表示数据库名称中只要有“SCHEMA”字符串,就全部导出。 SCHEMA_E 表名 “使用SQL语句”选择“否”时,显示该参数,表示要抽取的表名。单击输入框后面的按钮可进入表的选择界面,用户也可以直接输入表名称。 如果选择界面没有待选择的表,请确认表是否已经创建,或者对应连接里的账号是否有元数据查询的权限。 该参数支持配置为时间宏变量,且一个路径名中可以有多个宏定义变量。使用时间宏变量和定时任务配合,可以实现定期同步新增数据,详细说明请参见使用时间宏变量完成增量同步。 说明: 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 说明: 表名支持配置通配符(*),实现导出以某一前缀开头或者以某一后缀结尾的所有表(要求表中的字段个数和类型都一样)。例如: table*表示导出所有以“table”开头的表。 *table表示导出所有以“table”结尾的表。 *table*表示表名中只要有“table”字符串,就全部导出。 table 高级属性 Where子句 “使用SQL语句”选择“否”时,显示该参数,表示配置抽取范围的Where子句,不配置时抽取整表。 该参数支持配置为时间宏变量,实现抽取指定日期的数据,详细说明请参见关系数据库增量迁移。 说明: 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 DS='${dateformat(yyyy-MM-dd,-1,DAY)}' 抽取分区字段 “使用SQL语句”选择“否”时,显示该参数,表示抽取数据时使用该字段进行数据切分,CDM依据此字段将作业分割为多个任务并发执行。一般使用数据均匀分布的字段,例如以自然增长的序号字段作为分区字段。 单击输入框后面的按钮可进入字段选择界面,用户也可以直接输入抽取分区字段名。 说明: 抽取分区字段支持TINYINT、SMALLINT、INTEGER、BIGINT、REAL、FLOAT、DOUBLE、NUMERIC、DECIMAL、BIT、BOOLEAN、DATE、TIME、TIMESTAMP类型,建议该字段带有索引。 id 分区字段含有空值 是否允许分区字段包含空值。 是 拆分作业 选择“是”,会根据“作业拆分字段”值,将作业拆分为多个子作业并发执行。 说明: 仅支持目的端为DLI和Hive时配置该参数及作业拆分字段、拆分字段最小值、拆分字段最大值、子作业个数参数。 是 作业拆分字段 “拆分作业”选择“是”时,显示该参数,使用该字段将作业拆分为多个子作业并发执行。 - 拆分字段最小值 “拆分作业”选择“是”时,显示该参数,表示抽取数据时“作业拆分字段”的最小值。 - 拆分字段最大值 “拆分作业”选择“是”时,显示该参数,表示抽取数据时“作业拆分字段”的最大值。 - 子作业个数 “拆分作业”选择“是”时,显示该参数,根据“作业拆分字段”的最小值和最大值限定的数据范围,将作业拆分为多少个子作业执行。 - 父主题: 配置CDM作业源端参数
-
获取API信息 参考访问DataArts Studio实例控制台,登录DataArts Studio管理控制台。 在DataArts Studio控制台首页,选择对应工作空间的“数据服务”模块,进入数据服务页面。 在左侧导航栏选择服务版本(例如:专享版),进入总览页。 获取待调用API的调用地址、请求方法和入参信息。 在左侧导航栏中进入API管理,找到待调用的API,并单击API名称查看API的完整信息,保存调用地址、请求方法和入参信息。 调用地址:专享版支持内网地址和外网地址(外网地址需要您在创建集群时绑定弹性IP),如果需要在本地调用专享版API,需要使用外网地址,确保网络互通。共享版使用APIG地址,可直接选择该地址进行调用。 入参:本调用样例中创建了一个具备Query和Path入参位置的API,以便为您介绍入参应如何在调用时输入。 图1 保存调用地址、请求方法和入参信息
-
调用API 打开Chrome浏览器,新建一个空白页签。 参考获取API信息,在浏览器中输入API调用地址并直接访问。注意如果入参中包含Path和Query参数,则需要将调用地址中的{path}变量修改为Path参数具体取值,Query参数取值可以通过“?Query参数名=Query参数值”的形式添加到调用地址的最后,如本例中为“?query=1”。 https://xx.xx.xx.xx/getContestantInfo/2?query=1 如果您需要对调用结果进行自定义调整,则还可以配置如下Query参数,通过“&”连接多个参数: (可选)分页配置:默认情况下,对于配置方式和默认分页的脚本/MyBatis方式API,系统将默认赋值返回量。如果需要获取特定分页数据,您可以添加如下参数设置分页,其中pageSize表示分页后的页面大小,pageNum表示页码。 https://xx.xx.xx.xx/getContestantInfo/2?query=1&pageSize=100&pageNum=1 自定义分页的脚本/MyBatis方式API是在创建API时将分页逻辑写到取数SQL中,因此不支持在调用时修改分页设置。 (可选)排序配置:默认情况下,系统会根据排序参数信息给出默认排序情况,自定义排序默认为升序。如果需要修改排序情况,您可以修改pre_order_by参数。其中排序参数描述pre_order_by的值填写形式为“排序参数参数名:ASC”或“排序参数参数名:DESC”,其中ASC表示升序,DESC表示降序,多个排序参数描述以“英文分号”进行分隔。 https://xx.xx.xx.xx/getContestantInfo/2?query=1&pre_order_by=id:ASC;age:ASC;score:DESC 对于pre_order_by的值,您可以进行如下修改: 删掉某可选的排序参数,则此排序参数不再参与排序。 修改自定义排序方式的排序参数为升序或降序方式,则此排序参数按照修改后的排序方式排序。 pre_order_by的值,不支持进行如下修改,否则会修改不生效或导致调用报错。 删掉某必选的排序参数,则此排序参数依然会正常参与排序,删除不生效。 调整排序参数的前后顺序,则排序依然以配置方式API配置排序参数时的排序参数顺序或脚本/MyBatis方式API SQL中的排序参数顺序为准,调整不生效。 修改升序或降序的排序参数为其他排序方式,则会调用失败,不允许修改。 (可选)“返回总条数”配置:在创建API时,如果已打开“返回总条数”开关,则当API对应的数据表数据量较大时,获取数据总条数将会比较耗时。此时,如果需要在调用时不计算并返回数据总条数,可以修改use_total_num参数。use_total_num参数用于控制是否计算并返回数据总条数,值为1返回数据总条数,值非1不返回数据总条数。 https://xx.xx.xx.xx/getContestantInfo/2?query=1&use_total_num=0 浏览器访问后可查看返回结果。返回"errCode":"DLM.0"即表示API调用成功。如果失败,则请根据保错信息进行修复。 图2 使用浏览器调用API
-
调用API 打开Postman工具,新增一个API请求。 API请求配置如下。 请求方法和调用地址:参考获取API信息获取,注意如果入参中包含Path和Query参数,则需要将调用地址中的{path}变量修改为Path参数具体取值,Query参数取值可以通过“?Query参数名=Query参数值”的形式添加到调用地址的最后,如本例中为“?query=1”。 图2 请求方法和调用地址 Params:如果Query参数已经以“?Query参数名=Query参数值”的形式添加到调用地址的最后,则此处会自动生成Query Params的值,否则就需要手动输入。 图3 Params 如果您需要对调用结果进行自定义调整,则还可以配置如下Query参数: (可选)分页配置:默认情况下,对于配置方式和默认分页的脚本/MyBatis方式API,系统将默认赋值返回量。如果需要获取特定分页数据,您可以修改如下参数设置分页,其中pageSize表示分页后的页面大小,pageNum表示页码。 图4 分页参数设置 自定义分页的脚本/MyBatis方式API是在创建API时将分页逻辑写到取数SQL中,因此不支持在调用时修改分页设置。 (可选)排序配置:默认情况下,系统会根据排序参数信息给出默认排序情况,自定义排序默认为升序。如果需要修改排序情况,您可以修改pre_order_by参数。其中排序参数描述pre_order_by的值填写形式为“排序参数参数名:ASC”或“排序参数参数名:DESC”,其中ASC表示升序,DESC表示降序,多个排序参数描述以“英文分号”进行分隔。 图5 排序参数设置 对于pre_order_by的值,您可以进行如下修改: 删掉某可选的排序参数,则此排序参数不再参与排序。 修改自定义排序方式的排序参数为升序或降序方式,则此排序参数按照修改后的排序方式排序。 pre_order_by的值,不支持进行如下修改,否则会修改不生效或导致调用报错。 删掉某必选的排序参数,则此排序参数依然会正常参与排序,删除不生效。 调整排序参数的前后顺序,则排序依然以配置方式API配置排序参数时的排序参数顺序或脚本/MyBatis方式API SQL中的排序参数顺序为准,调整不生效。 修改升序或降序的排序参数为其他排序方式,则会调用失败,不允许修改。 (可选)“返回总条数”配置:在创建API时,如果已打开“返回总条数”开关,则当API对应的数据表数据量较大时,获取数据总条数将会比较耗时。此时,如果需要在调用时不计算并返回数据总条数,可以修改use_total_num参数。use_total_num参数用于控制是否计算并返回数据总条数,值为1返回数据总条数,值非1不返回数据总条数。 图6 “返回总条数”参数配置 Headers:将Header参数的参数名和参数值填入其中。 图7 Headers Body:选择raw格式,使用大括号{}将“"Body参数名":Body参数值”形式的字符串包围在内,如本例中为“{"body":4}”。 图8 Body API请求配置完成后,单击“Send”发送请求到服务端,然后查看返回结果。返回"errCode":"DLM.0"即表示API调用成功。如果失败,则请根据保错信息进行修复。 如调用失败提示“Could not get any response”,可根据提示在Postman设置中关闭“SSL certificate verification”选项或关闭Proxy代理,然后再次尝试运行。 图9 调用API
-
获取API信息 参考访问DataArts Studio实例控制台,登录DataArts Studio管理控制台。 在DataArts Studio控制台首页,选择对应工作空间的“数据服务”模块,进入数据服务页面。 在左侧导航栏选择服务版本(例如:专享版),进入总览页。 获取待调用API的调用地址、请求方法和入参信息。 在左侧导航栏中进入API管理,找到待调用的API,并单击API名称查看API的完整信息,保存调用地址、请求方法和入参信息。 调用地址:专享版支持内网地址和外网地址(外网地址需要您在创建集群时绑定弹性IP),如果需要在本地调用专享版API,需要使用外网地址,确保网络互通。共享版使用APIG地址,可直接选择该地址进行调用。 入参:本调用样例中创建了一个具备各类入参位置的API,以便为您介绍各类入参应如何在调用时输入。 图1 保存调用地址、请求方法和入参信息
-
调用API 打开Postman工具,新增一个API请求。 API请求配置如下。 请求方法和调用地址:参考获取API信息获取,注意如果入参中包含Path和Query参数,则需要将调用地址中的{path}变量修改为Path参数具体取值,Query参数取值可以通过“?Query参数名=Query参数值”的形式添加到调用地址的最后,如本例中为“?query=1”。 图4 请求方法和调用地址 Params:如果Query参数已经以“?Query参数名=Query参数值”的形式添加到调用地址的最后,则此处会自动生成Query Params的值,否则就需要手动输入。 图5 Params 如果您需要对调用结果进行自定义调整,则还可以配置如下Query参数: (可选)分页配置:默认情况下,对于配置方式和默认分页的脚本/MyBatis方式API,系统将默认赋值返回量。如果需要获取特定分页数据,您可以修改如下参数设置分页,其中pageSize表示分页后的页面大小,pageNum表示页码。 图6 分页参数设置 自定义分页的脚本/MyBatis方式API是在创建API时将分页逻辑写到取数SQL中,因此不支持在调用时修改分页设置。 (可选)排序配置:默认情况下,系统会根据排序参数信息给出默认排序情况,自定义排序默认为升序。如果需要修改排序情况,您可以修改pre_order_by参数。其中排序参数描述pre_order_by的值填写形式为“排序参数参数名:ASC”或“排序参数参数名:DESC”,其中ASC表示升序,DESC表示降序,多个排序参数描述以“英文分号”进行分隔。 图7 排序参数设置 对于pre_order_by的值,您可以进行如下修改: 删掉某可选的排序参数,则此排序参数不再参与排序。 修改自定义排序方式的排序参数为升序或降序方式,则此排序参数按照修改后的排序方式排序。 pre_order_by的值,不支持进行如下修改,否则会修改不生效或导致调用报错。 删掉某必选的排序参数,则此排序参数依然会正常参与排序,删除不生效。 调整排序参数的前后顺序,则排序依然以配置方式API配置排序参数时的排序参数顺序或脚本/MyBatis方式API SQL中的排序参数顺序为准,调整不生效。 修改升序或降序的排序参数为其他排序方式,则会调用失败,不允许修改。 (可选)“返回总条数”配置:在创建API时,如果已打开“返回总条数”开关,则当API对应的数据表数据量较大时,获取数据总条数将会比较耗时。此时,如果需要在调用时不计算并返回数据总条数,可以修改use_total_num参数。use_total_num参数用于控制是否计算并返回数据总条数,值为1返回数据总条数,值非1不返回数据总条数。 图8 “返回总条数”参数配置 Headers:将 获取Token 中保存的x-subject-token值填入X-Auth-Token的值中,并将Header参数的参数名和参数值填入其中。 图9 Headers Body:选择raw格式,使用大括号{}将“"Body参数名":Body参数值”形式的字符串包围在内,如本例中为“{"body":4}”。 图10 Body API请求配置完成后,单击“Send”发送请求到服务端,然后查看返回结果。返回"errCode":"DLM.0"即表示API调用成功。如果失败,则请根据保错信息进行修复。 如调用失败提示“Could not get any response”,可根据提示在Postman设置中关闭“SSL certificate verification”选项或关闭Proxy代理,然后再次尝试运行。 图11 调用API
-
约束与限制 通过 IAM 应用授权的IAM认证方式API,仅支持通过当前账号及其归属用户的Token进行调用,不支持其他账号及其归属用户调用。如有需要可以通过白名单授权的方式授权给其他账号,详见通过白名单授权IAM认证方式API。 如需在本地调用专享版API,则需在创建专享版集群时绑定一个弹性公网IP,作为实例的公网入口。共享版API默认可通过公网访问。 Token的有效期为24小时,需要同一个Token鉴权时,可以先缓存起来,避免频繁调用。
-
获取API信息 参考访问DataArts Studio实例控制台,登录DataArts Studio管理控制台。 在DataArts Studio控制台首页,选择对应工作空间的“数据服务”模块,进入数据服务页面。 在左侧导航栏选择服务版本(例如:专享版),进入总览页。 获取待调用API的调用地址、请求方法和入参信息。 在左侧导航栏中进入API管理,找到待调用的API,并单击API名称查看API的完整信息,保存调用地址、请求方法和入参信息。 调用地址:专享版支持内网地址和外网地址(外网地址需要您在创建集群时绑定弹性IP),如果需要在本地调用专享版API,需要使用外网地址,确保网络互通。共享版使用APIG地址,可直接选择该地址进行调用。 入参:本调用样例中创建了一个具备各类入参位置的API,以便为您介绍各类入参应如何在调用时输入。 图1 保存调用地址、请求方法和入参信息
-
获取Token 打开Postman工具,新增一个API请求。 使用API工具调用接口获取Token。 Token可通过调用获取用户Token接口获取,调用本服务API需要project级别的Token,即调用获取用户Token接口时,请求body中auth.scope的取值需要选择project,如下所示。 请求中的“POST https://IAM endpoint/v3/auth/tokens”为URL,“Content-Type: application/json”为消息头Header。{}内的内容为请求body体。 注意,请求中加粗的斜体字段需要根据实际值填写: IAM endpoint为IAM服务的终端节点。 终端节点(Endpoint)即调用API的请求地址,不同服务不同区域的终端节点不同。Endpoint您可以从终端节点及区域说明获取。 username为用户名,domainname为用户所属的账号名,********为用户登录密码,xxxxxxxxxxxxxxxxxx为项目ID。用户名、账号名以及项目ID可以参考如下步骤进行获取: 注册并登录管理控制台。 在用户名的下拉列表中单击“我的凭证”。 在“API凭证”页面,查看账号名和账号ID、IAM用户名和IAM用户ID,在项目列表中查看项目和项目ID。 POST https://IAM endpoint/v3/auth/tokens Content-Type: application/json { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "id": "xxxxxxxxxxxxxxxxxx" } } } } 图2 调用接口获取Token 获取返回的响应消息头Header中“x-subject-token”值,此即为用户Token。有了Token之后,您就可以在调用API的时候将Token加到请求消息头,从而通过身份认证,获得调用API的权限。 图3 获取Token
-
生成认证信息 解压SDK包,双击打开其中的“demo.html”文件,输入如下参数后,单击“Send request”查看返回值。 Key、Secret:API授权应用的AppKey和AppSecret,可参考获取APP和API信息获取。 Method、Url:API的请求方法和调用地址,可参考获取APP和API信息获取。 注意如果入参中包含Path和Query参数,则需要将调用地址中的{path}变量修改为Path参数具体取值,Query参数取值以“?Query参数名=Query参数值”的形式添加到调用地址的最后,如本例中为“?query=1”。 Headers:Headers参数无需填写,即使已定义Header参数,此处也要保持为空。 Body:使用大括号{}将“"Body参数名":Body参数值”形式的字符串包围在内,如本例中为“{"body":4}”。 图4 手动生成认证信息 从返回值中分别保存X-Sdk-Date、Authorization和X-Authorization的内容,例如本例中需要复制如下内容: ... X-Sdk-Date: 202********55Z ... Authorization: SDK-HMAC-SHA256 Access=4e7********d6c, SignedHeaders=host;x-sdk-date, Signature=4bf2********4e2 X-Authorization: SDK-HMAC-SHA256 Access=4e72********d6c, SignedHeaders=host;x-sdk-date, Signature=4bf2********4e2 ...
-
调用API 打开Postman工具,新增一个API请求。 API请求配置如下。 请求方法和调用地址:参考获取APP和API信息获取,与生成认证信息中的请求方法和调用地址保持一致。 图5 请求方法和调用地址 Params:如果Query参数已经以“?Query参数名=Query参数值”的形式添加到调用地址的最后,则此处会自动生成Query Params的值,否则就需要手动输入。 图6 Params 如果您需要对调用结果进行自定义调整,则还可以配置如下Query参数: (可选)分页配置:默认情况下,对于配置方式和默认分页的脚本/MyBatis方式API,系统将默认赋值返回量。如果需要获取特定分页数据,您可以修改如下参数设置分页,其中pageSize表示分页后的页面大小,pageNum表示页码。 图7 分页参数设置 自定义分页的脚本/MyBatis方式API是在创建API时将分页逻辑写到取数SQL中,因此不支持在调用时修改分页设置。 (可选)排序配置:默认情况下,系统会根据排序参数信息给出默认排序情况,自定义排序默认为升序。如果需要修改排序情况,您可以修改pre_order_by参数。其中排序参数描述pre_order_by的值填写形式为“排序参数参数名:ASC”或“排序参数参数名:DESC”,其中ASC表示升序,DESC表示降序,多个排序参数描述以“英文分号”进行分隔。 图8 排序参数设置 对于pre_order_by的值,您可以进行如下修改: 删掉某可选的排序参数,则此排序参数不再参与排序。 修改自定义排序方式的排序参数为升序或降序方式,则此排序参数按照修改后的排序方式排序。 pre_order_by的值,不支持进行如下修改,否则会修改不生效或导致调用报错。 删掉某必选的排序参数,则此排序参数依然会正常参与排序,删除不生效。 调整排序参数的前后顺序,则排序依然以配置方式API配置排序参数时的排序参数顺序或脚本/MyBatis方式API SQL中的排序参数顺序为准,调整不生效。 修改升序或降序的排序参数为其他排序方式,则会调用失败,不允许修改。 (可选)“返回总条数”配置:在创建API时,如果已打开“返回总条数”开关,则当API对应的数据表数据量较大时,获取数据总条数将会比较耗时。此时,如果需要在调用时不计算并返回数据总条数,可以修改use_total_num参数。use_total_num参数用于控制是否计算并返回数据总条数,值为1返回数据总条数,值非1不返回数据总条数。 图9 “返回总条数”参数配置 Headers:将2中保存的X-Sdk-Date、Authorization和X-Authorization及其值依次填入,并将Header参数的参数名和参数值填入其中。 图10 Headers Body:选择raw格式,使用大括号{}将“"Body参数名":Body参数值”形式的字符串包围在内,如本例中为“{"body":4}”。 图11 Body API请求配置完成后,单击“Send”发送请求到服务端,然后查看返回结果。返回"errCode":"DLM.0"即表示API调用成功。如果失败,则请根据保错信息进行修复。 如调用失败提示“Could not get any response”,可根据提示在Postman设置中关闭“SSL certificate verification”选项或关闭Proxy代理,然后再次尝试运行。 图12 调用API
-
获取APP和API信息 参考访问DataArts Studio实例控制台,登录DataArts Studio管理控制台。 在DataArts Studio控制台首页,选择对应工作空间的“数据服务”模块,进入数据服务页面。 在左侧导航栏选择服务版本(例如:专享版),进入总览页。 获取API授权应用的AppKey和AppSecret(如已授权多个APP,获取其中一个APP信息即可)。 在左侧导航栏中进入应用管理,找到API授权的应用,并单击应用名称查看APP的完整信息,保存AppKey和AppSecret。 图1 保存AppKey和AppSecret信息 获取待调用API的调用地址、请求方法和入参信息。 在左侧导航栏中进入API管理,找到待调用的API,并单击API名称查看API的完整信息,保存调用地址、请求方法和入参信息。 调用地址:专享版支持内网地址和外网地址(外网地址需要您在创建集群时绑定弹性IP),如果需要在本地调用专享版API,需要使用外网地址,确保网络互通。共享版使用APIG地址,可直接选择该地址进行调用。 入参:本调用样例中创建了一个具备各类入参位置的API,以便为您介绍各类入参应如何在调用时输入。由于Static是不随API调用者的传值变化的静态参数,因此无需在调用时输入,不需要关注。 图2 保存调用地址、请求方法和入参信息
-
前提条件 已完成APP认证方式的API或API工作流的发布,在服务目录中可以查看已发布的API。 已完成创建应用并将API授权给应用,即API开发者已完成通过应用授权APP认证方式API,或API调用者已完成申请API授权。 如果API中入参定义了Static参数,则在API授权时已配置Static参数值。 本章以Postman工具为例,因此需要已安装Postman工具,如果未安装,请至Postman官方网站下载。
-
获取JavaScript SDK包 在数据服务页面,单击左侧导航栏的“SDK”,然后下载JavaScript SDK。 图3 下载JavaScript SDK 进行SDK包完整性校验。Windows操作系统下,打开本地命令提示符框,输入如下命令,在本地生成已下载SDK包的SHA256值,其中,“D:\javascript-sdk.zip”为SDK包的本地存放路径和SDK包名,请根据实际情况修改。 certutil -hashfile D:\javascript-sdk.zip SHA256 命令执行结果示例,如下所示: SHA256 的 D:\javascript-sdk.zip 哈希: 43da0b54d6b04d1f5ed7f278c2918c2a63a1ddb8048e2d1c5db60baafb17663c CertUtil: -hashfile 命令成功完成。 对比所下载SDK包的SHA256值和命令示例中的SHA256值。如果一致,则表示下载过程不存在篡改和丢包。
-
约束与限制 APP认证方式的API调用前必须先完成通过应用授权APP认证方式API或申请API授权操作。 如果API中入参定义了Static参数,则在API授权时应配置Static参数值,否则API工具调用时会导致缺少Static参数值的报错。 如需在本地调用专享版API,则需在创建专享版集群时绑定一个弹性公网IP,作为实例的公网入口。共享版API默认可通过公网访问。 通过demo.html手动生成的认证信息,有效期为15分钟,超时则失效。
-
获取APP和API信息 参考访问DataArts Studio实例控制台,登录DataArts Studio管理控制台。 在DataArts Studio控制台首页,选择对应工作空间的“数据服务”模块,进入数据服务页面。 在左侧导航栏选择服务版本(例如:专享版),进入总览页。 获取API授权应用的AppKey和AppSecret(如已授权多个APP,获取其中一个APP信息即可)。 在左侧导航栏中进入应用管理,找到API授权的应用,并单击应用名称查看APP的完整信息,保存AppKey和AppSecret。 图1 保存AppKey和AppSecret信息 获取待调用API的调用地址、请求方法和入参信息。 在左侧导航栏中进入API管理,找到待调用的API,并单击API名称查看API的完整信息,保存调用地址、请求方法和入参信息。 调用地址:专享版支持内网地址和外网地址(外网地址需要您在创建集群时绑定弹性IP),如果需要在本地调用专享版API,需要使用外网地址,确保网络互通。共享版使用APIG地址,可直接选择该地址进行调用。 入参:本调用样例中创建了一个具备各类入参位置的API,以便为您介绍各类入参应如何在调用时输入。由于Static是不随API调用者的传值变化的静态参数,因此无需在调用时输入,不需要关注。 图2 保存调用地址、请求方法和入参信息
-
获取SDK包 在数据服务页面,单击左侧导航栏的“SDK”,然后下载Java SDK。 图3 下载SDK 进行SDK包完整性校验。Windows操作系统下,打开本地命令提示符框,输入如下命令,在本地生成已下载SDK包的SHA256值,其中,“D:\java-sdk.zip”为SDK包的本地存放路径和SDK包名,请根据实际情况修改。 certutil -hashfile D:\java-sdk.zip SHA256 命令执行结果示例,如下所示: SHA256 的 D:\java-sdk.zip 哈希: 77e033cfb4ea3a8bfdc773d44b9db0ce886eee16fa97bbac536a3174f9d4e029 CertUtil: -hashfile 命令成功完成。 对比所下载SDK包的SHA256值和下表中对应语言SDK包的SHA256值。如果一致,则表示下载过程不存在篡改和丢包。 表1 SDK包及对应的SHA256值 不同语言SDK包 SHA256值 Java 77e033cfb4ea3a8bfdc773d44b9db0ce886eee16fa97bbac536a3174f9d4e029 Go f448645da65b4f765d9569fc97ca45dc3e8f1ce4f79d70c5c43934318521d767 Python 54b4984d91db641d2b1b0e77064c162850cb2511a587f95e2f8b8340e7afa128 C# 970782e67540efbbf4fc2ccb5e96ca3b1a2f352233a4bbc52b9210b2382831f7 JavaScript 43da0b54d6b04d1f5ed7f278c2918c2a63a1ddb8048e2d1c5db60baafb17663c PHP 394c068420a3817f32d5d88b6c1632978f573f2a685e4a1d10c2f698e0f6786e C++ abae5473d47594f88dcd5eaa0902dc12cd6f1e3bd63c0b82d9d1fab8b4351f54 C a376573fe8aa3a636a6d123926ddc3dca11748b289b8c2c16a5056830a095acb Android c19175d736f05b1945dab4675df19311834ede0d9b1978b11b50c86687baf85c
-
创建数据连接 参考访问DataArts Studio实例控制台,登录DataArts Studio管理控制台。 在DataArts Studio控制台首页,选择对应工作空间的“管理中心”模块,进入管理中心页面。 在管理中心页面,单击“数据连接”,进入数据连接页面并单击“创建数据连接”。 图1 创建数据连接 单击“创建数据连接”,在弹出的页面中,选择“数据连接类型”为“RDS”,并参见表1配置相关参数。 不建议使用MySQL(待下线)连接器,推荐使用RDS连接MySQL数据源。 RDS数据连接方式依赖于OBS。如果没有与DataArts Studio同区域的OBS,则不支持RDS数据连接。 图2 RDS连接配置参数 表1 RDS数据连接 参数 是否必选 说明 数据连接类型 是 RDS连接固定选择为RDS。 数据连接名称 是 数据连接的名称,只能包含字母、数字、下划线和中划线,且长度不超过100个字符。 标签 否 标识数据连接的属性。设置标签后,便于统一管理。 说明: 标签的名称,只能包含中文、英文字母、数字和下划线,不能以下划线开头,且长度不能超过100个字符。 适用组件 是 选择此连接适用的组件。勾选组件后,才能在相应组件内使用本连接。 说明: 当开启数据集成作业特性后,可勾选数据集成组件,勾选后在数据开发组件创建集成作业时支持选择本数据连接。 离线集成作业功能当前需申请白名单后才能使用。如需使用该特性,请联系客服或技术支持人员。 基础与网络连通配置 IP或 域名 是 关系型数据库数据源的访问地址,可填写为IP或域名。 如果为RDS或 GaussDB 等云上数据源,可以通过管理控制台获取访问地址: 根据注册的账号登录对应云服务的管理控制台。 从左侧列表选择实例管理。 单击某一个实例名称,进入实例基本信息页面。在连接信息标签中可以获取到内网IP、域名和端口等信息。 说明: 仅GaussDB数据源支持多域名的方式, 多个域名 之间用“,”分隔。 如果为MySQL、PostgreSQL或达梦数据库 DM等线下数据源,可以通过数据库管理员获取相应的访问地址。 端口 是 关系型数据库数据源的访问端口。 如果为RDS或GaussDB等云上数据源,可以通过管理控制台获取访问地址: 根据注册的账号登录对应云服务的管理控制台。 从左侧列表选择实例管理。 单击某一个实例名称,进入实例基本信息页面。在连接信息标签中可以获取到内网IP、域名和端口等信息。 说明: 仅GaussDB数据源支持多域名的方式,多个域名之间用“,”分隔。 如果为MySQL、PostgreSQL或达梦数据库 DM等线下数据源,可以通过数据库管理员获取相应的访问地址。 KMS密钥 是 通过KMS加解密数据源认证信息,选择KMS中已创建的密钥。 绑定Agent 是 RDS类型数据源为非全托管服务,DataArts Studio无法直接与非全托管服务进行连接。CDM集群提供了DataArts Studio与非全托管服务通信的代理,所以创建RDS类型的数据连接时,请选择一个CDM集群。如果没有可用的CDM集群,请先进行创建。 CDM集群作为网络代理,必须和RDS网络互通才可以成功创建RDS连接,为确保两者网络互通,CDM集群必须和RDS处于相同的区域、可用区,且使用同一个VPC和子网,安全组规则需允许两者网络互通。 说明: CDM集群作为管理中心数据连接Agent时,单集群的并发活动线程最大为200。即当多个数据连接共用同一Agent时,通过这些数据连接提交SQL脚本、Shell脚本、Python脚本等任务的同时运行上限为200,超出的任务将排队等待。建议您按照业务量情况规划多个Agent分担压力。 SSL加密 否 支持对RDS服务启用SSL加密传输。 数据源驱动配置 驱动程序名称 是 驱动程序名称: com.mysql.jdbc.Driver:连接RDS for MySQL或MySQL数据源时,选择此驱动程序名称。 org.postgresql.Driver:连接RDS for PostgreSQL或PostgreSQL数据源时,选择此驱动程序名称。 com.microsoft.sqlserver.jdbc.SQLServerDriver: 连接RDS for SQL Server数据源时,选择此驱动名称。 dm.jdbc.driver.DmDriver:连接达梦数据库 DM数据源时,选择此驱动程序名称。 com.huawei.opengauss.jdbc.Driver:连接GaussDB数据源时,选择此驱动程序名称。 驱动文件来源 是 选择驱动文件的来源方式。 驱动文件路径 是 驱动文件在OBS上的路径。需要您自行到官网下载.jar格式驱动并上传至OBS中。 MySQL驱动:获取地址https://downloads.mysql.com/archives/c-j/,建议5.1.48版本。 PostgreSQL驱动:获取地址https://mvnrepository.com/artifact/org.postgresql/postgresql,建议42.3.4版本。 SQL Server驱动:获取地址https://learn.microsoft.com/zh-cn/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver16,建议8.4.1版本。 达梦数据库驱动: DM JDBC驱动jar包请从DM安装目录/dmdbms/drivers/jdbc中获取DmJdbcDriver18.jar。 GaussDB驱动:请在GaussDB官方文档《GaussDB 用户指南》中搜索“JDBC包、驱动类和环境类”,然后选择实例对应版本的资料,参考文档获取驱动包。 说明: 驱动文件所在的OBS路径中不能包含中文。 如果需要更新驱动文件,则需要先在数据集成页面重启CDM集群,然后通过编辑数据连接的方式重新选择新版本驱动,更新驱动才能生效。 数据源认证及其他功能配置 用户名 是 数据库的用户名,创建集群的时候,输入的用户名。 密码 是 数据库的访问密码,创建集群的时候,输入的密码。 数据集成配置 数据库名称 是 配置为要连接的数据库名称。 使用本地API 否 可选参数,选择是否使用数据库本地API加速。 创建MySQL连接时,CDM会自动尝试启用MySQL数据库的local_infile系统变量,开启MySQL的LOAD DATA功能加快数据导入,提高导入数据到MySQL数据库的性能。注意,开启本参数后,日期类型将不符合格式的会存储为0000-00-00,更多详细信息可在MySQL官网文档查看。 如果CDM自动启用失败,请联系数据库管理员启用local_infile参数或选择不使用本地API加速。 如果是导入到RDS上的MySQL数据库,由于RDS上的MySQL默认没有开启LOAD DATA功能,所以同时需要修改MySQ L实例 的参数组,将“local_infile”设置为“ON”,开启该功能。 说明: 如果RDS上的“local_infile”参数组不可编辑,则说明是默认参数组,需要先创建一个新的参数组,再修改该参数值,并应用到RDS的MySQL实例上,具体操作请参见《关系型数据库用户指南》。 local_infile字符集 否 “使用本地API”为是时,呈现此参数。MySQL通过local_infile导入数据时,可配置编码格式。默认utf8。 单次请求行数 否 可选参数,指定每次请求获取的行数,根据数据源端和作业数据规模的大小配置该参数。如果配置过大或过小,可能影响作业的时长。默认1000。 单次提交行数 否 指定每次批量提交的行数,根据数据目的端和作业数据规模的大小配置该参数。如果配置过大或过小,可能影响作业的时长。默认10000。 单次写入行数 否 可选参数,指定单次批量写入的行数,当写入行数累计到单次批量提交行数时提交一次,该值应当小于单次提交行数。默认100。 连接属性 否 可选参数,单击“添加”可增加多个指定数据源的JDBC连接器的属性,参考对应数据库的JDBC连接器说明文档进行配置。 常见配置举例如下: connectTimeout=360000与socketTimeout=360000:迁移数据量较大、或通过查询语句检索全表时,会由于连接超时导致迁移失败。此时可自定义连接超时时间与socket超时时间(单位ms),避免超时导致失败。 tinyInt1isBit=false或mysql.bool.type.transform=false:MySQL默认开启配置tinyInt1isBit=true,将TINYINT(1)当作BIT也就是Types.BOOLEAN来处理,会将1或0读取为true或false从而导致迁移失败,此时可关闭配置避免迁移报错。 useCursorFetch=false:CDM作业默认打开了JDBC连接器与关系型数据库通信使用二进制协议开关,即useCursorFetch=true。部分第三方可能存在兼容问题导致迁移时间转换出错,可以关闭此开关;开源MySQL数据库支持useCursorFetch参数,无需对此参数进行设置。 allowPublicKeyRetrieval=true:MySQL默认关闭允许公钥检索机制,因此连接MySQL数据源时,如果TLS不可用、使用RSA公钥加密时,可能导致连接报错。此时可打开公钥检索机制,避免连接报错。 引用符号 否 可选参数,连接引用表名或列名时的分隔符号,参考对应数据库的产品文档进行配置。默认为"。 单击“测试”,测试数据连接的连通性。如果无法连通,数据连接将无法创建。 测试通过后,单击“确定”,创建数据连接。
共100000条
- 1
- ...
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
- 420
- 421
- 422
- 423
- 424
- 425
- 426
- 427
- 428
- 429
- 430
- 431
- 432
- 433
- 434
- 435
- 436
- 437
- 438
- 439
- 440
- 441
- 442
- 443
- 444
- 445
- 446
- 447
- 448
- 449
- 450
- 451
- 452
- 453
- 454
- 455
- 456
- 457
- 458
- 459
- 460
- 461
- 462
- 463
- 464
- 465
- 466
- 467
- 468
- 469
- 470
- 471
- 472
- 473
- 474
- 475
- 476
- 477
- 478
- 479
- ...
- 480
- 481
- 482
- 483
- 484
- 485
- 486
- 487
- 488
- 489
- 490
- 491
- 492
- 493
- 494
- 495
- 496
- 497
- 498
- 499
- 500
- 501
- 502
- 503
- 504
- 505
- 506
- 507
- 508
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 519
- 520
- 521
- 522
- 523
- 524
- 525
- 526
- 527
- 528
- 529
- 530
- 531
- 532
- 533
- 534
- 535
- 536
- 537
- 538
- 539
- 540
- 541
- 542
- 543
- 544
- 545
- 546
- 547
- 548
- 549
- 550
- 551
- 552
- 553
- 554
- 555
- 556
- 557
- 558
- 559
- 560
- 561
- 562
- 563
- 564
- 565
- 566
- 567
- 568
- 569
- 570
- 571
- 572
- 573
- 574
- 575
- 576
- 577
- 578
- 579
- 580
- 581
- 582
- 583
- 584
- 585
- 586
- 587
- 588
- 589
- 590
- 591
- 592
- 593
- 594
- 595
- 596
- 597
- 598
- 599
- 600
- 601
- 602
- 603
- 604
- 605
- 606
- 607
- 608
- 609
- 610
- 611
- 612
- 613
- 614
- 615
- 616
- 617
- 618
- 619
- 620
- 621
- 622
- 623
- 624
- 625
- 626
- 627
- 628
- 629
- 630
- 631
- 632
- 633
- 634
- 635
- 636
- 637
- 638
- 639
- 640
- 641
- 642
- 643
- 644
- 645
- 646
- 647
- 648
- 649
- 650
- 651
- 652
- 653
- 654
- 655
- 656
- 657
- 658
- 659
- 660
- 661
- 662
- 663
- 664
- 665
- 666
- 667
- 668
- 669
- 670
- 671
- 672
- 673
- 674
- 675
- 676
- 677
- 678
- 679
- 680
- 681
- 682
- 683
- 684
- 685
- 686
- 687
- 688
- 689
- 690
- 691
- 692
- 693
- 694
- 695
- 696
- 697
- 698
- 699
- 700
- 701
- 702
- 703
- 704
- 705
- 706
- 707
- 708
- 709
- 710
- 711
- 712
- 713
- 714
- 715
- 716
- 717
- 718
- 719
- 720
- 721
- 722
- 723
- 724
- 725
- 726
- 727
- 728
- 729
- 730
- 731
- 732
- 733
- 734
- 735
- 736
- 737
- 738
- 739
- 740
- 741
- 742
- 743
- 744
- 745
- 746
- 747
- 748
- 749
- 750
- 751
- 752
- 753
- 754
- 755
- 756
- 757
- 758
- 759
- 760
- 761
- 762
- 763
- 764
- 765
- 766
- 767
- 768
- 769
- 770
- 771
- 772
- 773
- 774
- 775
- 776
- 777
- 778
- 779
- 780
- 781
- 782
- 783
- 784
- 785
- 786
- 787
- 788
- 789
- 790
- 791
- 792
- 793
- 794
- 795
- 796
- 797
- 798
- 799
- 800
- 801
- 802
- 803
- 804
- 805
- 806
- 807
- 808
- 809
- 810
- 811
- 812
- 813
- 814
- 815
- 816
- 817
- 818
- 819
- 820
- 821
- 822
- 823
- 824
- 825
- 826
- 827
- 828
- 829
- 830
- 831
- 832
- 833
- 834
- 835
- 836
- 837
- 838
- 839
- 840
- 841
- 842
- 843
- 844
- 845
- 846
- 847
- 848
- 849
- 850
- 851
- 852
- 853
- 854
- 855
- 856
- 857
- 858
- 859
- 860
- 861
- 862
- 863
- 864
- 865
- 866
- 867
- 868
- 869
- 870
- 871
- 872
- 873
- 874
- 875
- 876
- 877
- 878
- 879
- 880
- 881
- 882
- 883
- 884
- 885
- 886
- 887
- 888
- 889
- 890
- 891
- 892
- 893
- 894
- 895
- 896
- 897
- 898
- 899
- 900
- 901
- 902
- 903
- 904
- 905
- 906
- 907
- 908
- 909
- 910
- 911
- 912
- 913
- 914
- 915
- 916
- 917
- 918
- 919
- 920
- 921
- 922
- 923
- 924
- 925
- 926
- 927
- 928
- 929
- 930
- 931
- 932
- 933
- 934
- 935
- 936
- 937
- 938
- 939
- 940
- 941
- 942
- 943
- 944
- 945
- 946
- 947
- 948
- 949
- 950
- 951
- 952
- 953
- 954
- 955
- 956
- 957
- 958
- 959
- 960
- 961
- 962
- 963
- 964
- 965
- 966
- 967
- 968
- 969
- 970
- 971
- 972
- 973
- 974
- 975
- 976
- 977
- 978
- 979
- 980
- 981
- 982
- 983
- 984
- 985
- 986
- 987
- 988
- 989
- 990
- 991
- 992
- 993
- 994
- 995
- 996
- 997
- 998
- 999
- 1000
- 1001
- 1002
- 1003
- 1004
- 1005
- 1006
- 1007
- 1008
- 1009
- 1010
- 1011
- 1012
- 1013
- 1014
- 1015
- 1016
- 1017
- 1018
- 1019
- 1020
- 1021
- 1022
- 1023
- 1024
- 1025
- 1026
- 1027
- 1028
- 1029
- 1030
- 1031
- 1032
- 1033
- 1034
- 1035
- 1036
- 1037
- 1038
- 1039
- 1040
- 1041
- 1042
- 1043
- 1044
- 1045
- 1046
- 1047
- 1048
- 1049
- 1050
- 1051
- 1052
- 1053
- 1054
- 1055
- 1056
- 1057
- 1058
- 1059
- 1060
- 1061
- 1062
- 1063
- 1064
- 1065
- 1066
- 1067
- 1068
- 1069
- 1070
- 1071
- 1072
- 1073
- 1074
- 1075
- 1076
- 1077
- 1078
- 1079
- 1080
- 1081
- 1082
- 1083
- 1084
- 1085
- 1086
- 1087
- 1088
- 1089
- 1090
- 1091
- 1092
- 1093
- 1094
- 1095
- 1096
- 1097
- 1098
- 1099
- 1100
- 1101
- 1102
- 1103
- 1104
- 1105
- 1106
- 1107
- 1108
- 1109
- 1110
- 1111
- 1112
- 1113
- 1114
- 1115
- 1116
- 1117
- 1118
- 1119
- 1120
- 1121
- 1122
- 1123
- 1124
- 1125
- 1126
- 1127
- 1128
- 1129
- 1130
- 1131
- 1132
- 1133
- 1134
- 1135
- 1136
- 1137
- 1138
- 1139
- 1140
- 1141
- 1142
- 1143
- 1144
- 1145
- 1146
- 1147
- 1148
- 1149
- 1150
- 1151
- 1152
- 1153
- 1154
- 1155
- 1156
- 1157
- 1158
- 1159
- 1160
- 1161
- 1162
- 1163
- 1164
- 1165
- 1166
- 1167
- 1168
- 1169
- 1170
- 1171
- 1172
- 1173
- 1174
- 1175
- 1176
- 1177
- 1178
- 1179
- 1180
- 1181
- 1182
- 1183
- 1184
- 1185
- 1186
- 1187
- 1188
- 1189
- 1190
- 1191
- 1192
- 1193
- 1194
- 1195
- 1196
- 1197
- 1198
- 1199
- 1200
- 1201
- 1202
- 1203
- 1204
- 1205
- 1206
- 1207
- 1208
- 1209
- 1210
- 1211
- 1212
- 1213
- 1214
- 1215
- 1216
- 1217
- 1218
- 1219
- 1220
- 1221
- 1222
- 1223
- 1224
- 1225
- 1226
- 1227
- 1228
- 1229
- 1230
- 1231
- 1232
- 1233
- 1234
- 1235
- 1236
- 1237
- 1238
- 1239
- 1240
- 1241
- 1242
- 1243
- 1244
- 1245
- 1246
- 1247
- 1248
- 1249
- 1250
- 1251
- 1252
- 1253
- 1254
- 1255
- 1256
- 1257
- 1258
- 1259
- 1260
- 1261
- 1262
- 1263
- 1264
- 1265
- 1266
- 1267
- 1268
- 1269
- 1270
- 1271
- 1272
- 1273
- 1274
- 1275
- 1276
- 1277
- 1278
- 1279
- 1280
- 1281
- 1282
- 1283
- 1284
- 1285
- 1286
- 1287
- 1288
- 1289
- 1290
- 1291
- 1292
- 1293
- 1294
- 1295
- 1296
- 1297
- 1298
- 1299
- 1300
- 1301
- 1302
- 1303
- 1304
- 1305
- 1306
- 1307
- 1308
- 1309
- 1310
- 1311
- 1312
- 1313
- 1314
- 1315
- 1316
- 1317
- 1318
- 1319
- 1320
- 1321
- 1322
- 1323
- 1324
- 1325
- 1326
- 1327
- 1328
- 1329
- 1330
- 1331
- 1332
- 1333
- 1334
- 1335
- 1336
- 1337
- 1338
- 1339
- 1340
- 1341
- 1342
- 1343
- 1344
- 1345
- 1346
- 1347
- 1348
- 1349
- 1350
- 1351
- 1352
- 1353
- 1354
- 1355
- 1356
- 1357
- 1358
- 1359
- 1360
- 1361
- 1362
- 1363
- 1364
- 1365
- 1366
- 1367
- 1368
- 1369
- 1370
- 1371
- 1372
- 1373
- 1374
- 1375
- 1376
- 1377
- 1378
- 1379
- 1380
- 1381
- 1382
- 1383
- 1384
- 1385
- 1386
- 1387
- 1388
- 1389
- 1390
- 1391
- 1392
- 1393
- 1394
- 1395
- 1396
- 1397
- 1398
- 1399
- 1400
- 1401
- 1402
- 1403
- 1404
- 1405
- 1406
- 1407
- 1408
- 1409
- 1410
- 1411
- 1412
- 1413
- 1414
- 1415
- 1416
- 1417
- 1418
- 1419
- 1420
- 1421
- 1422
- 1423
- 1424
- 1425
- 1426
- 1427
- 1428
- 1429
- 1430
- 1431
- 1432
- 1433
- 1434
- 1435
- 1436
- 1437
- 1438
- 1439
- 1440
- 1441
- 1442
- 1443
- 1444
- 1445
- 1446
- 1447
- 1448
- 1449
- 1450
- 1451
- 1452
- 1453
- 1454
- 1455
- 1456
- 1457
- 1458
- 1459
- 1460
- 1461
- 1462
- 1463
- 1464
- 1465
- 1466
- 1467
- 1468
- 1469
- 1470
- 1471
- 1472
- 1473
- 1474
- 1475
- 1476
- 1477
- 1478
- 1479
- 1480
- 1481
- 1482
- 1483
- 1484
- 1485
- 1486
- 1487
- 1488
- 1489
- 1490
- 1491
- 1492
- 1493
- 1494
- 1495
- 1496
- 1497
- 1498
- 1499
- 1500
- 1501
- 1502
- 1503
- 1504
- 1505
- 1506
- 1507
- 1508
- 1509
- 1510
- 1511
- 1512
- 1513
- 1514
- 1515
- 1516
- 1517
- 1518
- 1519
- 1520
- 1521
- 1522
- 1523
- 1524
- 1525
- 1526
- 1527
- 1528
- 1529
- 1530
- 1531
- 1532
- 1533
- 1534
- 1535
- 1536
- 1537
- 1538
- 1539
- 1540
- 1541
- 1542
- 1543
- 1544
- 1545
- 1546
- 1547
- 1548
- 1549
- 1550
- 1551
- 1552
- 1553
- 1554
- 1555
- 1556
- 1557
- 1558
- 1559
- 1560
- 1561
- 1562
- 1563
- 1564
- 1565
- 1566
- 1567
- 1568
- 1569
- 1570
- 1571
- 1572
- 1573
- 1574
- 1575
- 1576
- 1577
- 1578
- 1579
- 1580
- 1581
- 1582
- 1583
- 1584
- 1585
- 1586
- 1587
- 1588
- 1589
- 1590
- 1591
- 1592
- 1593
- 1594
- 1595
- 1596
- 1597
- 1598
- 1599
- 1600
- 1601
- 1602
- 1603
- 1604
- 1605
- 1606
- 1607
- 1608
- 1609
- 1610
- 1611
- 1612
- 1613
- 1614
- 1615
- 1616
- 1617
- 1618
- 1619
- 1620
- 1621
- 1622
- 1623
- 1624
- 1625
- 1626
- 1627
- 1628
- 1629
- 1630
- 1631
- 1632
- 1633
- 1634
- 1635
- 1636
- 1637
- 1638
- 1639
- 1640
- 1641
- 1642
- 1643
- 1644
- 1645
- 1646
- 1647
- 1648
- 1649
- 1650
- 1651
- 1652
- 1653
- 1654
- 1655
- 1656
- 1657
- 1658
- 1659
- 1660
- 1661
- 1662
- 1663
- 1664
- 1665
- 1666
- 1667
- 1668
- 1669
- 1670
- 1671
- 1672
- 1673
- 1674
- 1675
- 1676
- 1677
- 1678
- 1679
- 1680
- 1681
- 1682
- 1683
- 1684
- 1685
- 1686
- 1687
- 1688
- 1689
- 1690
- 1691
- 1692
- 1693
- 1694
- 1695
- 1696
- 1697
- 1698
- 1699
- 1700
- 1701
- 1702
- 1703
- 1704
- 1705
- 1706
- 1707
- 1708
- 1709
- 1710
- 1711
- 1712
- 1713
- 1714
- 1715
- 1716
- 1717
- 1718
- 1719
- 1720
- 1721
- 1722
- 1723
- 1724
- 1725
- 1726
- 1727
- 1728
- 1729
- 1730
- 1731
- 1732
- 1733
- 1734
- 1735
- 1736
- 1737
- 1738
- 1739
- 1740
- 1741
- 1742
- 1743
- 1744
- 1745
- 1746
- 1747
- 1748
- 1749
- 1750
- 1751
- 1752
- 1753
- 1754
- 1755
- 1756
- 1757
- 1758
- 1759
- 1760
- 1761
- 1762
- 1763
- 1764
- 1765
- 1766
- 1767
- 1768
- 1769
- 1770
- 1771
- 1772
- 1773
- 1774
- 1775
- 1776
- 1777
- 1778
- 1779
- 1780
- 1781
- 1782
- 1783
- 1784
- 1785
- 1786
- 1787
- 1788
- 1789
- 1790
- 1791
- 1792
- 1793
- 1794
- 1795
- 1796
- 1797
- 1798
- 1799
- 1800
- 1801
- 1802
- 1803
- 1804
- 1805
- 1806
- 1807
- 1808
- 1809
- 1810
- 1811
- 1812
- 1813
- 1814
- 1815
- 1816
- 1817
- 1818
- 1819
- 1820
- 1821
- 1822
- 1823
- 1824
- 1825
- 1826
- 1827
- 1828
- 1829
- 1830
- 1831
- 1832
- 1833
- 1834
- 1835
- 1836
- 1837
- 1838
- 1839
- 1840
- 1841
- 1842
- 1843
- 1844
- 1845
- 1846
- 1847
- 1848
- 1849
- 1850
- 1851
- 1852
- 1853
- 1854
- 1855
- 1856
- 1857
- 1858
- 1859
- 1860
- 1861
- 1862
- 1863
- 1864
- 1865
- 1866
- 1867
- 1868
- 1869
- 1870
- 1871
- 1872
- 1873
- 1874
- 1875
- 1876
- 1877
- 1878
- 1879
- 1880
- 1881
- 1882
- 1883
- 1884
- 1885
- 1886
- 1887
- 1888
- 1889
- 1890
- 1891
- 1892
- 1893
- 1894
- 1895
- 1896
- 1897
- 1898
- 1899
- 1900
- 1901
- 1902
- 1903
- 1904
- 1905
- 1906
- 1907
- 1908
- 1909
- 1910
- 1911
- 1912
- 1913
- 1914
- 1915
- 1916
- 1917
- 1918
- 1919
- 1920
- 1921
- 1922
- 1923
- 1924
- 1925
- 1926
- 1927
- 1928
- 1929
- 1930
- 1931
- 1932
- 1933
- 1934
- 1935
- 1936
- 1937
- 1938
- 1939
- 1940
- 1941
- 1942
- 1943
- 1944
- 1945
- 1946
- 1947
- 1948
- 1949
- 1950
- 1951
- 1952
- 1953
- 1954
- 1955
- 1956
- 1957
- 1958
- 1959
- 1960
- 1961
- 1962
- 1963
- 1964
- 1965
- 1966
- 1967
- 1968
- 1969
- 1970
- 1971
- 1972
- 1973
- 1974
- 1975
- 1976
- 1977
- 1978
- 1979
- 1980
- 1981
- 1982
- 1983
- 1984
- 1985
- 1986
- 1987
- 1988
- 1989
- 1990
- 1991
- 1992
- 1993
- 1994
- 1995
- 1996
- 1997
- 1998
- 1999
- 2000
- 2001
- 2002
- 2003
- 2004
- 2005
- 2006
- 2007
- 2008
- 2009
- 2010
- 2011
- 2012
- 2013
- 2014
- 2015
- 2016
- 2017
- 2018
- 2019
- 2020
- 2021
- 2022
- 2023
- 2024
- 2025
- 2026
- 2027
- 2028
- 2029
- 2030
- 2031
- 2032
- 2033
- 2034
- 2035
- 2036
- 2037
- 2038
- 2039
- 2040
- 2041
- 2042
- 2043
- 2044
- 2045
- 2046
- 2047
- 2048
- 2049
- 2050
- 2051
- 2052
- 2053
- 2054
- 2055
- 2056
- 2057
- 2058
- 2059
- 2060
- 2061
- 2062
- 2063
- 2064
- 2065
- 2066
- 2067
- 2068
- 2069
- 2070
- 2071
- 2072
- 2073
- 2074
- 2075
- 2076
- 2077
- 2078
- 2079
- 2080
- 2081
- 2082
- 2083
- 2084
- 2085
- 2086
- 2087
- 2088
- 2089
- 2090
- 2091
- 2092
- 2093
- 2094
- 2095
- 2096
- 2097
- 2098
- 2099
- 2100
- 2101
- 2102
- 2103
- 2104
- 2105
- 2106
- 2107
- 2108
- 2109
- 2110
- 2111
- 2112
- 2113
- 2114
- 2115
- 2116
- 2117
- 2118
- 2119
- 2120
- 2121
- 2122
- 2123
- 2124
- 2125
- 2126
- 2127
- 2128
- 2129
- 2130
- 2131
- 2132
- 2133
- 2134
- 2135
- 2136
- 2137
- 2138
- 2139
- 2140
- 2141
- 2142
- 2143
- 2144
- 2145
- 2146
- 2147
- 2148
- 2149
- 2150
- 2151
- 2152
- 2153
- 2154
- 2155
- 2156
- 2157
- 2158
- 2159
- 2160
- 2161
- 2162
- 2163
- 2164
- 2165
- 2166
- 2167
- 2168
- 2169
- 2170
- 2171
- 2172
- 2173
- 2174
- 2175
- 2176
- 2177
- 2178
- 2179
- 2180
- 2181
- 2182
- 2183
- 2184
- 2185
- 2186
- 2187
- 2188
- 2189
- 2190
- 2191
- 2192
- 2193
- 2194
- 2195
- 2196
- 2197
- 2198
- 2199
- 2200
- 2201
- 2202
- 2203
- 2204
- 2205
- 2206
- 2207
- 2208
- 2209
- 2210
- 2211
- 2212
- 2213
- 2214
- 2215
- 2216
- 2217
- 2218
- 2219
- 2220
- 2221
- 2222
- 2223
- 2224
- 2225
- 2226
- 2227
- 2228
- 2229
- 2230
- 2231
- 2232
- 2233
- 2234
- 2235
- 2236
- 2237
- 2238
- 2239
- 2240
- 2241
- 2242
- 2243
- 2244
- 2245
- 2246
- 2247
- 2248
- 2249
- 2250
- 2251
- 2252
- 2253
- 2254
- 2255
- 2256
- 2257
- 2258
- 2259
- 2260
- 2261
- 2262
- 2263
- 2264
- 2265
- 2266
- 2267
- 2268
- 2269
- 2270
- 2271
- 2272
- 2273
- 2274
- 2275
- 2276
- 2277
- 2278
- 2279
- 2280
- 2281
- 2282
- 2283
- 2284
- 2285
- 2286
- 2287
- 2288
- 2289
- 2290
- 2291
- 2292
- 2293
- 2294
- 2295
- 2296
- 2297
- 2298
- 2299
- 2300
- 2301
- 2302
- 2303
- 2304
- 2305
- 2306
- 2307
- 2308
- 2309
- 2310
- 2311
- 2312
- 2313
- 2314
- 2315
- 2316
- 2317
- 2318
- 2319
- 2320
- 2321
- 2322
- 2323
- 2324
- 2325
- 2326
- 2327
- 2328
- 2329
- 2330
- 2331
- 2332
- 2333
- 2334
- 2335
- 2336
- 2337
- 2338
- 2339
- 2340
- 2341
- 2342
- 2343
- 2344
- 2345
- 2346
- 2347
- 2348
- 2349
- 2350
- 2351
- 2352
- 2353
- 2354
- 2355
- 2356
- 2357
- 2358
- 2359
- 2360
- 2361
- 2362
- 2363
- 2364
- 2365
- 2366
- 2367
- 2368
- 2369
- 2370
- 2371
- 2372
- 2373
- 2374
- 2375
- 2376
- 2377
- 2378
- 2379
- 2380
- 2381
- 2382
- 2383
- 2384
- 2385
- 2386
- 2387
- 2388
- 2389
- 2390
- 2391
- 2392
- 2393
- 2394
- 2395
- 2396
- 2397
- 2398
- 2399
- 2400
- 2401
- 2402
- 2403
- 2404
- 2405
- 2406
- 2407
- 2408
- 2409
- 2410
- 2411
- 2412
- 2413
- 2414
- 2415
- 2416
- 2417
- 2418
- 2419
- 2420
- 2421
- 2422
- 2423
- 2424
- 2425
- 2426
- 2427
- 2428
- 2429
- 2430
- 2431
- 2432
- 2433
- 2434
- 2435
- 2436
- 2437
- 2438
- 2439
- 2440
- 2441
- 2442
- 2443
- 2444
- 2445
- 2446
- 2447
- 2448
- 2449
- 2450
- 2451
- 2452
- 2453
- 2454
- 2455
- 2456
- 2457
- 2458
- 2459
- 2460
- 2461
- 2462
- 2463
- 2464
- 2465
- 2466
- 2467
- 2468
- 2469
- 2470
- 2471
- 2472
- 2473
- 2474
- 2475
- 2476
- 2477
- 2478
- 2479
- 2480
- 2481
- 2482
- 2483
- 2484
- 2485
- 2486
- 2487
- 2488
- 2489
- 2490
- 2491
- 2492
- 2493
- 2494
- 2495
- 2496
- 2497
- 2498
- 2499
- 2500
- 2501
- 2502
- 2503
- 2504
- 2505
- 2506
- 2507
- 2508
- 2509
- 2510
- 2511
- 2512
- 2513
- 2514
- 2515
- 2516
- 2517
- 2518
- 2519
- 2520
- 2521
- 2522
- 2523
- 2524
- 2525
- 2526
- 2527
- 2528
- 2529
- 2530
- 2531
- 2532
- 2533
- 2534
- 2535
- 2536
- 2537
- 2538
- 2539
- 2540
- 2541
- 2542
- 2543
- 2544
- 2545
- 2546
- 2547
- 2548
- 2549
- 2550
- 2551
- 2552
- 2553
- 2554
- 2555
- 2556
- 2557
- 2558
- 2559
- 2560
- 2561
- 2562
- 2563
- 2564
- 2565
- 2566
- 2567
- 2568
- 2569
- 2570
- 2571
- 2572
- 2573
- 2574
- 2575
- 2576
- 2577
- 2578
- 2579
- 2580
- 2581
- 2582
- 2583
- 2584
- 2585
- 2586
- 2587
- 2588
- 2589
- 2590
- 2591
- 2592
- 2593
- 2594
- 2595
- 2596
- 2597
- 2598
- 2599
- 2600
- 2601
- 2602
- 2603
- 2604
- 2605
- 2606
- 2607
- 2608
- 2609
- 2610
- 2611
- 2612
- 2613
- 2614
- 2615
- 2616
- 2617
- 2618
- 2619
- 2620
- 2621
- 2622
- 2623
- 2624
- 2625
- 2626
- 2627
- 2628
- 2629
- 2630
- 2631
- 2632
- 2633
- 2634
- 2635
- 2636
- 2637
- 2638
- 2639
- 2640
- 2641
- 2642
- 2643
- 2644
- 2645
- 2646
- 2647
- 2648
- 2649
- 2650
- 2651
- 2652
- 2653
- 2654
- 2655
- 2656
- 2657
- 2658
- 2659
- 2660
- 2661
- 2662
- 2663
- 2664
- 2665
- 2666
- 2667
- 2668
- 2669
- 2670
- 2671
- 2672
- 2673
- 2674
- 2675
- 2676
- 2677
- 2678
- 2679
- 2680
- 2681
- 2682
- 2683
- 2684
- 2685
- 2686
- 2687
- 2688
- 2689
- 2690
- 2691
- 2692
- 2693
- 2694
- 2695
- 2696
- 2697
- 2698
- 2699
- 2700
- 2701
- 2702
- 2703
- 2704
- 2705
- 2706
- 2707
- 2708
- 2709
- 2710
- 2711
- 2712
- 2713
- 2714
- 2715
- 2716
- 2717
- 2718
- 2719
- 2720
- 2721
- 2722
- 2723
- 2724
- 2725
- 2726
- 2727
- 2728
- 2729
- 2730
- 2731
- 2732
- 2733
- 2734
- 2735
- 2736
- 2737
- 2738
- 2739
- 2740
- 2741
- 2742
- 2743
- 2744
- 2745
- 2746
- 2747
- 2748
- 2749
- 2750
- 2751
- 2752
- 2753
- 2754
- 2755
- 2756
- 2757
- 2758
- 2759
- 2760
- 2761
- 2762
- 2763
- 2764
- 2765
- 2766
- 2767
- 2768
- 2769
- 2770
- 2771
- 2772
- 2773
- 2774
- 2775
- 2776
- 2777
- 2778
- 2779
- 2780
- 2781
- 2782
- 2783
- 2784
- 2785
- 2786
- 2787
- 2788
- 2789
- 2790
- 2791
- 2792
- 2793
- 2794
- 2795
- 2796
- 2797
- 2798
- 2799
- 2800
- 2801
- 2802
- 2803
- 2804
- 2805
- 2806
- 2807
- 2808
- 2809
- 2810
- 2811
- 2812
- 2813
- 2814
- 2815
- 2816
- 2817
- 2818
- 2819
- 2820
- 2821
- 2822
- 2823
- 2824
- 2825
- 2826
- 2827
- 2828
- 2829
- 2830
- 2831
- 2832
- 2833
- 2834
- 2835
- 2836
- 2837
- 2838
- 2839
- 2840
- 2841
- 2842
- 2843
- 2844
- 2845
- 2846
- 2847
- 2848
- 2849
- 2850
- 2851
- 2852
- 2853
- 2854
- 2855
- 2856
- 2857
- 2858
- 2859
- 2860
- 2861
- 2862
- 2863
- 2864
- 2865
- 2866
- 2867
- 2868
- 2869
- 2870
- 2871
- 2872
- 2873
- 2874
- 2875
- 2876
- 2877
- 2878
- 2879
- 2880
- 2881
- 2882
- 2883
- 2884
- 2885
- 2886
- 2887
- 2888
- 2889
- 2890
- 2891
- 2892
- 2893
- 2894
- 2895
- 2896
- 2897
- 2898
- 2899
- 2900
- 2901
- 2902
- 2903
- 2904
- 2905
- 2906
- 2907
- 2908
- 2909
- 2910
- 2911
- 2912
- 2913
- 2914
- 2915
- 2916
- 2917
- 2918
- 2919
- 2920
- 2921
- 2922
- 2923
- 2924
- 2925
- 2926
- 2927
- 2928
- 2929
- 2930
- 2931
- 2932
- 2933
- 2934
- 2935
- 2936
- 2937
- 2938
- 2939
- 2940
- 2941
- 2942
- 2943
- 2944
- 2945
- 2946
- 2947
- 2948
- 2949
- 2950
- 2951
- 2952
- 2953
- 2954
- 2955
- 2956
- 2957
- 2958
- 2959
- 2960
- 2961
- 2962
- 2963
- 2964
- 2965
- 2966
- 2967
- 2968
- 2969
- 2970
- 2971
- 2972
- 2973
- 2974
- 2975
- 2976
- 2977
- 2978
- 2979
- 2980
- 2981
- 2982
- 2983
- 2984
- 2985
- 2986
- 2987
- 2988
- 2989
- 2990
- 2991
- 2992
- 2993
- 2994
- 2995
- 2996
- 2997
- 2998
- 2999
- 3000
- 3001
- 3002
- 3003
- 3004
- 3005
- 3006
- 3007
- 3008
- 3009
- 3010
- 3011
- 3012
- 3013
- 3014
- 3015
- 3016
- 3017
- 3018
- 3019
- 3020
- 3021
- 3022
- 3023
- 3024
- 3025
- 3026
- 3027
- 3028
- 3029
- 3030
- 3031
- 3032
- 3033
- 3034
- 3035
- 3036
- 3037
- 3038
- 3039
- 3040
- 3041
- 3042
- 3043
- 3044
- 3045
- 3046
- 3047
- 3048
- 3049
- 3050
- 3051
- 3052
- 3053
- 3054
- 3055
- 3056
- 3057
- 3058
- 3059
- 3060
- 3061
- 3062
- 3063
- 3064
- 3065
- 3066
- 3067
- 3068
- 3069
- 3070
- 3071
- 3072
- 3073
- 3074
- 3075
- 3076
- 3077
- 3078
- 3079
- 3080
- 3081
- 3082
- 3083
- 3084
- 3085
- 3086
- 3087
- 3088
- 3089
- 3090
- 3091
- 3092
- 3093
- 3094
- 3095
- 3096
- 3097
- 3098
- 3099
- 3100
- 3101
- 3102
- 3103
- 3104
- 3105
- 3106
- 3107
- 3108
- 3109
- 3110
- 3111
- 3112
- 3113
- 3114
- 3115
- 3116
- 3117
- 3118
- 3119
- 3120
- 3121
- 3122
- 3123
- 3124
- 3125
- 3126
- 3127
- 3128
- 3129
- 3130
- 3131
- 3132
- 3133
- 3134
- 3135
- 3136
- 3137
- 3138
- 3139
- 3140
- 3141
- 3142
- 3143
- 3144
- 3145
- 3146
- 3147
- 3148
- 3149
- 3150
- 3151
- 3152
- 3153
- 3154
- 3155
- 3156
- 3157
- 3158
- 3159
- 3160
- 3161
- 3162
- 3163
- 3164
- 3165
- 3166
- 3167
- 3168
- 3169
- 3170
- 3171
- 3172
- 3173
- 3174
- 3175
- 3176
- 3177
- 3178
- 3179
- 3180
- 3181
- 3182
- 3183
- 3184
- 3185
- 3186
- 3187
- 3188
- 3189
- 3190
- 3191
- 3192
- 3193
- 3194
- 3195
- 3196
- 3197
- 3198
- 3199
- 3200
- 3201
- 3202
- 3203
- 3204
- 3205
- 3206
- 3207
- 3208
- 3209
- 3210
- 3211
- 3212
- 3213
- 3214
- 3215
- 3216
- 3217
- 3218
- 3219
- 3220
- 3221
- 3222
- 3223
- 3224
- 3225
- 3226
- 3227
- 3228
- 3229
- 3230
- 3231
- 3232
- 3233
- 3234
- 3235
- 3236
- 3237
- 3238
- 3239
- 3240
- 3241
- 3242
- 3243
- 3244
- 3245
- 3246
- 3247
- 3248
- 3249
- 3250
- 3251
- 3252
- 3253
- 3254
- 3255
- 3256
- 3257
- 3258
- 3259
- 3260
- 3261
- 3262
- 3263
- 3264
- 3265
- 3266
- 3267
- 3268
- 3269
- 3270
- 3271
- 3272
- 3273
- 3274
- 3275
- 3276
- 3277
- 3278
- 3279
- 3280
- 3281
- 3282
- 3283
- 3284
- 3285
- 3286
- 3287
- 3288
- 3289
- 3290
- 3291
- 3292
- 3293
- 3294
- 3295
- 3296
- 3297
- 3298
- 3299
- 3300
- 3301
- 3302
- 3303
- 3304
- 3305
- 3306
- 3307
- 3308
- 3309
- 3310
- 3311
- 3312
- 3313
- 3314
- 3315
- 3316
- 3317
- 3318
- 3319
- 3320
- 3321
- 3322
- 3323
- 3324
- 3325
- 3326
- 3327
- 3328
- 3329
- 3330
- 3331
- 3332
- 3333
- 3333
推荐文章