华为云用户手册

  • 配置OBS源端参数 作业中源连接为OBS连接时,源端作业参数如表1所示。 高级属性里的参数为可选参数,默认隐藏,单击界面上的“显示高级属性”后显示。 表1 源端为OBS时的作业参数 参数类型 参数名 说明 取值样例 基本参数 桶名 待迁移数据所在的桶名。 BUCKET_2 源目录或文件 “列表文件”选择为“否”时,才有该参数。 待迁移数据的目录或单个文件路径。文件路径支持输入多个文件(最多50个),默认以“|”分隔,也可以自定义文件分隔符,具体请参见文件列表迁移。 待迁移数据的目录,将迁移目录下的所有文件(包括所有嵌套子目录及其子文件)。 该参数支持配置为时间宏变量,且一个路径名中可以有多个宏定义变量。使用时间宏变量和定时任务配合,可以实现定期同步新增数据,详细说明请参见使用时间宏变量完成增量同步。 说明: 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 FROM/example.csv 文件格式 指CDM以哪种格式解析数据,可选择以下格式: CSV格式:以CSV格式解析源文件,用于迁移文件到数据表的场景。 二进制格式:选择“二进制格式”时不解析文件内容直接传输,不要求文件格式必须为二进制。适用于文件到文件的原样复制。 JSON格式:以JSON格式解析源文件,一般都是用于迁移文件到数据表的场景。 CSV格式 列表文件 当“文件格式”选择为“二进制格式”时,才有该参数。 打开列表文件功能时,支持读取OBS桶中文件(如txt文件)的内容作为待迁移文件的列表。该文件中的内容应为待迁移文件的绝对路径(不支持目录),例如直接写为如下内容: /052101/DAY20211110.data /052101/DAY20211111.data 是 列表文件源连接 当“列表文件”选择为“是”时,才有该参数。可选择列表文件所在的OBS连接。 OBS_test_link 列表文件OBS桶 当“列表文件”选择为“是”时,才有该参数。该参数表示列表文件所在的OBS桶名。 01 列表文件或目录 当“列表文件”选择为“是”时,才有该参数。该参数表示列表文件所在的OBS桶中的绝对路径或目录。 此处建议选择为文件的绝对路径。当选择为目录时,也支持迁移子目录中的文件,但如果目录下文件量过大,可能会导致集群内存不足。 /0521/Lists.txt JSON类型 当“文件格式”选择为“JSON格式”时,才有该参数。JSON文件中存储的JSON对象的类型,可以选择“JSON对象”或“JSON数组”。 JSON对象 记录节点 当“文件格式”选择为“JSON格式”并且“JSON类型”为“JSON对象”时,才有该参数。对该JSON节点下的数据进行解析,如果该节点对应的数据为JSON数组,那么系统会以同一模式从该数组中提取数据。多层嵌套的JSON节点以字符“.”分割。 data.list 高级属性 换行符 文件中的换行符,默认自动识别“\n”、“\r”或“\r\n”。当“文件格式”选择为“CSV格式”时,才有该参数。 \n 字段分隔符 文件中的字段分隔符,使用Tab键作为分隔符请输入“\t”。当“文件格式”选择为“CSV格式”时,才有该参数。 , 使用包围符 选择“是”时,包围符内的字段分隔符会被视为字符串值的一部分,目前CDM默认的包围符为:"。 否 使用转义符 选择“是”时,CSV数据行中的\作为转义符使用。 选择“否”时,CSV中的\作为数据不会进行转义。CSV只支持\作为转义符。 是 使用正则表达式分隔字段 选择是否使用正则表达式分隔字段,当选择“是”时,“字段分隔符”参数无效。当“文件格式”选择为“CSV格式”时,才有该参数。 是 正则表达式 分隔字段的正则表达式,正则表达式写法请参考正则表达式分隔半结构化文本。 ^(\d.*\d) (\w*) \[(.*)\] ([\w\.]*) (\w.*).* 前N行为标题行 “文件格式”选择“CSV格式”时才有该参数。在迁移CSV文件到表时,CDM默认是全部写入,如果该参数选择“是”,CDM会将CSV文件的前N行数据作为标题行,不写入目的端的表。 否 标题行数 “前N行为标题行”选择“是”时才有该参数。抽取数据时将被跳过的标题行数。 说明: 标题行数不为空,取值为1-99之间的整数。 1 解析首行为列名 “前N行为标题行”选择“是”时才有该参数。选择是否将标题的首行解析为列名,在配置字段映射时会在原字段中显示该列名。 说明: 标题行数大于1时,当前仅支持解析标题的首行作为列名。 列名不支持“&”字符,否则会导致作业迁移失败,需修改CSV文件“&”字符即可正常迁移。 是 编码类型 文件编码类型,例如:“UTF-8”或“GBK”。只有文本文件可以设置编码类型,当“文件格式”选择为“二进制格式”时,该参数值无效。 GBK 压缩格式 选择对应压缩格式的源文件: 无:表示传输所有格式的文件。 GZIP:表示只传输GZIP格式的文件。 ZIP:表示只传输ZIP格式的文件。 TAR.GZ:表示只传输TAR.GZ格式的文件。 无 压缩文件后缀 压缩格式非无时,显示该参数。 该参数需要解压缩的文件后缀名。当一批文件中以该值为后缀时,才会执行解压缩操作,否则保持原样传输。当输入*或为空时,所有文件都会被解压。 * 启动作业标识文件 选择是否开启作业标识文件的功能。当源端路径下存在启动作业的标识文件时才启动作业,否则会挂起等待一段时间,等待时长在下方“等待时间”中配置。 否 标识文件名 选择开启作业标识文件的功能时,需要指定启动作业的标识文件名。指定文件后,只有在源端路径下存在该文件的情况下才会运行任务。该文件本身不会被迁移。 ok.txt 等待时间 选择开启作业标识文件的功能时,如果源路径下不存在启动作业的标识文件,作业挂机等待的时长,当超时后任务会失败。 等待时间设置为0时,当源端路径下不存在标识文件,任务会立即失败。 单位:秒。 10 文件分隔符 “源目录或文件”参数中如果输入的是多个文件路径,CDM使用这里配置的文件分隔符来区分各个文件,默认为|。 | 过滤类型 满足过滤条件的路径或文件会被传输,该参数有“无”、“通配符”和“正则表达式”三种选择。具体使用方法可参见文件增量迁移。 通配符 目录过滤器 “过滤类型”选择“通配符”、“正则表达式”时,用通配符过滤目录,符合过滤器规则的目录,允许进行迁移。支持配置多个路径,中间使用“,”分隔。 说明: 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 *input 文件过滤器 “过滤类型”选择“通配符”、“正则表达式”时,用通配符过滤目录下的文件,符合过滤器规则的文件,允许进行迁移。支持配置多个文件,中间使用“,”分隔。 说明: 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 *.csv,*.txt 时间过滤 选择“是”时,可以根据文件的修改时间,选择性的传输文件。 是 起始时间 “过滤类型”选择“时间过滤器”时,可以指定一个时间值,当文件的修改时间大于等于该时间才会被传输,输入的时间格式需为“yyyy-MM-dd HH:mm:ss”。 该参数支持配置为时间宏变量,例如${timestamp(dateformat(yyyy-MM-dd HH:mm:ss,-90,DAY))}表示:只迁移最近90天内的文件。 说明: 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 2019-06-01 00:00:00 终止时间 “过滤类型”选择“时间过滤器”时,可以指定一个时间值,当文件的修改时间小于该时间才会被传输,输入的时间格式需为“yyyy-MM-dd HH:mm:ss”。 该参数支持配置为时间宏变量,例如${timestamp(dateformat(yyyy-MM-dd HH:mm:ss))}表示:只迁移修改时间为当前时间以前的文件。 说明: 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 2019-07-01 00:00:00 忽略不存在原路径/文件 如果将其设为是,那么作业在源路径不存在的情况下也能成功执行。 否 MD5文件名后缀 “文件格式”选择“二进制格式”时,该参数才显示。 校验CDM抽取的文件,是否与源文件一致,详细请参见MD5校验文件一致性。 .md5 迁移文件或对象时支持文件级增量迁移(通过配置跳过重复文件实现),但不支持断点续传。 例如要迁移3个文件,第2个文件迁移到一半时由于网络原因失败,再次启动迁移任务时,会跳过第1个文件,从第2个文件开始重新传,但不能从第2个文件失败的位置重新传。 文件迁移时,单个任务支持千万数量的文件,如果待迁移目录下文件过多,建议拆分到不同目录并创建多个任务。 父主题: 配置作业源端参数
  • 配置HBase/CloudTable目的端参数 作业中目的连接为HBase连接或CloudTable连接时,即导入数据到以下数据源时,目的端作业参数如表1所示。 表1 HBase/CloudTable作为目的端时的作业参数 参数名 说明 取值样例 表名 写入数据的HBase表名。如果是创建新HBase表,支持从源端复制字段名。单击输入框后面的按钮可进入表的选择界面。 该参数支持配置为时间宏变量,且一个路径名中可以有多个宏定义变量。使用时间宏变量和定时任务配合,可以实现定期同步新增数据,详细说明请参见使用时间宏变量完成增量同步。 说明: 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 TBL_2 导入前清空数据 选择目的端表中数据的处理方式: 是:任务启动前会清除目标表中数据。 否:导入前不清空目标表中的数据,如果选“否”且表中有数据,则数据会追加到已有的表中。 是 自动创表 只有当源端为关系数据库时,才有该参数。表示写入表数据时,用户选择的操作: 不自动创建:不自动建表。 不存在时创建:当目的端的数据库没有“表名”参数中指定的表时,CDM会自动创建该表。如果“表名”参数配置的表已存在,则不创建,数据写入到已存在的表中。 说明: Hbase自动建表包含列族与协处理器Coprocessor信息。其他属性按默认值设置,不跟随源端。 不自动创建 Row key拼接分隔符 可选参数,用于多列合并作为rowkey,默认为空格。 , Rowkey冗余 可选参数,是否将选做Rowkey的数据同时写入HBase的列,默认值“否”。 否 压缩算法 可选参数,创建新HBase表时采用的压缩算法,默认为值“NONE”。 NONE:不压缩。 SNAPPY:压缩为Snappy格式。 GZ:压缩为GZ格式。 NONE WAL开关 选择是否开启HBase的预写日志机制(WAL,Write Ahead Log)。 是:开启后如果出现HBase服务器宕机,则可以从WAL中回放执行之前没有完成的操作。 否:关闭时能提升写入性能,但如果HBase服务器宕机可能会造成数据丢失。 否 匹配数据类型 是:源端数据库中的Short、Int、Long、Float、Double、Decimal类型列的数据,会转换为Byte[]数组(二进制)写入HBase,其他类型的按字符串写入。如果这几种类型中,有合并做rowkey的,则依然当字符串写入。 该功能作用是:降低存储占用空间,存储更高效;特定场景下rowkey分布更均匀。 否:源端数据库中所有类型的数据,都会按照字符串写入HBase。 否 父主题: 配置作业目的端参数
  • 函数说明 新建原子指标时,需要按照函数设定表达式。以聚合函数的部分函数为例,函数说明如表3所示: 表3 聚合函数说明 函数名 表达式 函数说明 avg(col) avg() 求平均值。 corr(col1, col2) corr() 返回两列数值的相关系数。 count(*) count() 返回记录条数。 covar_pop(col1, col2) covar_pop() 返回两列数值协方差。 covar_samp(col1, col2) covar_samp() 返回两列数值样本协方差。 max(col) max() 返回最大值。 min(col) min() 返回最小值。 stddev_pop(col) stddev_pop() 返回指定列的偏差。 stddev_samp(col) stddev_samp() 返回指定列的样本偏差。 sum(col) sum() 求和。 var_samp(col) var_samp() 返回指定列的样本方差。 如果想要查询更多函数的功能及说明,可以在新建原子指标页面的基本信息中的设定表达式项,单击对应函数,在页面右侧的函数说明框中会显示对应的函数说明。 图5 函数说明
  • 新建原子指标并发布 在DataArts Studio控制台首页,选择实例,单击“进入控制台”,选择对应工作空间的“数据架构”模块,进入数据架构页面。 图1 选择数据架构 在数据架构控制台,单击左侧导航树中的“技术指标”,选择“原子指标”页签进入原子指标页面。 在左侧主题目录中选中一个主题,然后单击“新建”按钮,开始新建原子指标。 在新建原子指标页面,参考表1配置参数,然后单击“发布”。 图2 新建原子指标 表1 新建原子指标参数说明 参数名称 说明 *指标名称 只能包含中文、英文字母、数字和下划线,且以中文或英文字母开头。 *指标英文名称 只能包含英文字母、数字和下划线,且以英文字母开头。 *数据表 在下拉列表中选择一个已发布的事实表,如果表很多,您也可以在下拉列表的输入框中输入表名称搜索事实表。如果您尚未创建事实表,请参见新建事实表并发布进行创建并发布。 *所属主题 原子指标所属的主题信息。当“数据表”选择事实表后,将自动显示事实表所属的主题信息,您也可以单击“选择主题”进行选择。 *设定表达式 根据实际情况选择所需要的函数和字段,并设定表达式。函数列表及函数说明请参考函数说明。 描述 描述信息。支持的长度为0~600个字符。 在弹出框中,选择审核人,单击“确认提交”,提交审核。 如果当前用户已被添加为审核人,则可以勾选“自助审批”,单击“确认提交”后,状态显示为“已发布”。 选择审核人时,系统支持选择多个审核人,全部审批通过后,状态才会显示为已发布。如果有任意一个人驳回,则状态为已驳回。 (可选)参考步骤3~步骤5,完成其他原子指标的发布。 等待审核人员审核。 审核通过后,原子指标创建完成。 原子指标创建完成后,单击指标名称,可以查看该原子指标的详情、关系图、发布历史和审核历史。 通过关系图,可以查看该原子指标的血缘图。 通过发布历史,可以查看该原子指标的发布历史和不同发布版本之间的差异对比。
  • 背景信息 原子指标来源于事实表和维度表: 原子指标是为了构建应用统计分析所需的衍生指标,而定义的数据组件,因此可以基于事实逻辑表明细数据表来创建,也可以基于维度表来创建。 衍生指标无来源表,它归属于每个组合成它的原始的原子指标的来源表。 原子指标与衍生指标的关系: 原子指标的计算逻辑修改生效后,会直接更新应用于相关的衍生指标。 原子指标删除英文名,需要校验下游是否有衍生指标使用,如果有,则无法删除。 目前原子指标在被下游使用的情况下,支持变更英文名。 原子指标的更改会影响下游衍生指标。
  • 新建复合指标 在DataArts Studio控制台首页,选择实例,单击“进入控制台”,选择对应工作空间的“数据架构”模块,进入数据架构页面。 图1 选择数据架构 在数据架构控制台,单击左侧导航树中的“技术指标”,选择“复合指标”页签。 在“复合指标”页面,在左侧的主题目录中选中一个主题,然后单击“新建”按钮。 在新建复合指标页面,根据页面提示配置以下参数。 图2 新建复合指标 表1 新建复合指标参数说明 参数名称 说明 *复合指标名称 只能包含中文、英文字母、数字和下划线,且必须以中文或英文字母开头。 *复合指标英文名称 只能包含英文字母、数字和下划线,且必须以英文字母开头。 *所属主题 显示所属的主题信息。您也可以单击“选择主题”进行选择。 *统计维度 选择来源于衍生指标的统计维度。 *数据类型 选择复合指标的数据类型。 *复合指标类型 当前支持如下几种类型。 表达式 同比增长率 环比增长率 描述 描述信息。支持的长度为0~600个字符。 表达式 *设定表达式 选择所需要的衍生指标或复合指标,并根据实际需求在“表达式”中设置表达式。 同比增长率 *同比配置 选择年同比、月同比或者周同比。 *设定衍生指标 选择所需要的衍生指标,此处仅展示有时间限定衍生指标。系统会根据同比配置,利用时间限定自动计算同比增长率。 环比增长率 *设定衍生指标 选择所需要的衍生指标,此处仅展示有时间限定衍生指标。系统会利用时间限定自动计算环比增长率。 在页面下方,单击“试运行”按钮,然后在弹出框中单击“试运行”按钮,测试所设置的复合指标是否可以正常运行。 如果试运行失败,请根据错误提示定位错误原因,将配置修改正确后,再单击“试运行”按钮进行重试。 如果试运行成功,单击“发布”,提交发布审核。 在弹出框中,选择审核人,单击“确认提交”,提交审核。 如果当前用户已被添加为审核人,则可以勾选“自助审批”,单击“确认提交”后,状态显示为“已发布”。 选择审核人时,系统支持选择多个审核人,全部审批通过后,状态才会显示为已发布。如果有任意一个人驳回,则状态为已驳回。 等待审核人员审核。 审核通过后,复合指标创建完成。 复合指标创建完成后,单击指标名称,可以查看该复合指标的详情、关系图、发布历史和审核历史。 通过关系图,可以查看该复合指标的血缘图。 通过发布历史,可以查看该复合指标的发布历史和不同发布版本之间的差异对比。
  • 编辑复合指标 在数据架构控制台,单击左侧导航树的“技术指标”,然后选择“复合指标”页签,进入复合指标页面。 图3 复合指标 在复合指标列表中,找到需要编辑的复合指标,单击“编辑”,进入“编辑复合指标”页面。 根据实际需要修改配置参数。参数说明请参见表1。 在页面下方,单击“试运行”按钮,然后在弹出框中单击“试运行”按钮,测试所设置的复合指标是否可以正常运行。 如果试运行失败,请根据错误提示定位错误原因,将配置修改正确后,再单击“试运行”按钮进行重试。 如果试运行成功,单击“发布”,提交发布审核。 在弹出框中单击“确认提交”,提交审核。
  • 配置OBS目的端参数 作业中目的连接为OBS连接时,即导入数据到云服务OBS时,目的端作业参数如表1所示。 高级属性里的参数为可选参数,默认隐藏,单击界面上的“显示高级属性”后显示。 表1 OBS作为目的端时的作业参数 参数类型 参数名 说明 取值样例 基本参数 桶名 写入数据的OBS桶名。 bucket_2 写入目录 写入数据到OBS服务器的目录,目录前面不加“/”。 该参数支持配置为时间宏变量,且一个路径名中可以有多个宏定义变量。使用时间宏变量和定时任务配合,可以实现定期同步新增数据,详细说明请参见使用时间宏变量完成增量同步。 说明: 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 directory/ 文件格式 写入后的文件格式,可选择以下文件格式: CSV格式:按CSV格式写入,适用于数据表到文件的迁移。 二进制格式:选择“二进制格式”时不解析文件内容直接传输,CDM会原样写入文件,不改变原始文件格式,适用于文件到文件的迁移。 如果是文件类数据源(FTP/SFTP/HDFS/OBS)之间相互迁移数据,此处的“文件格式”只能选择与源端的文件格式一致。 说明: 当源端为MRS Hive数据源时,仅支持配置CSV格式。 当源端为FTP/SFTP数据源时,仅支持配置二进制格式。 CSV格式 重复文件处理方式 当源端为HDFS数据源时配置。 只有文件名和文件大小都相同才会判定为重复文件。写入时如果出现文件重复,可选择如下处理方式: 替换重复文件 跳过重复文件 停止任务 具体使用方法可参见文件增量迁移。 跳过重复文件 高级属性 加密方式 选择是否对上传的数据进行加密,以及加密方式: 无:不加密,直接写入数据。 KMS:使用数据加密服务中的KMS进行加密。如果启用KMS加密则无法进行数据的MD5校验。 详细使用方法请参见迁移文件时加解密。 KMS KMS ID 写入文件时加密使用的密钥,“加密方式”选择“KMS”时显示该参数。单击输入框后面的,可以直接选择在数据加密服务中已创建好的KMS密钥。 当使用与CDM集群相同项目下的KMS密钥时,不需要修改下面的“项目ID”参数。 当用户使用其它项目下的KMS密钥时,需要修改下面的“项目ID”参数。 53440ccb-3e73-4700-98b5-71ff5476e621 项目ID KMS ID所属的项目ID,该参数默认值为当前CDM集群所属的项目ID。 当“KMS ID”与CDM集群在同一个项目下时,这里的“项目ID”保持默认即可。 当“KMS ID”使用的是其它项目下的KMS ID时,这里需要修改为KMS所属的项目ID。 9bd7c4bd54e5417198f9591bef07ae67 复制Content-Type属性 “文件格式”为“二进制”,且源端、目的端都为对象存储时,才有该参数。 选择“是”后,迁移对象文件时会复制源文件的Content-Type属性,主要用于静态网站的迁移场景。 归档存储的桶不支持设置Content-Type属性,所以如果开启了该参数,目的端选择写入的桶时,必须选择非归档存储的桶。 否 换行符 文件中的换行符,默认自动识别“\n”、“\r”或“\r\n”。“文件格式”为“二进制格式”时该参数值无效。 \n 字段分隔符 文件中的字段分隔符。“文件格式”为“二进制格式”时该参数值无效。 , 写入文件大小 源端为数据库时该参数才显示,支持按大小分成多个文件存储,避免导出的文件过大,单位为MB。 1024 校验MD5值 使用“二进制格式”传输文件时,才能校验MD5值。选择校验MD5值时,无法使用KMS加密。 计算源文件的MD5值,并与OBS返回的MD5值进行校验。如果源端已经存在MD5文件,则直接读取源端的MD5文件与OBS返回的MD5值进行校验,具体请参见MD5校验文件一致性。 是 记录校验结果 当选择校验MD5值时,可以选择是否记录校验结果。 是 校验结果写入连接 可以指定任意一个OBS连接,将MD5校验结果写入该连接的桶下。 obslink OBS桶 写入MD5校验结果的OBS桶。 cdm05 写入目录 写入MD5校验结果的目录。 /md5/ 编码类型 文件编码类型,例如:“UTF-8”或“GBK”。“文件格式”为“二进制格式”时该参数值无效。 GBK 使用包围符 “文件格式”为“CSV格式”,才有该参数,用于将数据库的表迁移到文件系统的场景。 选择“是”时,如果源端数据表中的某一个字段内容包含字段分隔符或换行符,写入目的端时CDM会使用双引号(")作为包围符将该字段内容括起来,作为一个整体存储,避免其中的字段分隔符误将一个字段分隔成两个,或者换行符误将字段换行。例如:数据库中某字段为hello,world,使用包围符后,导出到CSV文件的时候数据为"hello,world"。 否 首行为标题行 从关系型数据库导出数据到OBS,“文件格式”为“CSV格式”时,才有该参数。 在迁移表到CSV文件时,CDM默认是不迁移表的标题行,如果该参数选择“是”,CDM在才会将表的标题行数据写入文件。 否 作业成功标识文件 当作业执行成功时,会在写入目录下生成一个标识文件,文件名由用户指定。不指定时默认关闭该功能。 finish.txt 文件夹模式 从关系型数据库导出数据到OBS,才有该参数。 启用后将会以根目录-表名-数据类型-数据的文件夹模型生成文件。例如:raw_schema/tbl_student/datas/tbl_student_1.csv 是 Blog/Clog文件扩展名 “文件夹模式”为“是”时,才有该参数。文件夹模式下自定义Blob/Clog数据的文件扩展名。 .dat/.jpg/.png 自定义目录层次 选择“是”时,支持迁移后的文件按照自定义的目录存储。即只迁移文件,不迁移文件所归属的目录。 是 目录层次 自定义迁移后文件的存储路径,支持时间宏变量。 说明: 源端为关系型数据库数据源时,目录层次为源端表名+自定义目录,其他场景下为自定义目录。 ${dateformat(yyyy-MM-dd HH:mm:ss, -1, DAY)} 自定义文件名 从关系型数据库导出数据到OBS,且“文件格式”为“CSV格式”时,才有该参数。 用户可以通过该参数自定义OBS端生成的文件名,支持以下自定义方式: 字符串,支持特殊字符。例如“cdm#”,则生成的文件名为“cdm#.csv”。 时间宏,例如“${timestamp()}”,则生成的文件名为“1554108737.csv”。 表名宏,例如“${tableName}”,则生成的文件名为源表名“sqltabname.csv”。 版本宏,例如“${version}”,则生成的文件名为集群版本号“2.9.2.200.csv”。 字符串和宏(时间宏/表名宏/版本宏)任意组合,例如“cdm#${timestamp()}_${version}”,则生成的文件名为“cdm#1554108737_2.9.2.200.csv”。 cdm 父主题: 配置作业目的端参数
  • 时间过滤 参数位置:在创建表/文件迁移作业时,如果源端数据源为文件类型,那么源端作业配置下的高级属性中,“时间过滤”参数选择“是”。 参数原理:“起始时间”和“终止时间”参数中输入时间值后,只有修改时间介于起始时间和终止时间之间(时间区间为左闭右开,即等于起始时间也在区间之内)的文件才会被CDM迁移。 配置样例: 例如需要CDM只同步2021年1月1日~2022年1月1日生成的文件到目的端,则参数配置如下: 时间过滤器:选择为“是”。 起始时间:配置为2021-01-01 00:00:00(格式要求为yyyy-MM-dd HH:mm:ss)。 终止时间:配置为2022-01-01 00:00:00(格式要求为yyyy-MM-dd HH:mm:ss)。 图2 时间过滤 这样CDM作业就只迁移2021年1月1日~2022年1月1日时间段内生成的文件,下次作业再启动时就可以实现增量同步。
  • 文件/路径过滤器 参数位置:在创建表/文件迁移作业时,如果源端数据源为文件类型,那么源端作业参数的高级属性中可以看到“过滤类型”参数,该参数可选择:通配符或正则表达式。 参数原理:“过滤类型”选择“通配符”时,CDM就可以通过用户配置的通配符过滤文件或路径,CDM只迁移满足指定条件的文件或路径。 配置样例: 例如源端文件名带有时间字段“2017-10-15 20:25:26”,这个时刻生成的文件为“/opt/data/file_20171015202526.data”,则在创建作业时,参数配置如下: 过滤类型:选择“通配符”。 文件过滤器:配置为“*${dateformat(yyyyMMdd,-1,DAY)}*”(这是CDM支持的日期宏变量格式,详见时间宏变量使用解析)。 图1 文件过滤 配置作业定时自动执行,“重复周期”为1天。 这样每天就可以把昨天生成的文件都导入到目的端目录,实现增量同步。 文件增量迁移场景下,“路径过滤器”的使用方法同“文件过滤器”一样,需要路径名称里带有时间字段,这样可以定期增量同步指定目录下的所有文件。
  • 配置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 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 父主题: 配置作业源端参数
  • HBase/CloudTable增量迁移 使用CDM导出HBase(包括MRS HBase、FusionInsight HBase、Apache HBase)或者表格存储服务(CloudTable)的数据时,支持导出指定时间段内的数据,配合CDM的定时任务,可以实现HBase/CloudTable的增量迁移。 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 在创建CDM表/文件迁移的作业,源连接选择为HBase连接或CloudTable连接时,高级属性的可选参数中可以配置时间区间。 图1 HBase时间区间 起始时间(包含该值),格式为“yyyy-MM-dd HH:mm:ss”,表示只抽取该时间及以后的数据。 终止时间(不包含该值),格式为“yyyy-MM-dd HH:mm:ss”,表示只抽取该时间以前的数据。 这2个参数支持配置为时间宏变量,例如: 起始时间配置为${dateformat(yyyy-MM-dd HH:mm:ss, -1, DAY)}时,表示只导出昨天以后的数据。 终止时间配置为${dateformat(yyyy-MM-dd HH:mm:ss)}时,表示只导出当前时间以前的数据。 这2个参数同时配置后,CDM就只导出前一天内的数据,再将该作业配置为每天0点执行一次,就可以增量同步每天新生成的数据。 父主题: 增量迁移原理介绍
  • 数据准备 下载Flink作业资源包"wordcount.jar",下载地址:https://github.com/huaweicloudDocs/dgc/blob/master/WordCount.jar 下载的Flink作业资源包需要进行JAR包完整性校验。Windows操作系统下,打开本地命令提示符框,输入如下命令,在本地生成已下载JAR包的SHA256值,其中,“D:\wordcount.jar”为JAR包的本地存放路径和JAR包名,请根据实际情况修改。 certutil -hashfile D:\wordcount.jar SHA256 命令执行结果示例,如下所示: SHA256 的 D:\wordcount.jar 哈希: 0859965cb007c51f0d9ddaf7c964604eb27c39e2f1f56e082acb20c8eb05ccc4 CertUtil: -hashfile 命令成功完成。 对比所下载JAR包的SHA256值和下面JAR包的SHA256值。如果一致,则表示下载过程不存在篡改和丢包。 SHA256值:0859965cb007c51f0d9ddaf7c964604eb27c39e2f1f56e082acb20c8eb05ccc4 准备数据文件“in.txt”,内容为一段英文单词。
  • 操作步骤 将作业资源包和数据文件传入OBS桶中。 本例中,WordCount.jar文件上传路径为:lkj_test/WordCount.jar;word.txt 文件上传路径为:lkj_test/input/word.txt。 创建一个数据开发模块空作业,作业名称为“job_MRS_Flink”。 图1 新建作业 进入到作业开发页面,拖动“MRS Flink”节点到画布中并单击,配置节点的属性。 图2 配置MRS Flink节点属性 参数设置说明: --Flink作业名称 wordcount --MRS集群名称 选择一个MRS集群 --运行程序参数 -c org.apache.flink.streaming.examples.wordcount.WordCount --Flink作业资源包 wordcount --输入数据路径 obs://dlf-test/lkj_test/input/word.txt --输出数据路径 obs://dlf-test/lkj_test/output.txt 其中: obs://dlf-test/lkj_test/input/word.txt为wordcount.jar的传入参数路径,可以把需要统计的单词写到里面; obs://dlf-test/lkj_test/output.txt为输出参数文件的路径(如已存在output.txt文件,会报错)。 单击“测试运行”,执行该MRS Flink作业。 待测试完成,执行“提交”。 在“作业监控”界面,查看作业执行结果。 查看OBS桶中返回的记录(没设置返回可跳过)。
  • 配置分库源端参数 作业中源连接为分库连接,源端作业参数如表1所示。 表1 分库作为源端时的作业参数 参数类型 参数名 说明 取值样例 基本参数 模式或表空间 表示待抽取数据的模式或表空间名称。单击输入框后面的按钮可进入模式选择界面,分库连接时此处默认展示对应第一个后端连接的表空间。用户也可以直接输入模式或表空间名称。 如果选择界面没有待选择的模式或表空间,请确认对应连接里的账号是否有元数据查询的权限。 该参数支持配置正则表达式,实现导出满足规则的所有数据库。例如:表名配置为user_[0-9]{1,2},会匹配 user_0 到 user_9,user_00 到 user_99 的表。 SCHEMA_E 表名 表示要抽取的表名。单击输入框后面的按钮可进入表的选择界面,用户也可以直接输入表名称。 如果选择界面没有待选择的表,请确认表是否已经创建,或者对应连接里的账号是否有元数据查询的权限。 该参数支持配置为时间宏变量,且一个路径名中可以有多个宏定义变量。使用时间宏变量和定时任务配合,可以实现定期同步新增数据,详细说明请参见使用时间宏变量完成增量同步。 该参数支持配置正则表达式,实现导出满足规则的所有数据库。 说明: 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 table 高级属性 Where子句 表示配置抽取范围的Where子句,不配置时抽取整表。 该参数支持配置为时间宏变量,实现抽取指定日期的数据,详细说明请参见关系数据库增量迁移。 说明: 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 DS='${dateformat(yyyy-MM-dd,-1,DAY)}' 选择源连接名称为分库连接对应的后端连接时,此作业即为普通的MySQL作业。 新建源端为分库连接的作业时,在字段映射阶段,可以在源字段新增样值为“${custom(host)}”样式的自定义字段,用于在多个数据库中的多张表迁移到同一张表后,查看表的数据来源。支持的样值包括: ${custom(host)} ${custom(database)} ${custom(fromLinkName)} ${custom(schemaName)} ${custom(tableName)} 父主题: 配置作业源端参数
  • 配置达梦数据库 DM源端参数 从达梦数据库 DM导出数据时,源端作业参数如表1所示。 表1 达梦数据库 DM作为源端时的作业参数 参数类型 参数名 说明 取值样例 基本参数 使用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 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 高级属性 抽取分区字段 “使用SQL语句”选择“否”时,显示该参数,表示抽取数据时使用该字段进行数据切分,CDM依据此字段将作业分割为多个任务并发执行。一般使用数据均匀分布的字段,例如以自然增长的序号字段作为分区字段。 单击输入框后面的按钮可进入字段选择界面,用户也可以直接输入抽取分区字段名。 说明: 抽取分区字段支持CHAR、VARCHAR、LONGVARCHAR、TINYINT、SMALLINT、INTEGER、BIGINT、REAL、FLOAT、DOUBLE、NUMERIC、DECIMAL、BIT、BOOLEAN、DATE、TIME、TIMESTAMP类型,建议该字段带有索引。 当选择CHAR、VARCHAR、LONGVARCHAR抽取分区字段类型时,字段值不支持ASCII字符代码表之外的字符,不支持中文字符。 id Where子句 “使用SQL语句”选择“否”时,显示该参数,表示配置抽取范围的Where子句,不配置时抽取整表。 该参数支持配置为时间宏变量,实现抽取指定日期的数据,详细说明请参见关系数据库增量迁移。 说明: 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 DS='${dateformat(yyyy-MM-dd,-1,DAY)}' 分区字段含有空值 是否允许分区字段包含空值。 是 父主题: 配置作业源端参数
  • 新建时间限定并发布 在DataArts Studio控制台首页,选择实例,单击“进入控制台”,选择对应工作空间的“数据架构”模块,进入数据架构页面。 图1 选择数据架构 (可选)在数据架构控制台,单击左侧导航树中的“配置中心”,在功能配置下选择是否开启“时间限定生成使用动态表达式”功能,默认关闭。 图2 功能配置 在数据架构控制台,单击左侧导航树中的“技术指标”,选择“时间限定”页签。 进入时间限定页面后,单击“新建”按钮。 在新建时间限定页面,参考表1配置参数,然后单击“发布”。 图3 时间限定 表1 新建时间限定参数说明 参数名称 说明 *限定名称 只能包含中文、英文字母、数字和下划线,且必须以中文或英文字母开头。 *限定英文名称 只能包含英文字母、数字和下划线。 *时间配置 可选择“按年”、“按月”、“按日”、“按小时”或“按分钟”,然后根据需要选择“快速选择”或“自定义”进行时间条件的设置。 自定义时,“-”表示从当前时间向前的时间段,“+”表示从当前时间向后的时间段。例如,过去一年到未来三年,可以按年自定义为“-1到+3”或“+3到-1”。 描述 描述信息。支持的长度0~490字符。 在弹出框中,选择审核人,单击“确认提交”,提交发布审核。 如果当前用户已被添加为审核人,则可以勾选“自助审批”,单击“确认提交”后,状态显示为“已发布”。 选择审核人时,系统支持选择多个审核人,全部审批通过后,状态才会显示为已发布。如果有任意一个人驳回,则状态为已驳回。 等待审核人员审核。 审核通过后,时间限定创建完成。
  • 配置神通(ST)源端参数 从神通(ST)导出数据时,源端作业参数如表1所示。 表1 神通(ST)作为源端时的作业参数 参数类型 参数名 说明 取值样例 基本参数 使用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 高级属性 抽取分区字段 “使用SQL语句”选择“否”时,显示该参数,表示抽取数据时使用该字段进行数据切分,CDM依据此字段将作业分割为多个任务并发执行。一般使用数据均匀分布的字段,例如以自然增长的序号字段作为分区字段。 单击输入框后面的按钮可进入字段选择界面,用户也可以直接输入抽取分区字段名。 说明: 抽取分区字段支持TINYINT、SMALLINT、INTEGER、BIGINT、REAL、FLOAT、DOUBLE、NUMERIC、DECIMAL、BIT、BOOLEAN、DATE、TIME、TIMESTAMP类型,建议该字段带有索引。 id Where子句 “使用SQL语句”选择“否”时,显示该参数,表示配置抽取范围的Where子句,不配置时抽取整表。 该参数支持配置为时间宏变量,实现抽取指定日期的数据,详细说明请参见关系数据库增量迁移。 说明: 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 DS='${dateformat(yyyy-MM-dd,-1,DAY)}' 分区字段含有空值 是否允许分区字段包含空值。 是 父主题: 配置作业源端参数
  • 时间宏变量和定时任务配合完成增量同步 这里列举两个简单的使用场景: 数据库表中存在表示时间的列DS,类型为“varchar(30)”,插入的时间格式类似于“2017-xx-xx”。 定时任务中,重复周期为1天,每天的凌晨0点执行定时任务。配置“Where子句”为DS='${dateformat(yyyy-MM-dd,-1,DAY)}',这样就可以在每天的凌晨0点导出前一天产生的所有数据。 数据库表中存在表示时间的列time,类型为“Number”,插入的时间格式为时间戳。 定时任务中,重复周期为1天,每天的凌晨0点执行定时任务。配置“Where子句”为time between ${timestamp(-1,DAY)} and ${timestamp()},这样就可以在每天的凌晨0点导出前一天产生的所有数据。 其它的配置方式原理相同。
  • Where子句中的时间宏变量 以SQOOP.CDM_20171016表为例,该表中存在表示时间的列DS,如图2所示。 图2 表数据 假设当前时间为“2017-10-16”,要导出前一天的数据(即DS=‘2017-10-15’),则可以在创建作业时配置“Where子句”为DS='${dateformat(yyyy-MM-dd,-1,DAY)}',即可将符合DS=‘2017-10-15’条件的数据导出。
  • 路径和表名的时间宏变量 如图1所示,如果将: 源端的“表名”配置为“CDM_/${dateformat(yyyy-MM-dd)}”。 目的端的“写入目录”配置为“/opt/ttxx/${timestamp()}”。 经过宏定义转换,这个作业表示:将Oracle数据库的“SQOOP.CDM_20171016”表中数据,迁移到HDFS的“/opt/ttxx/1508115701746”目录中。 图1 源表名和写入目录配置为时间宏变量 目前也支持一个表名或路径名中有多个宏定义变量,例如“/opt/ttxx/${dateformat(yyyy-MM-dd)}/${timestamp()}”,经过转换后为“/opt/ttxx/2017-10-16/1508115701746”。
  • dateformat dateformat支持两种形式的参数: dateformat(format) format表示返回日期的格式,格式定义参考“java.text.SimpleDateFormat.java”中的定义。 例如当前日期为“2017-10-16 09:00:00”,则“yyyy-MM-dd HH:mm:ss”表示“2017-10-16 09:00:00”。 dateformat(format, dateOffset, dateType) format表示返回日期的格式。 dateOffset表示日期的偏移量。 dateType表示日期的偏移量的类型。 目前dateType支持以下几种类型:SECOND(秒),MINUTE(分钟),HOUR(小时),DAY(天),MONTH(月),YEAR(年)。 其中MONTH(月),YEAR(年)的偏移量类型存在特殊场景: 对于年、月来说,若进行偏移后实际没有该日期,则按照日历取该月最大的日期。 不支持在源端和目的端的“时间过滤”参数中的起始时间、终止时间使用年、月的偏移。 例如当前日期为“2023-03-01 09:00:00”,则: “dateformat(yyyy-MM-dd HH:mm:ss, -1, YEAR)”表示当前时间的前一年,也就是“2022-03-01 09:00:00”。 “dateformat(yyyy-MM-dd HH:mm:ss, -3, MONTH)”表示当前时间的前三月,也就是“2022-12-01 09:00:00”。 “dateformat(yyyy-MM-dd HH:mm:ss, -1, DAY)”表示当前时间的前一天,也就是“2023-02-28 09:00:00”。 “dateformat(yyyy-MM-dd HH:mm:ss, -1, HOUR)”表示当前时间的前一小时,也就是“2023-03-01 08:00:00”。 “dateformat(yyyy-MM-dd HH:mm:ss, -1, MINUTE)”表示当前时间的前一分钟,也就是“2023-03-01 08:59:00”。 “dateformat(yyyy-MM-dd HH:mm:ss, -1, SECOND)”表示当前时间的前一秒,也就是“2023-03-01 08:59:59”。
  • timestamp timestamp支持两种形式的参数: timestamp() 返回当前时间的时间戳,即从1970年到现在的毫秒数,如1508078516286。 timestamp(dateOffset, dateType) 返回经过时间偏移后的时间戳,“dateOffset”和“dateType”表示日期的偏移量以及偏移量的类型。 例如当前日期为“2017-10-16 09:00:00”,则“timestamp(-10, MINUTE)”返回当前时间点10分钟前的时间戳,即“1508115000000”。
  • 时间变量宏定义具体展示 假设当前时间为“2017-10-16 09:00:00”,时间变量宏定义具体如表1所示。 表1 时间变量宏定义具体展示 宏变量 含义 实际显示效果 ${dateformat(yyyy-MM-dd)} 以yyyy-MM-dd格式返回当前时间。 2017-10-16 ${dateformat(yyyy/MM/dd)} 以yyyy/MM/dd格式返回当前时间。 2017/10/16 ${dateformat(yyyy_MM_dd HH:mm:ss)} 以yyyy_MM_dd HH:mm:ss格式返回当前时间。 2017_10_16 09:00:00 ${dateformat(yyyy-MM-dd HH:mm:ss, -1, DAY)} 以yyyy-MM-dd HH:mm:ss格式返回时间,时间为当前时间的前一天。 2017-10-15 09:00:00 ${timestamp()} 返回当前时间的时间戳,即1970年1月1日(00:00:00 GMT)到当前时间的毫秒数。 1508115600000 ${timestamp(-10, MINUTE)} 返回当前时间点10分钟前的时间戳。 1508115000000 ${timestamp(dateformat(yyyyMMdd))} 返回今天0点的时间戳。 1508083200000 ${timestamp(dateformat(yyyyMMdd,-1,DAY))} 返回昨天0点的时间戳。 1507996800000 ${timestamp(dateformat(yyyyMMddHH))} 返回当前整小时的时间戳。 1508115600000
  • 前提条件 已创建CDM集群。 已获取MRS集群的Manager IP、管理员账号和密码,且该账号拥有数据导入、导出的操作权限。 MRS集群和CDM集群之间网络互通,网络互通需满足如下条件: CDM集群与云上服务处于不同区域的情况下,需要通过公网或者专线打通网络。通过公网互通时,需确保CDM集群已绑定EIP,数据源所在的主机可以访问公网且防火墙规则已开放连接端口。 CDM集群与云上服务同区域情况下,同虚拟私有云、同子网、同安全组的不同实例默认网络互通;如果同虚拟私有云但是子网或安全组不同,还需配置路由规则及安全组规则,配置路由规则请参见如何配置路由规则章节,配置安全组规则请参见如何配置安全组规则章节。 此外,您还必须确保该云服务的实例与CDM集群所属的企业项目必须相同,如果不同,需要修改工作空间的企业项目。
  • 配置Oracle源端参数 作业中源连接为Oracle数据库连接,源端作业参数如表1所示。 表1 Oracle作为源端时的作业参数 参数名 说明 取值样例 使用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 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 抽取分区字段 “按表分区抽取”选择“否”时,显示该参数,表示抽取数据时使用该字段进行数据切分,CDM依据此字段将作业分割为多个任务并发执行。一般使用数据均匀分布的字段,例如以自然增长的序号字段作为分区字段。 单击输入框后面的按钮可进入字段选择界面,用户也可以直接输入抽取分区字段名。 说明: 抽取分区字段支持TINYINT、SMALLINT、INTEGER、BIGINT、REAL、FLOAT、DOUBLE、NUMERIC、DECIMAL、BIT、BOOLEAN、DATE、TIME、TIMESTAMP类型,建议该字段带有索引。 id Where子句 “使用SQL语句”选择“否”时,显示该参数,表示配置抽取范围的Where子句,不配置时抽取整表。 该参数支持配置为时间宏变量,实现抽取指定日期的数据,详细说明请参见关系数据库增量迁移。 说明: 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 DS='${dateformat(yyyy-MM-dd,-1,DAY)}' 分区字段含有空值 “按表分区抽取”选择“否”时,显示该参数,表示是否允许分区字段包含空值。 是 按表分区抽取 从Oracle导出数据时,支持从分区表的各个分区并行抽取数据。启用该功能时,可以通过下面的“表分区”参数指定具体的Oracle表分区。 该功能不支持非分区表。 数据库用户需要具有系统视图dba_tab_partitions和dba_tab_subpartitions的SELECT权限。 否 表分区 输入需要迁移数据的Oracle表分区,多个分区以&分隔,不填则迁移所有分区。 如果有子分区,以“分区.子分区”的格式填写,例如“P2.SUBP1”。 P0&P1&P2.SUBP1&P2.SUBP3 拆分作业 选择“是”,会根据“作业拆分字段”值,将作业拆分为多个子作业并发执行。 说明: 仅支持目的端为DLI和Hive时配置该参数及作业拆分字段、拆分字段最小值、拆分字段最大值、子作业个数参数。 是 作业拆分字段 “拆分作业”选择“是”时,显示该参数,使用该字段将作业拆分为多个子作业并发执行。 - 拆分字段最小值 “拆分作业”选择“是”时,显示该参数,表示抽取数据时“作业拆分字段”的最小值。 - 拆分字段最大值 “拆分作业”选择“是”时,显示该参数,表示抽取数据时“作业拆分字段”的最大值。 - 子作业个数 “拆分作业”选择“是”时,显示该参数,根据“作业拆分字段”的最小值和最大值限定的数据范围,将作业拆分为多少个子作业执行。 - Oracle作为源端时,如果未配置“抽取分区字段”或者“按表分区抽取”这2个参数,CDM自动使用ROWID进行数据分区。 父主题: 配置作业源端参数
  • 指标设计:新建并发布技术指标 在本示例中,您需要新建如表14和表15所示的技术指标: 表14 原子指标 *指标名称 *指标英文名称 数据表 *所属主题 *设定表达式 描述 总车费 sum_total_amount 行程订单 行程事实 sum (总车费) 无 表15 衍生指标 指标 *数据表 *所属主题 *原子指标 统计维度 时间限定 通用限定 基于付款方式维度统计总车费 行程订单 记录统计 总车费 付款方式 无 无 基于费率代码维度统计总车费 行程订单 记录统计 总车费 费率代码 无 无 基于供应商和下车时间维度统计总车费 行程订单 记录统计 总车费 供应商,行程订单.下车时间 无 无 在数据架构控制台,单击左侧导航树中的“技术指标”,进入技术指标页面。 新建一个原子指标“总车费”,用于统计总车费。 在技术指标页面,进入“原子指标”标签页,然后单击“新建”按钮。 在新建原子指标页面配置如下,配置完成后单击“发布”。 图46 原子指标 等待审核人审核通过。审核通过后,原子指标就创建好了。 当原子指标通过审核后,新建以下3个衍生指标。 总车费(付款方式):基于付款方式维度统计总车费 在技术指标页面,进入“衍生指标”标签页,然后单击“新建”按钮,在新建衍生指标页面,配置如下。配置完成后,单击“试运行”,并在弹出窗口中单击“执行”,如果运行通过单击“保存”。 图47 总车费(付款方式) 总车费(费率代码):基于费率代码维度统计总车费 在技术指标页面,进入“衍生指标”标签页,然后单击“新建”按钮,在新建衍生指标页面,配置如下。配置完成后,单击“试运行”,并在弹出窗口中单击“执行”,如果运行通过单击“保存”。 图48 总车费(费率代码) 截止当日_总车费(供应商,行程订单.下车时间):基于供应商维度统计总车费 在技术指标页面,进入“衍生指标”标签页,然后单击“新建”按钮,在新建衍生指标页面,配置如下。配置完成后,单击“试运行”,并在弹出窗口中单击“执行”,如果运行通过单击“保存”。 图49 总车费(供应商) 返回技术指标页面的“衍生指标”标签页后,勾选建好的3个衍生指标,单击“发布”,在弹出框中选择审核人,单击“确认提交”,等待审核人员审核通过后,事实表发布成功。如果当前账号具备审核人权限,也可以勾选“自助审批”,直接提交即可以审核通过。
  • 主题设计 在本示例中,主题设计如表2所示,说明如下: 新建1个主题域分组:城市交通。 在主题域分组“城市交通”下,新建4个主题域:行程记录、集团、时空、公共维度。 在主题域“行程记录”下,新建4个业务对象:原始记录、标准记录、行程事实、记录统计。 在主题域“集团”下,新建1个业务对象:供应商。 在主题域“时空”下,新建1个业务对象:时间。 在主题域“公共维度”下,新建1个业务对象:公共维度。 表2 主题设计信息 主题域分组名称(L1) 主题域分组编码(L1) 主题域名称(L2) 主题域编码(L2) 业务对象名称(L3) 业务对象编码(L3) 城市交通 city_traffic 行程记录 stroke_reminder 原始记录 origin_stroke 标准记录 stand_stroke 行程事实 stroke_fact 记录统计 stroke_statistic 集团 people 供应商 vendor 时空 time_location 时间 date 公共维度 public_dimension 公共维度 public_dimension 图4 主题设计 操作步骤如下: 登录DataArts Studio控制台。找到已创建的DataArts Studio实例,单击实例卡片上的“进入控制台”。 在工作空间概览列表中,找到所需要的工作空间,单击“数据架构”,进入数据架构控制台。 在数据架构控制台,单击左侧菜单栏的“配置中心”。选择“ 主题流程配置”,使用默认的3层层级。 L1-L7表示主题层级,默认3层,最大7层,最少2层,最后一层是业务对象,其他层级名称可编辑修改。配置中心配置的层级数,将在“主题设计”模块生效。 图5 配置主题层级 在数据架构控制台,单击左侧菜单栏的“主题设计”,进入相应页面后,单击“新建”创建L1层主题,即主题域分组。 图6 新建L1层主题 在弹出窗口中,按图6所示填写参数,然后单击“确定”完成主题域分组的创建。 主题域分组创建完成后,您需要勾选主题域分组,并单击“发布”,发布主题域分组。在弹出的“批量发布”对话框中选择审核人,再单击“确认提交”,等待审核人员审核通过后,主题域分组发布成功。如果当前账号具备审核人权限,也可以勾选“自助审批”,直接提交即可以审核通过。 图7 发布主题域分组 在L1层主题“城市交通”下,依次新建4个L2层主题,即主题域:行程记录、集团、时空、公共维度。 以主题域“行程记录”为例,新建主题域的步骤如下,其他主题域也请参照以下步骤进行添加: 选中已创建的L1层主题“城市交通”。单击右键,选择“新建”。或者单击右侧的“新建”按钮。 图8 创建L2层主题 在弹出窗口中,“名称”和“编码”请参照表2中的“主题域名称”和“主题域编码”进行填写,其他参数可根据实际情况进行填写,配置完成后单击“确定”完成主题域的新建。 主题域创建完成后,您需要勾选主题域,并单击“发布”,发布主题域。在弹出的“批量发布”对话框中选择审核人,再单击“确认提交”,等待审核人员审核通过后,主题域发布成功。如果当前账号具备审核人权限,也可以勾选“自助审批”,直接提交即可以审核通过。 图9 发布主题域 新建业务对象。 在主题域“行程记录”下,新建4个业务对象:原始记录、标准记录、行程事实、记录统计。 在主题域“集团”下,新建1个业务对象:供应商。 在主题域“时空”下,新建1个业务对象:时间。 在主题域“公共维度”下,新建1个业务对象:公共维度。 以在主题域“行程记录”下新建业务对象“原始记录”为例,新建业务对象的步骤如下,其他业务对象也请参照以下步骤进行添加: 选中已创建的L2层主题“行程记录”。单击右键,选择“新建”。或者单击右侧的“新建”按钮。 在弹出窗口中,“名称”和“编码”请参照表2中的“业务对象名称”和“业务对象编码”进行填写,其他参数可根据实际情况进行填写,配置完成后单击“确定”完成业务对象新建。 业务对象创建完成后,您需要勾选业务对象,并单击“发布”,发布业务对象。在弹出的“批量发布”对话框中选择审核人,再单击“确认提交”,等待审核人员审核通过后,业务对象发布成功。如果当前账号具备审核人权限,也可以勾选“自助审批”,直接提交即可以审核通过。 图10 发布业务对象
  • 新建数据标准并发布 在本示例中,您需要新建如表7所示的3个数据标准: 表7 数据标准 目录 *标准名称 *标准编码(自定义) *数据类型 数据长度 引用码表 *码表字段 描述 付款方式 付款方式 payment_type 长整型(BIGINT) 无 付款方式 付款方式编码 无 供应商 供应商 vendor 长整型(BIGINT) 无 供应商 供应商id 无 费率 费率代码 rate_code 长整型(BIGINT) 无 费率代码 费率id 无 在数据架构控制台,单击左侧导航树中的“数据标准”,进入数据标准页面。 首次进入“数据标准”页面,需要定制模板,定制的模板后续可以在配置中心进行更改。本示例需要额外勾选“引用码表”,如图所示。 图17 新建数据标准目录 请参考以下步骤,分别新建3个数据标准的目录:付款方式、供应商、费率。 在数据标准页面的目录树上方,单击新建目录,然后在弹出框中输入目录名称“付款方式”并选择目录,单击“确定”完成目录的新建。 图18 新建数据标准目录 请参考以下步骤,分别新建3个数据标准:付款方式、供应商、费率。 在数据标准页面的目录树中,选中所需要的目录,然后在右侧页面中单击“新建”。 在新建数据标准页面中,3个数据标准可分别参考如下配置,配置完成后单击“保存”。在本示例中,数据标准模板只选取了几个参数,您可以参考配置中心的“标准模板管理”定制数据标准模板。 图19 数据标准-付款方式 图20 数据标准-供应商 图21 数据标准-费率代码 返回数据标准页面后,在列表中勾选刚才新建的3个数据标准,然后单击“发布”发布数据标准。 在“批量发布”对话框中选择审核人,再单击“确认提交”,等待审核人员审核通过后,数据标准发布成功。如果当前账号具备审核人权限,也可以勾选“自助审批”,直接提交即可以审核通过。
  • 添加审核人 在数据架构中,数据建模流程中的步骤都需要经过审批,因此,需要先添加审核人。DAYU Administrator角色或该工作空间管理员,具备对应的添加审核人的权限。 在DataArts Studio控制台首页,选择实例,单击“进入控制台”,选择对应工作空间的“数据架构”模块,进入数据架构页面。 图1 选择数据架构 单击左侧导航树中的“配置中心”,进入相应页面后,在“审核人管理”页签,单击“添加”按钮。 选择审核人(工作空间管理员或开发者),输入正确的电子邮箱和手机号,单击“确定”完成审核人添加。 您也可以添加自己当前账号为审核人,在后续提交审批的相关操作中,支持进行“自助审批”。根据需要,可以添加多个审核人。 图2 添加审核人
共100000条