华为云用户手册

  • 功能 MRS Kafka主要是查询Topic未消费的消息数。 Kafka是一个分布式的、分区的、多副本的消息发布-订阅系统,它具有消息持久化、高吞吐、分布式、多客户端支持、实时等特性,适用于离线和在线的消息消费,如常规的消息收集、网站活性跟踪、聚合统计系统运营数据(监控数据)、日志收集等大量数据的互联网服务的数据收集场景。Kafka作为一个消息发布-订阅系统,为整个大数据平台多个子系统之间数据的传递提供了高速数据流转方式。
  • 操作步骤 本小节以Oracle到MRS Hudi的实时同步为示例,介绍如何配置Migration实时集成作业。配置作业前请务必阅读使用前自检概览, 确认已做好所有准备工作。 参见新建实时集成作业创建一个实时集成作业并进入作业配置界面。 选择数据连接类型:源端选Oracle,目的端选Hudi。 图2 选择数据连接类型 选择集成作业类型:同步类型默认为实时,同步场景包含整库场景。 图3 选择集成作业类型 同步场景相关介绍请参见同步场景。 配置网络资源:选择已创建的Oracle、MRS Hudi数据连接和已配置好网络连接的migration资源组。 图4 选择数据连接及migration资源组 无可选数据连接时,可单击“新建”跳转至管理中心数据连接界面,单击“创建数据连接”创建数据连接,详情请参见配置 DataArts Studio 数据连接参数进行配置。 无可选migration资源组时,可单击“新建”跳转至购买migration资源组页面创建migration资源组配置,详情请参见购买创建数据集成资源组增量包进行配置。 检测网络连通性:数据连接和migration资源组配置完成后需要测试整个迁移任务的网络连通性,可通过以下方式进行数据源和migration资源组之间的连通性测试。 单击展开“源端配置”触发连通性测试,会对整个迁移任务的连通性做校验。 单击源端和目的端数据源和migration资源组中的“测试”按钮进行检测。 网络连通性检测异常可先参考数据源和资源组网络不通如何排查?章节进行排查。 配置源端参数。 选择需要迁移的Oracle库表。 图5 选择库表 库与表均支持自定义选择,即可选择一库一表,也可选择多库多表。 配置目的端参数。 源库表和目标匹配策略。 各同步场景下源端库表和目标端库表的匹配策略请参考下表。 表5 源库表和目标匹配策略 同步场景 配置方式 整库 库匹配策略。 与来源库同名:数据将同步至与来源Oracle 库名相同的Hudi库中。 自定义:数据将同步至自行指定的Hudi库中。 表匹配策略。 与来源表同名:数据将同步至与来源Oracle 库名相同的Hudi表中。 自定义:数据将同步至自行指定的Hudi表中。 图6 整库场景下源库表和目标匹配策略 说明: 自定义匹配策略时,支持用内置变量#{source_db_name}和#{source_table_name}标志来源的库名和表名,其中表匹配策略必须包含#{source_table_name}。 Hudi参数配置。 其余Hudi目的端参数说明请参考下表。 图7 Hudi目的端配置项 表6 Hudi目的端配置项 配置项 默认值 单位 配置说明 数据存储路径 - - Hudi自动建表时的warehouse路径,每张表会在warehouse路径下创建子目录。支持填写HDFS和OBS路径,路径格式参考: OBS路径:obs://bucket/warehouse。 HDFS路径:/tmp/warehouse。 Hudi表属性全局配置 - - 支持通过参数配置部分高级功能,参数详情可参考Hudi高级配置一览表。 表7 Hudi高级配置一览表 参数名 参数类型 默认值 单位 参数说明 index.type string BLOOM - Hudi表索引类型。 支持BLOOM和BUCKET索引,数据量较大场景下强烈建议使用BUCKET索引性能更好。 hoodie.bucket.index.num.buckets int 256 个 Hudi表单分区下Bucket桶数。 说明: 使用Hudi BUCKET表时需要设置Bucket桶数,桶数设置关系到表的性能,需要格外引起注意。 非分区表桶数 = MAX(单表数据量大小(G)/2G*2,再向上取整,4)。 分区表桶数 = MAX(单分区数据量大小(G)/2G*2,再后向上取整,1)。 其中,要注意的是: 需要使用的是表的总数据大小,而不是压缩以后的文件大小。 桶的设置以偶数最佳,非分区表最小桶数请设置4个,分区表最小桶数请设置1个。 changelog.enabled boolean false - Hudi changelog功能开关,开启后Migration作业可输出DELETE和UPDATE BEFORE数据。 logical.delete.enabled boolean true - 逻辑删除开关,changelog开启时必须关闭逻辑删除。 hoodie.write.liststatus.optimized boolean true - 写log文件时是否开启liststatus优化。涉及到大表和分区数据量多的作业,在启动时list会非常耗时,可能导致作业启动超时,建议关闭。 hoodie.index.liststatus.optimized boolean false - 定位数据时是否开启liststatus优化。涉及到大表和分区数据量多的作业,在启动时list会非常耗时,可能导致作业启动超时,建议关闭。 compaction.async.enabled boolean true - 异步compaction开关。compaction操作一定程度会影响实时任务的写入性能,如果用户使用外置的compaction操作对hudi进行compaction,可以考虑设置为false关闭实时处理集成作业的compaction操作。 compaction.schedule.enabled boolean true - 生成compaction计划的开关。compaction计划必须由本服务生成,计划的执行可以交给Spark。 compaction.delta_commits int 5 次 生成compaction request的频率。compaction request生成频率降低可以使得compaction频率降低从而提升作业性能。如果hudi增量数据较小。可以考虑增大该值。 说明: 例如配置为40,即每40次commit生成一个compaction request,因为Migration每分钟生成1个commit,那么每个compaction request将间隔40分钟。 clean.async.enabled boolean true - 做历史版本数据文件清理的开关。 clean.retain_commits int 30 次 要保留的commit数。这些commit关联的数据文件版本将被保留 num_of_commits * time_between_commits 这么长的时间,建议配置为2倍的compaction.delta_commits。 说明: 例如配置为80,因为Migration每分钟生成1个commit,那么超过80分钟后如果有旧版本数据文件 ,则会生成clean request,且在执行clean时保留最近80个commit。 hoodie.archive.automatic boolean true - Hudi commit文件老化开关。 archive.min_commits int 40 次 将旧版commit归档到日志文件中时要保留不归档的最小commit数。建议配置成clean.retain_commits + 1。 说明: 例如配置成81,那么在触发归档动作时,将会保留最近81次commit文件。 archive.max_commits int 50 次 触发归档动作的commit数。建议配置成archive.min_commits + 20。 说明: 例如配置成101,那么将在生成101个commit文件后触发归档commit文件动作。 为了达到Migration作业性能最优,建议使用Hudi Bucket索引的MOR表,并根据实际数据量配置Bucket桶数。 为了保证Migration作业的稳定性,建议将Hudi Compaction单独拆成Spark作业交由MRS执行,在Migration任务里仅开启生成compaction计划,具体可以参考如何配置Hudi Compaction的Spark周期任务?。 刷新源表和目标表映射,检查映射关系是否正确,同时可根据需求修改表属性、添加附加字段,并通过“自动建表”能力在目的端Hudi数据库中建出相应的表。 图8 源表与目标表映射 同步主键 Hudi表必须设置“同步主键”,在源端为非主键表时,表映射会失败。 表属性编辑 单击操作列“表属性编辑”可配置Hudi表属性,包含表类型,分区类型及表自定义属性。 图9 Hudi表属性配置 表类型:Hudi的表类型,可选MERGE_ON_READ和COPY_ON_WRITE。 分区类型:Hudi表分区类型,可选无分区、时间分区、自定义分区。 其中时间分区需要用户指定一个源端字段名,选择一个时间转换格式。 比如时间分区用户指定一个源端字段名src_col_1,选择一个时间转换格式,日(yyyyMMdd)、月(yyyyMM)、年(yyyy),自动建表时会在Hudi表默认创建一个cdc_partition_key的字段,系统会根据配置的时间转换格式将源端字段(src_col_1)的值格式化后写入cdc_partition_key中。 自定义分区不支持timestamp类型的字段,使用timestamp类型的字段会导致作业失败。 表自定义属性:支持通过参数配置单表的部分高级功能,参数详情可参考Hudi高级配置一览表。 附加字段编辑:单击操作列“附加字段编辑”可为目的端的Hudi表中增加自定义字段,同时附加字段也会额外加入到Hudi表的建表中。用户可以在已有的源表字段基础上添加多个附加字段,并自定义字段名、选择字段类型、填写字段值。 字段名称:目的端Hudi表新增字段的名称。 字段类型:目的端Hudi表新增字段的类型。 字段值:目的端Hudi表新增字段的取值来源。 表8 附加字段取值方式 类型 示例 常量 支持数字、字母、中文、特殊字符。彩色表情字符可能导致作业提交失败,需谨慎使用。 内置变量 源端host ip地址:source.host。 源端schema名称:source.schema。 源端table名称:source.table。 目的端schema名称:target.schema。 目的端table名称:target.table。 源表字段 源表中的任一字段。 配置附加字段的取值来源于源表字段时,请注意任务运行过程中不能修改对应源表字段的名称,否则可能导致作业异常。 udf方法 substring(#col, pos[, len]): 截取源端col列的子串, 范围在[pos, pos+len)。 date_format(#col, time_format[, src_tz, dst_tz]): 将源端col列按time_format格式化, 可选转换时区。 now([tz]): 获取指定时区的当前时间。 if(cond_exp, str1, str2): 满足条件表达式cond_exp时返回str1, 否则返回str2。 concat(#col[, #str, ...]): 拼接多个参数, 可为源端列或字符串。 from_unixtime(#col[, time_format]): 将unix时间戳按time_format格式化。 unix_timestamp(#col[, precision, time_format]): 将时间转成unix时间戳,可显式定义时间格式及转换后精度,time_format时间格式要与源端保持一致。 自动建表:单击“自动建表”可按照已配置映射规则在目的端数据库自动建表,成功后表建立方式会显示为使用已有表。 图10 自动建表 Migration仅支持自动建表,不支持自动建库和模式,需用户自行在目的端手动建出库和模式后再使用本功能建表。 自动建表时对应的字段类型映射关系请参见字段映射关系章节。 自动建出的Hudi表会带有3个审计字段,分别是cdc_last_update_date、logical_is_deleted、_hoodie_event_time,并会以_hoodie_event_time作为Hudi表的预聚合键。 配置任务属性。 表9 任务配置参数说明 参数 说明 默认值 执行内存 作业执行分配内存,跟随处理器核数变化而自动变化。 8GB 处理器核数 范围:2-32。 每增加1处理核数,则自动增加4G执行内存和1并发数。 2 并发数 作业执行支持并发数。该参数无需配置,跟随处理器核数变化而自动变化。 1 自动重试 作业失败时是否开启自动重试。 否 最大重试次数 “自动重试”为是时显示该参数。 1 重试间隔时间 “自动重试”为是时显示该参数。 120秒 是否写入脏数据 选择是否记录脏数据,默认不记录脏数据,当脏数据过多时,会影响同步任务的整体同步速度。 否:默认为否,不记录脏数据。 表示不允许脏数据存在。如果同步过程中产生脏数据,任务将失败退出。 是:允许脏数据,即任务产生脏数据时不影响任务执行。 允许脏数据并设置其阈值时: 若产生的脏数据在阈值范围内,同步任务将忽略脏数据(即不会写入目标端),并正常执行。 若产生的脏数据超出阈值范围,同步任务将失败退出。 说明: 脏数据认定标准:脏数据是对业务没有意义,格式非法或者同步过程中出现问题的数据;单条数据写入目标数据源过程中发生了异常,则此条数据为脏数据。 因此只要是写入失败的数据均被归类于脏数据。 例如,源端是VARCHAR类型的数据写到INT类型的目标列中,则会因为转换不合理导致脏数据不会成功写入目的端。用户可以在同步任务配置时,配置同步过程中是否写入脏数据,配置脏数据条数(单个分片的最大错误记录数)保证任务运行,即当脏数据超过指定条数时,任务失败退出。 否 脏数据策略 “是否写入脏数据”为是时显示该参数,当前支持以下策略: 不归档:不对脏数据进行存储,仅记录到任务日志中。 归档到OBS:将脏数据存储到OBS中,并打印到任务日志中。 不归档 脏数据写入连接 “脏数据策略”选择归档到OBS时显示该参数。 脏数据要写入的连接,目前只支持写入到OBS连接。 - 脏数据目录 脏数据写入的OBS目录。 - 脏数据阈值 是否写入脏数据为是时显示该参数。 用户根据实际设置脏数据阈值。 说明: 脏数据阈值仅针对每个并发生效。比如阈值为100,并发为3,则该作业可容忍的脏数据条数最多为300。 输入-1表示不限制脏数据条数。 100 添加自定义属性 支持通过自定义属性修改部分作业参数及开启部分高级功能,详情可参见任务性能调优章节。 - 提交并运行任务。 作业配置完毕后,单击作业开发页面左上角“提交”,完成作业提交。 图11 提交作业 提交成功后,单击作业开发页面“启动”按钮,在弹出的启动配置对话框按照实际情况配置同步位点参数,单击“确定”启动作业。 图12 启动配置 表10 启动配置参数 参数 说明 同步模式 增量同步:从指定时间位点开始同步增量数据。 全量+增量:先同步全量数据,随后实时同步增量数据。 时间 增量同步需要设置该参数,指示增量同步起始的时间位点。 说明: 配置的位点时间早于CDC日志最早时间点时,默认会以日志最新时间点开始消费。 监控作业。 通过单击作业开发页面导航栏的“前往监控”按钮,可前往作业监控页面查看运行情况、监控日志等信息,并配置对应的告警规则,详情请参见实时集成任务运维。 图13 前往监控
  • 数据库账号权限要求 在使用Migration进行同步时,源端和目的端所使用的数据库账号需要满足以下权限要求,才能启动实时同步任务。不同类型的同步任务,需要的账号权限也不同,详细可参考下表进行赋权。 表2 数据库账号权限 类型名称 权限要求 源数据库连接账号 Oracle 库需要开启归档日志,同时需表查询权限和日志解析权限,开通对应权限详情请参考Oracle数据源如何开通归档日志、查询权限和日志解析权限?。 目标数据库连接账号 MRS用户需要拥有Hadoop和Hive组件的读写权限,建议参照图1所示角色及用户组配置MRS用户。 图1 MRS Hudi最小化权限 具体MRS集群角色权限管理请参考《MRS集群用户权限模型》。
  • 支持的同步对象范围 在使用Migration进行同步时,不同类型的链路,支持的同步对象范围不同,详细情况可参考下表。 表3 同步对象范围 类型名称 使用须知 同步对象范围 支持同步的DML:包括INSERT、UPDATE、DELETE。 支持同步的DDL:新增列。 仅支持同步主键表。 不支持视图、外键、存储过程、触发器、函数、事件、虚拟列、唯一约束、唯一索引、外键索引、Check约束的同步。 自动建表支持同步表结构、普通索引、约束(主键、空、非空)、注释。
  • 注意事项 除了数据源版本、连接账号权限及同步对象范围外,您还需要注意的事项请参见下表。 表4 注意事项 类型名称 使用和操作限制 数据库限制 源端数据库中的库名、表名、字段名不能包含:.-以及非ASCII字符,建议尽量使用常规字符避免任务失败。 目标数据库中的库名、表名、字段名仅支持数字、字母和下划线,且字段名必须以字母或下划线开头,建议尽量使用常规字符避免任务失败。 使用限制 通用: 实时同步过程中,不支持IP、端口、账号、密码修改。 Oracle归档日志建议保留3天以上,否则可能因无法获取日志导致任务失败,特殊情况可能导致数据不一致或者丢失。 禁止对Oracle源库做resetlogs操作,否则会导致数据无法同步且任务无法恢复。 不支持修改源数据库Oracle用户名(SCHEMA名),包括11.2.0.2之前版本通过修改USER$字典表方式及11.2.0.2之后通过ALTER USER username RENAME TO new_username修改SCHEMA名称的场景。 Oracle为源端时,暂不支持迁移CLOB、NCLOB和BLOB类型。 Oracle为源端时,暂不支持Oracle RAC集群。 Oracle为源端时,支持连接单实例的oracle备库,不支持RAC集群备库,备库读取时只支持读取archive log,不支持读取standby log。连接备库时建议oracle 设置定时归档,减少数据同步时延。 网络带宽建议大于100M/s。 Hudi表使用Bucket索引的场景下不允许更新分区键,否则可能产生重复数据。 Hudi表使用Bucket索引的场景下主键仅保证单分区内唯一。 本链路所使用的Hudi表需带有3个审计字段:cdc_last_update_date、logical_is_deleted、_hoodie_event_time,并会以_hoodie_event_time作为Hudi表的预聚合键。因此,若使用已存在的表,也需要携带这3个审计字段,否则可能导致任务异常。 cdc_last_update_date:Migration任务处理CDC数据的时间。 logical_is_deleted:逻辑删除标志。 _hoodie_event_time:数据在Oracle CDC中的时间戳。 全量同步阶段: 任务启动和全量数据同步阶段,请不要在源数据库执行DDL操作,否则可能导致任务异常。 增量同步阶段: 支持DML:包括INSERT、UPDATE、DELETE。 支持的DDL:新增列。 不支持混合分区表。混合分区表中的外部分区数据变更不产生DML日志,增量数据同步时无法获取变更信息,会存在数据不一致的风险。 表名和列名长度限制为30个字符。Oracle日志读取采用Oracle logminer,logminer限制了表名和列名在30个字符以内,详情请参见LogMiner分析日志相关介绍。 增量启动时,选择时间位点启动,请确保oracle数据库时区和数据库所在主机时区一致,才能保证增量位点的准确性。 增量同步不支持Oracle上的分布式事务(XA事务)和PARALLEL DML。 增量阶段不支持Oracle字符集扩展的字符,标准字符集无法解析Oracle自定义扩展字符。 增量同步不支持同步或迁移触发器,需要关闭目标Oracle的触发器。 增量同步不支持同步或迁移存在外键约束的数据。 增量同步不支持同步或迁移使用Oracle Data Pump向源库导入的数据。 常见故障排查: 在任务创建、启动、全量同步、增量同步、结束等过程中,如有遇到问题,可先参考常见问题章节进行排查。 其他限制 支持目标数据库中的表比源数据库多列场景,但是需要避免以下场景可能导致的任务失败。 目标数据库多的列若是非空且没有默认值,源数据库insert数据,同步到目标数据库后多的列为null,不符合目标数据库要求。 目标数据库多的列设置固定默认值,且有唯一约束。源数据库insert多条数据后,同步到目标数据库后多的列为固定默认值,不符合目标数据库要求。 Oracle中表结构长度(所有列长字节数之和,char、varchar2等类型字节长度和编码有关)超过65535时,可能导致同步失败。 当使用PDB数据库同步时,由于Oracle LogMiner组件的限制,增量同步时必须打开全部PDB。 Oralce 12.2及以上版本,由于Oracle LogMiner组件的限制,增量同步不支持表名或列名超过30个字符。 Oracle为源端时全量+增量或增量作业,如果需要同步PDB库中的表,Oracle连接中需要填写CDB库的用户名和密码,不能为PDB用户名和密码,因为Oracle日志统一在存储在CDB库中,同时Oracle logminer只能运行在CDB库中。 DDL删除表时需执行“drop table test_table_name purage命令”。 Oracle数据库默认删除表是一个高危操作,执行"drop table test_table_name"命令时, Oracle会将该命令转换为“rename table test_table_name as xxxxx”, 即将该表重新命名为Oracle临时表空间中的一张待处理表,原表实际并未删除,migration默认直接忽略该语法;Oracle删除表语句"drop table test_table_name purage"会彻底删除表,migration会自动识别删除表并下发给下游。 全量和增量同步不支持隐藏列(UNUESD, INVISIBIE)。 不支持无主键表。 不支持DCL操作。 不支持同步或迁移连续的RENAME TABLE操作,否则可能会导致任务失败。 不支持同步或迁移全局临时表(任务正常运行)。 不支持同步或迁移含有默认值函数的表,否则会导致数据不一致。 不支持同步或迁移默认值中含有表达式的表。 不支持同步或迁移外部表。 不支持同步或迁移计算列、加密列。 不支持同步或迁移虚拟私有数据库(Virtual Private Database, VPD)。 不支持同步或迁移dbms_scheduler和dbms_job创建的job。 不支持同步或迁移Schema名称的变更操作。 不支持同步或迁移嵌套表,否则会导致任务报错。 不支持同步或迁移物化视图(Materialized View)。 不支持同步或迁移包含关键字或者特殊字符的属性名的DDL操作。 不支持ROWID变更操作(例如split partition、table move、table shrink、move partition key),否则可能会导致数据不一致或任务失败。 不支持Secure Sockets Layer(SSL)加密传输模式。 不支持Oracle Label Security模式。
  • 更多操作 导出 勾选需要导出的作业实例名称,单击“导出”,弹出“导出实例运行结果”页面,再次单击“导出”,可以在“导出记录”页签查看导出实例的结果是否成功,可以下载导出成功的作业实例。系统支持查看近3个月的导出记录。 删除 勾选需要删除的作业实例名称,单击“删除”,可以批量删除作业实例。 停止运行 勾选需要停止运行的作业实例名称,单击“停止运行”,可以批量停止运行中的作业实例。 重跑 选择需要重跑的作业实例名称,单击作业实例右侧“操作”列的“重跑”,可以重跑该作业实例。
  • 脚本开发流程 脚本开发功能提供如下能力: 提供在线脚本编辑器,支持进行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 脚本开发流程 新建脚本:新建相应类型的脚本。具体请参见新建脚本。 开发脚本:基于新建的脚本,进行脚本的在线开发、调试和执行。具体请参见开发脚本。 提交版本并解锁:脚本开发完成后,您需要提交版本并解锁,提交版本并解锁后才能正式地被作业调度运行,便于其他开发者修改。具体请参见提交版本。 (可选)管理脚本:脚本开发完成后,您可以根据需要,进行脚本管理。具体请参见(可选)管理脚本。 发布脚本。企业模式下需要发布脚本,具体请参见发布脚本任务。 父主题: 脚本开发
  • 指标设计:新建并发布技术指标 在本示例中,您需要新建如表15和表16所示的技术指标: 表15 原子指标 *指标名称 *指标英文名称 数据表 *所属主题 *设定表达式 描述 总车费 sum_total_amount 行程订单 行程事实 sum (总车费) 无 表16 衍生指标 指标 *数据表 *所属主题 *原子指标 统计维度 时间限定 通用限定 基于付款方式维度统计总车费 行程订单 记录统计 总车费 付款方式 无 无 基于费率代码维度统计总车费 行程订单 记录统计 总车费 费率代码 无 无 基于供应商和下车时间维度统计总车费 行程订单 记录统计 总车费 供应商,行程订单.下车时间 无 无 在数据架构控制台,单击左侧导航树中的“技术指标”,进入技术指标页面。 新建一个原子指标“总车费”,用于统计总车费。 在技术指标页面,进入“原子指标”标签页,然后单击“新建”按钮。 在新建原子指标页面配置如下,配置完成后单击“发布”。 图45 原子指标 等待审核人审核通过。审核通过后,原子指标就创建好了。 当原子指标通过审核后,新建以下3个衍生指标。 总车费(付款方式):基于付款方式维度统计总车费 在技术指标页面,进入“衍生指标”标签页,然后单击“新建”按钮,在新建衍生指标页面,配置如下。配置完成后,单击“试运行”,并在弹出窗口中单击“执行”,如果运行通过单击“保存”。 图46 总车费(付款方式) 总车费(费率代码):基于费率代码维度统计总车费 在技术指标页面,进入“衍生指标”标签页,然后单击“新建”按钮,在新建衍生指标页面,配置如下。配置完成后,单击“试运行”,并在弹出窗口中单击“执行”,如果运行通过单击“保存”。 图47 总车费(费率代码) 截止当日_总车费(供应商,行程订单.下车时间):基于供应商维度统计总车费 在技术指标页面,进入“衍生指标”标签页,然后单击“新建”按钮,在新建衍生指标页面,配置如下。配置完成后,单击“试运行”,并在弹出窗口中单击“执行”,如果运行通过单击“保存”。 图48 总车费(供应商) 返回技术指标页面的“衍生指标”标签页后,勾选建好的3个衍生指标,单击“发布”,在弹出框中选择审核人,单击“确认提交”,等待审核人员审核通过后,事实表发布成功。如果当前账号具备审核人权限,也可以勾选“自助审批”,直接提交即可以审核通过。
  • 新建数据标准并发布 在本示例中,您需要新建如表7所示的3个数据标准: 表7 数据标准 目录 *标准名称 *标准编码(自定义) *数据类型 数据长度 引用码表 *码表字段 描述 付款方式 付款方式 payment_type 长整型(BIGINT) 无 付款方式 付款方式编码 无 供应商 供应商 vendor 长整型(BIGINT) 无 供应商 供应商id 无 费率 费率代码 rate_code 长整型(BIGINT) 无 费率代码 费率id 无 在数据架构控制台,单击左侧导航树中的“数据标准”,进入数据标准页面。 首次进入“数据标准”页面,需要定制模板,定制的模板后续可以在配置中心进行更改。本示例需要额外勾选“引用码表”,如图所示。 图16 新建数据标准目录 请参考以下步骤,分别新建3个数据标准的目录:付款方式、供应商、费率。 在数据标准页面的目录树上方,单击新建目录,然后在弹出框中输入目录名称“付款方式”并选择目录,单击“确定”完成目录的新建。 图17 新建数据标准目录 请参考以下步骤,分别新建3个数据标准:付款方式、供应商、费率。 在数据标准页面的目录树中,选中所需要的目录,然后在右侧页面中单击“新建”。 在新建数据标准页面中,3个数据标准可分别参考如下配置,配置完成后单击“保存”。在本示例中,数据标准模板只选取了几个参数,您可以参考配置中心的“标准模板管理”定制数据标准模板。 图18 数据标准-付款方式 图19 数据标准-供应商 图20 数据标准-费率代码 返回数据标准页面后,在列表中勾选刚才新建的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 图3 主题设计 操作步骤如下: 登录DataArts Studio控制台。找到已创建的DataArts Studio实例,单击实例卡片上的“进入控制台”。 在工作空间概览列表中,找到所需要的工作空间,单击“数据架构”,进入数据架构控制台。 在数据架构控制台,单击左侧菜单栏的“配置中心”。选择“ 主题流程配置”,使用默认的3层层级。 L1-L7表示主题层级,默认3层,最大7层,最少2层,最后一层是业务对象,其他层级名称可编辑修改。配置中心配置的层级数,将在“主题设计”模块生效。 图4 配置主题层级 在数据架构控制台,单击左侧菜单栏的“主题设计”,进入相应页面后,单击“新建”创建L1层主题,即主题域分组。 图5 新建L1层主题 在弹出窗口中,按图5所示填写参数,然后单击“确定”完成主题域分组的创建。 主题域分组创建完成后,您需要勾选主题域分组,并单击“发布”,发布主题域分组。在弹出的“批量发布”对话框中选择审核人,再单击“确认提交”,等待审核人员审核通过后,主题域分组发布成功。如果当前账号具备审核人权限,也可以勾选“自助审批”,直接提交即可以审核通过。 图6 发布主题域分组 在L1层主题“城市交通”下,依次新建4个L2层主题,即主题域:行程记录、集团、时空、公共维度。 以主题域“行程记录”为例,新建主题域的步骤如下,其他主题域也请参照以下步骤进行添加: 选中已创建的L1层主题“城市交通”。单击右键,选择“新建”。或者单击右侧的“新建”按钮。 图7 创建L2层主题 在弹出窗口中,“名称”和“编码”请参照表2中的“主题域名称”和“主题域编码”进行填写,其他参数可根据实际情况进行填写,配置完成后单击“确定”完成主题域的新建。 主题域创建完成后,您需要勾选主题域,并单击“发布”,发布主题域。在弹出的“批量发布”对话框中选择审核人,再单击“确认提交”,等待审核人员审核通过后,主题域发布成功。如果当前账号具备审核人权限,也可以勾选“自助审批”,直接提交即可以审核通过。 图8 发布主题域 新建业务对象。 在主题域“行程记录”下,新建4个业务对象:原始记录、标准记录、行程事实、记录统计。 在主题域“集团”下,新建1个业务对象:供应商。 在主题域“时空”下,新建1个业务对象:时间。 在主题域“公共维度”下,新建1个业务对象:公共维度。 以在主题域“行程记录”下新建业务对象“原始记录”为例,新建业务对象的步骤如下,其他业务对象也请参照以下步骤进行添加: 选中已创建的L2层主题“行程记录”。单击右键,选择“新建”。或者单击右侧的“新建”按钮。 在弹出窗口中,“名称”和“编码”请参照表2中的“业务对象名称”和“业务对象编码”进行填写,其他参数可根据实际情况进行填写,配置完成后单击“确定”完成业务对象新建。 业务对象创建完成后,您需要勾选业务对象,并单击“发布”,发布业务对象。在弹出的“批量发布”对话框中选择审核人,再单击“确认提交”,等待审核人员审核通过后,业务对象发布成功。如果当前账号具备审核人权限,也可以勾选“自助审批”,直接提交即可以审核通过。 图9 发布业务对象
  • 添加审核人 在数据架构中,数据建模流程中的步骤都需要经过审批,因此,需要先添加审核人。DAYU Administrator角色或该工作空间管理员,具备对应的添加审核人的权限。 在DataArts Studio控制台首页,选择对应工作空间的“数据架构”模块,进入数据架构页面。 单击左侧导航树中的“配置中心”,进入相应页面后,在“审核人管理”页签,单击“添加”按钮。 选择审核人(工作空间管理员、开发者、自定义角色审批),输入正确的电子邮箱和手机号,单击“确定”完成审核人添加。 您也可以添加自己当前账号为审核人,在后续提交审批的相关操作中,支持进行“自助审批”。根据需要,可以添加多个审核人。 图1 添加审核人
  • DWS目的端数据源约束 类别 说明 适用版本 8.1.3、8.2.0及以上版本(除DWS 3.0)。 权限要求 表权限:账号需要对目标表有INSERT、SELECT、UPDATE、DELETE、CONNECT、CREATE。 数据库限制 数据库中的对象名需要满足约束:长度不超过63个字符,以字母或下划线开头,中间字符可以是字母、数字、下划线、$。 使用限制 通用: 实时同步过程中,不支持IP、端口、账号、密码修改。 不支持同步到DWS无主键表。 不支持并发同步DWS列存表,会有分布式锁,并发更新时可能导致等锁、死锁,建议使用DWS行存或行列混存表,详情请参考DWS官方资料。 全量同步阶段: 任务启动和全量数据同步阶段,请不要在源数据库执行DDL操作,否则可能导致任务异常。 增量同步阶段: 增量同步过程中,不支持指定位置加列的DDL操作(例如ALTER TABLE ddl_test ADD COLUMN c2 AFTER/FIRST c1;),Migration会删除AFTER/FIRST属性,可能会导致列顺序不一致。 增量同步过程中,执行不幂等的DDL可能导致数据不一致(例如ALTER TABLE ddl_test ADD COLUMN c3 timestamp default now();),Migration会因数据库函数执行结果不幂等导致最终数据不一致。 增量同步过程中,库级同步不支持Online DDL,表级同步目前只支持某些云DMS产生的Online DDL。 增量同步过程中,支持同步的DDL类型有新建表、删除表、新增列、删除列、重命名表、重命名列、修改列类型、清空表,用户可以根据自身需求选择需要同步的DDL类型。 分库分表场景下,执行重命名列操作,必须停业务操作,不然会有数据不一致的风险。 分库分表场景下,推荐只同步新增列DDL,其他的DDL同步可能会因为目标表被修改而导致任务失败或数据不一致。 分库分表场景下,执行新增列时,需保证每张表加列的类型一致,否则有可能导致任务失败。 新增和修改表名、列名时不能超出63字符,否则任务会失败。 增量阶段,源数据库执行CHANGE COLUMN修改列信息,如果该列在目标DWS数据库中为分布列,则该语句会可能导致异常,因为DWS不支持修改分布列。 其他限制 支持目标数据库中的表比源数据库多列场景,但是需要避免以下场景可能导致的任务失败。 目标数据库多的列要求非空且没有默认值,源数据库insert数据,同步到目标数据库后多的列为null,不符合目标数据库要求。 目标数据库多的列设置固定默认值,且有唯一约束。源数据库insert多条数据后,同步到目标数据库后多的列为固定默认值,不符合目标数据库要求。 Migration自动建表时,源库中char、varchar、nvarchar、enum、set字符类型长度在目标库会按照字节长自动扩大(因为DWS目标库为字节长)。 全量同步timestamp类型时,默认值中的on update current_timestamp语法将不会同步到目标库 GaussDB (DWS)中。 重命名表仅支持rename后库表在同步范围中的DDL操作(例如:RENAME TABLE A TO B,B需要在同步范围内)。 不建议在分库分表同步场景下的进行rename操作,可能会导致任务失败或数据不一致。
  • Hudi目的端数据源约束 类别 说明 适用版本 MRS集群(3.2.0-LTS.x、3.5.x) Hudi版本(0.11.0) 权限要求 MRS用户需要拥有Hadoop和Hive组件的读写权限,建议参照下图所示角色及用户组配置MRS用户。 图1 MRS Hudi最小化权限 具体MRS集群角色权限管理请参考《MRS集群用户权限模型》。 数据库限制 Hudi的库名、表名、字段名仅支持数字、字母和下划线,且字段名必须以字母或下划线开头,建议尽量使用常规字符避免任务失败。 使用限制 通用: 实时同步过程中,不支持对MRS账号、密码修改。 实时同步过程中,对MRS Hadoop组件/角色做停止、重启等变更操作时Hadoop组件可能出现短暂不可用,从而导致实时同步任务异常。 在添加Hudi的配置参数时需要确保其为Flink on Hudi支持参数,否则可能导致任务失败。 部分Spark on Hudi参数在Flink on Hudi场景不适用或参数名不一致。 对于版本低于3.2.0-LTS1.5的MRS集群的Hudi MOR表,使用实时同步任务(Flink)增量同步数据后,不支持直接使用 CDM 或Spark SQL写入数据,需要先进行Compaction后方可写入。 建表: 请尽量避免对Hudi表的分区字段做Update,否则软删除场景会出现不同分区下主键重复的数据。请选择字段值相对稳定的列作为Hudi分区字段。 实时同步任务默认Hudi表中已存在三个审计字段:cdc_last_update_date(timestamp类型)、logical_is_deleted(boolean类型)、_hoodie_event_time(string类型),客户手动建表时需要添加三个审计字段,否则会导致任务异常。 手动创建Hudi表时如果字段名中存在大写字母,请确保该字段与源端表对应字段同名且大小写一致,否则会导致作业异常或数据迁移到目的端为null。 实时同步作业自动建表时会统一将Hudi表字段名建为小写。 作业稳定性: BLOOM索引的Hudi表存在内存开销比较大的情况,作业稳定性不足,请尽量使用BUCKET索引建表。 实时Compaction内存开销比较大,作业稳定性不足,请尽量使用离线Compaction。 Changelog表: Hudi开启changelog时,如果出现丢数,在通过Spark/Flink作业补数后,下游的Flink作业也需要做重启,否则可能出现changelog丢失,Flink状态不正确的问题。 当前没有方法对Hudi changelog表做到operation级(-U、+U、+I、-D数据)的补数,对changelog表的补数只能修复Spark查询时的数据一致性,Flink流读的数据一致性无法修复。 DDL同步: 不支持指定位置加列的DDL操作(例如ALTER TABLE ddl_test ADD COLUMN c2 AFTER/FIRST c1;),Migration会删除AFTER/FIRST属性,可能会导致列顺序不一致。 执行不幂等的DDL可能导致数据不一致(例如ALTER TABLE ddl_test ADD COLUMN c3 timestamp default now();),实时同步任务会因数据库函数执行结果不幂等导致最终数据不一致。 可识别的DDL类型有新建表、删除表、新增列、删除列、重命名表、重命名列、修改列类型、清空表,当前仅支持同步新增列操作到目的端Hudi,其余DDL可配置成忽略/异常。 分库分表场景下,执行新增列时,需保证每张表加列的类型一致,否则有可能导致任务失败。 源端出现修改列类型、删除列、重命名列时,需要及时停止实时同步任务,通过Spark SQL完成Hudi表的DDL变更,否则会导致作业失败或数据不一致问题。 新增列名时不能超出256字符,否则任务会失败。
  • Oracle源端数据源约束 类别 说明 适用版本 10、11、12、19版本。 权限要求 Oracle 库需要开启归档日志,同时需表查询权限和日志解析权限,开通对应权限详情请参考Oracle数据源如何开通归档日志、查询权限和日志解析权限?。 同步对象范围 支持同步的DML:包括INSERT、UPDATE、DELETE。 支持同步的DDL:新增列。 仅支持同步主键表。 不支持视图、外键、存储过程、触发器、函数、事件、虚拟列、唯一约束、唯一索引、外键索引、Check约束的同步。 自动建表支持同步表结构、普通索引、约束(主键、空、非空)、注释。 数据库限制 源端数据库中的库名、表名、字段名不能包含:.-以及非ASCII字符,建议尽量使用常规字符避免任务失败。 使用限制 驱动包安装: 通用: 实时同步过程中,不支持IP、端口、账号、密码修改。 Oracle归档日志建议保留3天以上,否则可能因无法获取日志导致任务失败,特殊情况可能导致数据不一致或者丢失。 禁止对Oracle源库做resetlogs操作,否则会导致数据无法同步且任务无法恢复。 不支持修改源数据库Oracle用户名(SCHEMA名),包括11.2.0.2之前版本通过修改USER$字典表方式及11.2.0.2之后通过ALTER USER username RENAME TO new_username修改SCHEMA名称的场景。 Oracle为源端时,暂不支持迁移CLOB、NCLOB和BLOB类型。 Oracle为源端时,暂不支持Oracle RAC集群。 Oracle为源端时,支持连接单实例的oracle备库,不支持RAC集群备库,备库读取时只支持读取archive log,不支持读取standby log。连接备库时建议oracle 设置定时归档,减少数据同步时延。 网络带宽建议大于100M/s。 全量同步阶段: 任务启动和全量数据同步阶段,请不要在源数据库执行DDL操作,否则可能导致任务异常。 增量同步阶段: 支持DML:包括INSERT、UPDATE、DELETE。 支持的DDL:新增列。 不支持混合分区表。混合分区表中的外部分区数据变更不产生DML日志,增量数据同步时无法获取变更信息,会存在数据不一致的风险。 表名和列名长度限制为30个字符。Oracle日志读取采用Oracle logminer,logminer限制了表名和列名在30个字符以内,详情请参见LogMiner分析日志相关介绍。 增量启动时,选择时间位点启动,请确保oracle数据库时区和数据库所在主机时区一致,才能保证增量位点的准确性。 增量同步不支持Oracle上的分布式事务(XA事务)和PARALLEL DML。 增量阶段不支持Oracle字符集扩展的字符,标准字符集无法解析Oracle自定义扩展字符。 增量同步不支持同步或迁移触发器,需要关闭目标Oracle的触发器。 增量同步不支持同步或迁移存在外键约束的数据。 增量同步不支持同步或迁移使用Oracle Data Pump向源库导入的数据。 其他限制 支持目标数据库中的表比源数据库多列场景,但是需要避免以下场景可能导致的任务失败。 目标数据库多的列若是非空且没有默认值,源数据库insert数据,同步到目标数据库后多的列为null,不符合目标数据库要求。 目标数据库多的列设置固定默认值,且有唯一约束。源数据库insert多条数据后,同步到目标数据库后多的列为固定默认值,不符合目标数据库要求。 当使用PDB数据库同步时,由于Oracle LogMiner组件的限制,增量同步时必须打开全部PDB。 Oracle为源端时全量+增量或增量作业,如果需要同步PDB库中的表,Oracle连接中需要填写CDB库的用户名和密码,不能为PDB用户名和密码,因为Oracle日志统一在存储在CDB库中,同时Oracle logminer只能运行在CDB库中。 全量和增量同步不支持隐藏列(UNUESD, INVISIBIE)。 DDL删除表时需执行“drop table test_table_name purage命令”。 Oracle数据库默认删除表是一个高危操作,执行"drop table test_table_name"命令时, Oracle会将该命令转换为“rename table test_table_name as xxxxx”, 即将该表重新命名为Oracle临时表空间中的一张待处理表,原表实际并未删除,migration默认直接忽略该语法;Oracle删除表语句"drop table test_table_name purage"会彻底删除表,migration会自动识别删除表并下发给下游。 不支持无主键表。 不支持DCL操作。 不支持同步或迁移连续的RENAME TABLE操作,否则可能会导致任务失败。 不支持同步或迁移全局临时表(任务正常运行)。 不支持同步或迁移含有默认值函数的表,否则会导致数据不一致。 不支持同步或迁移默认值中含有表达式的表。 不支持同步或迁移外部表。 不支持同步或迁移计算列、加密列。 不支持同步或迁移虚拟私有数据库(Virtual Private Database, VPD)。 不支持同步或迁移dbms_scheduler和dbms_job创建的job。 不支持同步或迁移Schema名称的变更操作。 不支持同步或迁移嵌套表,否则会导致任务报错。 不支持同步或迁移物化视图(Materialized View)。 不支持同步或迁移包含关键字或者特殊字符的属性名的DDL操作。 不支持ROWID变更操作(例如split partition、table move、table shrink、move partition key),否则可能会导致数据不一致或任务失败。 不支持Secure Sockets Layer(SSL)加密传输模式。 不支持Oracle Label Security模式。
  • SQLServer源端数据源约束 类别 说明 适用版本 企业版2016、2017、2019、2022版本,标准版2016 SP2及以上版本、2017、2019、2022版本。 权限要求 需要具备sysadmin权限,或者view server state权限以及待同步数据库的db_datareader或db_owner权限。 启动数据库及表的CDC能力。 启用数据库CDC。 USE YourDatabaseName; EXEC sys.sp_cdc_enable_db; -- 查看数据库是否启动CDC SELECT is_cdc_enabled, name FROM sys.databases WHERE name = 'YourDatabaseName' 启用表CDC。 EXEC sys.sp_cdc_enable_table @source_schema = N'dbo', -- Schema @source_name = N'YourTable',-- 表名 @role_name = NULL,-- 可选,CDC访问角色名称 @supports_net_changes = 0; -- 查看表是否启动CDC SELECT name,is_tracked_by_cdc FROM sys.tables WHERE name = 'YourTable'; 源端SQLServer需要给管理中心数据连接中配置的用户赋予以下全部权限。 给用户添加数据库CONNECT, VIEW DATABASE STATE 权限。 USE YourDatabaseName; GRANT CONNECT, VIEW DATABASE STATE TO [YourUserName]; 给用户添加CDC schema的SELECT 权限。 USE YourDatabaseName; GRANT SELECT ON SCHEMA::[cdc] TO [YourUserName]; 给用户添加表的SELECT权限。 USE YourDatabaseName; GRANT SELECT ON OBJECT::[YourSchema].[YourTable] TO [YourUserName]; 同步对象范围 支持同步DML:包括INSERT、UPDATE、DELETE。 不支持同步DDL。 仅支持同步主键表。 不支持同步源数据库中开启TDE(Transparent Data Encryption)加密的数据库。 不支持列加密。 不支持同步自增属性列。 自动建表支持同步表结构、普通索引、约束(主键、空、非空)、注释。 数据库限制 源数据库如果开启客户端配置中的“强制协议加密(Force Protocol Encrypton)”,必须同时开启“信任服务器证书(trust server certificate)”。 使用限制 通用:实时同步过程中,不支持IP、端口、账号、密码修改。 全量同步阶段:任务启动和全量数据同步阶段,请不要在源数据库执行DDL操作,否则可能导致任务异常。 增量同步阶段: 支持DML:包括INSERT、UPDATE、DELETE。 不支持DDL操作,源数据库进行的DDL操作不会同步到目标数据库。 不支持大数据类型IMAGE、TEXT、NTEXT的删除操作。 同步过程不支持修改作业中的表。 其他限制 支持目标数据库中的表比源数据库少列场景;也支持目标数据库中的表比源数据库多列场景,但是需要避免以下场景可能导致的任务失败。 目标数据库多的列要求非空且没有默认值,源数据库insert数据,同步到目标数据库后多的列为null,不符合目标数据库要求。 目标数据库多的列设置固定默认值,且有唯一约束。源数据库insert多条数据后,同步到目标数据库后多的列为固定默认值,不符合目标数据库要求。 不支持源数据库主备切换,源数据库主备切换会导致同步任务失败。 不支持源数据库Microsoft SQL Server为TLS 1.0、TLS 1.1协议的同步,如果需要同步,建议源库升级到TLS 1.2及以上版本。
  • 功能 DLI Flink作业专为实时数据流处理设计,适用于低时延、需要快速响应的场景。适用于实时监控、在线分析等场景。 DLI Flink Job节点用于创建和执行一个DLI Flink作业,或者查询DLI作业是否正在运行,实现实时流式大数据分析。 DLI Flink流式作业提交到DLI之后,若处于运行中的状态,则认为节点执行成功。若作业配置了周期调度,则会周期检查该Flink作业是否依然处于运行中的状态,如果处于运行状态,则认为节点执行成功。
  • 操作场景 假设MySQL上有一张表trip_data,保存了自行车骑行记录,里面有起始时间、结束时间,起始站点、结束站点、骑手ID等信息,trip_data表字段定义如图1所示。 图1 MySQL表字段 使用CDM将MySQL中的表trip_data导入到MRS Hive分区表,流程如下: 在MRS Hive上创建Hive分区表 创建CDM集群并绑定EIP 创建MySQL连接 创建Hive连接 创建迁移作业
  • 在MRS Hive上创建Hive分区表 在MRS的Hive上使用下面SQL语句创建一张Hive分区表,表名与MySQL上的表trip_data一致,且Hive表比MySQL表多建三个字段y、ym、ymd,作为Hive的分区字段。SQL语句如下: 1 create table trip_data(TripID int,Duration int,StartDate timestamp,StartStation varchar(64),StartTerminal int,EndDate timestamp,EndStation varchar(64),EndTerminal int,Bike int,SubscriberType varchar(32),ZipCodev varchar(10))partitioned by (y int,ym int,ymd int); Hive表trip_data有三个分区字段:骑行起始时间的年、骑行起始时间的年月、骑行起始时间的年月日,例如一条骑行记录的起始时间为2018/5/11 9:40,那么这条记录会保存在分区trip_data/2018/201805/20180511下面。对trip_data进行按时间维度统计汇总时,只需要对局部数据扫描,大大提升性能。
  • 创建CDM集群并绑定EIP 如果是独立CDM服务,参考创建集群创建CDM集群;如果是作为DataArts Studio服务CDM组件使用,参考创建集群创建CDM集群。 关键配置如下: CDM集群的规格,按待迁移的数据量选择,一般选择cdm.medium即可,满足大部分迁移场景。 CDM集群所在VPC、子网、安全组,选择与MRS集群所在的网络一致。 CDM集群创建完成后,选择集群操作列的“绑定弹性IP”,CDM通过EIP访问MySQL。 图2 集群列表 如果用户对本地数据源的访问通道做了SSL加密,则CDM无法通过弹性IP连接数据源。
  • 操作场景 假设MySQL上有一张表trip_data,保存了自行车骑行记录,里面有起始时间、结束时间,起始站点、结束站点、骑手ID等信息,trip_data表字段定义如图1所示。 图1 MySQL表字段 使用CDM将MySQL中的表trip_data导入到MRS Hive分区表,流程如下: 在MRS Hive上创建Hive分区表 创建CDM集群并绑定EIP 创建MySQL连接 创建Hive连接 创建迁移作业
  • 在MRS Hive上创建Hive分区表 在MRS的Hive上使用下面SQL语句创建一张Hive分区表,表名与MySQL上的表trip_data一致,且Hive表比MySQL表多建三个字段y、ym、ymd,作为Hive的分区字段。SQL语句如下: 1 create table trip_data(TripID int,Duration int,StartDate timestamp,StartStation varchar(64),StartTerminal int,EndDate timestamp,EndStation varchar(64),EndTerminal int,Bike int,SubscriberType varchar(32),ZipCodev varchar(10))partitioned by (y int,ym int,ymd int); Hive表trip_data有三个分区字段:骑行起始时间的年、骑行起始时间的年月、骑行起始时间的年月日,例如一条骑行记录的起始时间为2018/5/11 9:40,那么这条记录会保存在分区trip_data/2018/201805/20180511下面。对trip_data按时间维度统计汇总时,只需要对局部数据扫描,从而提升性能。
  • 配置OBS源端参数 作业中源连接为OBS连接时,源端作业参数如表1所示。 高级属性里的参数为可选参数,默认隐藏,单击界面上的“显示高级属性”后显示。 表1 源端为OBS时的作业参数 参数类型 参数名 说明 取值样例 基本参数 桶名 待迁移数据所在的桶名。 BUCKET_2 源目录或文件 “列表文件”选择为“否”时,才有该参数。 待迁移数据的目录或单个文件路径。文件路径支持输入多个文件(最多50个),默认以“|”分隔,也可以自定义文件分隔符,具体请参见文件列表迁移。 待迁移数据的目录,将迁移目录下的所有文件(包括所有嵌套子目录及其子文件)。 该参数支持配置为时间宏变量,且一个路径名中可以有多个宏定义变量。使用时间宏变量和定时任务配合,可以实现定期同步新增数据,详细说明请参见使用时间宏变量完成增量同步。 说明: 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 FROM/example.csv 文件格式 指CDM以哪种格式解析数据,可选择以下格式: CS V格式:以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个文件失败的位置重新传。 文件迁移时,单个任务支持千万数量的文件,如果待迁移目录下文件过多,建议拆分到不同目录并创建多个任务。 父主题: 配置CDM作业源端参数
  • 创建CDM集群并绑定EIP 如果是独立CDM服务,参考创建集群创建CDM集群;如果是作为DataArts Studio服务CDM组件使用,参考创建集群创建CDM集群。 关键配置如下: CDM集群的规格,按待迁移的数据量选择,一般选择cdm.medium即可,满足大部分迁移场景。 CDM集群的VPC必须和 云搜索服务 集群所在VPC一致,且推荐子网、安全组也与 云搜索 服务一致。 如果安全控制原因不能使用相同子网和安全组,那么需要确保安全组规则能允许CDM访问云搜索服务集群。 CDM集群创建完成后,在集群管理界面选择“绑定弹性IP”,CDM通过EIP访问Oracle数据源。 如果用户对本地数据源的访问通道做了SSL加密,则CDM无法通过弹性IP连接数据源。
  • 创建CDM集群 如果是独立CDM服务,参考创建集群创建CDM集群;如果是作为DataArts Studio服务CDM组件使用,参考创建集群创建CDM集群。 该场景下,如果CDM集群只是用于迁移OBS数据到DLI,不需要迁移其他数据源,则CDM集群所在的VPC、子网、安全组选择任一个即可,没有要求,CDM通过内网访问DLI和OBS。主要是选择CDM集群的规格,按待迁移的数据量选择,一般选择cdm.medium即可,满足大部分迁移场景。
  • 配置HDFS源端参数 作业中源连接为HDFS连接时,即从MRS HDFS、 FusionInsight HDFS、Apache HDFS导出数据时,源端作业参数如表1所示。 表1 HDFS作为源端时的作业参数 参数类型 参数名 说明 取值样例 基本参数 源连接名称 由用户下拉选择即可。 hdfs_to_cdm 源目录或文件 “列表文件”选择为“否”时,才有该参数。 待迁移数据的目录或单个文件路径。 待迁移数据的目录,将迁移目录下的所有文件(包括所有嵌套子目录及其子文件)。 该参数支持配置为时间宏变量,且一个路径名中可以有多个宏定义变量。使用时间宏变量和定时任务配合,可以实现定期同步新增数据,详细说明请参见使用时间宏变量完成增量同步。 说明: 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 /user/cdm/ 文件格式 传输数据时所用的文件格式,可选择以下文件格式: CSV格式:以CSV格式解析源文件,用于迁移文件到数据表的场景。 二进制格式:选择“二进制格式”时不解析文件内容直接传输,不要求文件格式必须为二进制。适用于文件到文件的原样复制。 Parquet格式:以Parquet格式解析源文件,用于HDFS数据导到表的场景。 CSV格式 列表文件 当“文件格式”选择为“二进制格式”时,才有该参数。 打开列表文件功能时,支持读取OBS桶中文件(如txt文件)的内容作为待迁移文件的列表。该文件中的内容应为待迁移文件的绝对路径(不支持目录),文件内容示例如下: /mrs/job-properties/application_1634891604621_0014/job.properties /mrs/job-properties/application_1634891604621_0029/job.properties 是 列表文件源连接 当“列表文件”选择为“是”时,才有该参数。可选择列表文件所在的OBS连接。 OBS_test_link 列表文件OBS桶 当“列表文件”选择为“是”时,才有该参数。该参数表示列表文件所在的OBS桶名。 01 列表文件或目录 当“列表文件”选择为“是”时,才有该参数。该参数表示列表文件所在的OBS桶中的绝对路径或目录。 /0521/Lists.txt 高级属性 换行符 文件中的换行符,默认自动识别“\n”、“\r”或“\r\n”。当“文件格式”选择为“CSV格式”时,才有该参数。 \n 字段分隔符 文件中的字段分隔符,使用Tab键作为分隔符请输入“\t”。当“文件格式”选择为“CSV格式”时,才有该参数。 , 首行为标题行 “文件格式”选择“CSV格式”时才有该参数。在迁移CSV文件到表时,CDM默认是全部写入,如果该参数选择“是”,CDM会将CSV文件的前N行数据作为标题行,不写入目的端的表。 否 编码类型 文件编码类型,例如:“UTF-8”或“GBK”。只有文本文件可以设置编码类型,当“文件格式”选择为“二进制格式”时,该参数值无效。 GBK 启动作业标识文件 选择是否开启作业标识文件的功能。当源端路径下存在启动作业的标识文件时才启动作业,否则会挂起等待一段时间,等待时长在下方“等待时间”中配置。 ok.txt 过滤类型 满足过滤条件的路径或文件会被传输,该参数有“无”、“通配符”和“正则表达式”三种选择。具体使用方法可参见文件增量迁移。 - 目录过滤器 “过滤类型”选择“通配符”、“正则表达式”时,用通配符过滤目录,符合过滤器规则的目录,允许进行迁移。支持配置多个路径,中间使用“,”分隔。 说明: 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 *input 文件过滤器 “过滤类型”选择“通配符”、“正则表达式”时,用通配符过滤目录下的文件,符合过滤器规则的文件,允许进行迁移。支持配置多个文件,中间使用“,”分隔。 说明: 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 *.csv 时间过滤 选择“是”时,可以根据文件的修改时间选择性地传输文件。 是 起始时间 “过滤类型”选择“时间过滤器”时,可以指定一个时间值,当文件的修改时间大于等于该时间才会被传输,输入的时间格式需为“yyyy-MM-dd HH:mm:ss”。 该参数支持配置为时间宏变量,例如${timestamp(dateformat(yyyy-MM-dd HH:mm:ss,-90,DAY))}表示:只迁移最近90天内的文件。 说明: 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 2019-07-01 00:00:00 终止时间 “过滤类型”选择“时间过滤器”时,可以指定一个时间值,当文件的修改时间小于该时间才会被传输,输入的时间格式需为“yyyy-MM-dd HH:mm:ss”。 该参数支持配置为时间宏变量,例如${timestamp(dateformat(yyyy-MM-dd HH:mm:ss))}表示:只迁移修改时间为当前时间以前的文件。 说明: 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 2019-07-30 00:00:00 创建快照 如果选择“是”,CDM读取HDFS系统上的文件时,会先对待迁移的源目录创建快照(不允许对单个文件创建快照),然后CDM迁移快照中的数据。 需要HDFS系统的管理员权限才可以创建快照,CDM作业完成后,快照会被删除。 否 加密方式 “文件格式”选择“二进制格式”时,该参数才显示。 如果源端数据是被加密过的,则CDM支持解密后再导出。这里选择是否对源端数据解密,以及选择解密算法: 无:不解密,直接导出。 AES-256-GCM:使用长度为256byte的AES对称加密算法,目前加密算法只支持AES-256-GCM(NoPadding)。该参数在目的端为加密,在源端为解密。 详细使用方法请参见迁移文件时加解密。 AES-256-GCM 数据加密 密钥 “加密方式”选择“AES-256-GCM”时显示该参数,密钥由长度64位的十六进制数组成,且必须与加密时配置的“数据加密密钥”一致。如果不一致系统不会报异常,只是解密出来的数据会错误。 DD0AE00DFECD78BF051BCFDA25BD4E320DB0A7AC75A1F3FC3D3C56A457DCDC1B 初始化向量 “加密方式”选择“AES-256-GCM”时显示该参数,初始化向量由长度32的十六进制数组成,且必须与加密时配置的“初始化向量”一致。如果不一致系统不会报异常,只是解密出来的数据会错误。 5C91687BA886EDCD12ACBC3FF19A3C3F MD5文件名后缀 “文件格式”选择“二进制格式”时,该参数才显示。 校验CDM抽取的文件,是否与源文件一致,详细请参见MD5校验文件一致性。 .md5 父主题: 配置CDM作业源端参数
  • 创建CDM集群 如果是独立CDM服务,参考创建集群创建CDM集群;如果是作为DataArts Studio服务CDM组件使用,参考创建集群创建CDM集群。 关键配置如下: CDM集群的规格,按待迁移的数据量选择,一般选择cdm.medium即可,满足大部分迁移场景。 CDM集群的VPC必须和云搜索服务集群所在VPC一致,且推荐子网、安全组也与云搜索服务一致。 如果安全控制原因不能使用相同子网和安全组,那么需要确保安全组规则能允许CDM访问云搜索服务集群。
  • 配置FTP/SFTP源端参数 作业中源连接为FTP/SFTP连接时,源端作业参数如表1所示。 高级属性里的参数为可选参数,默认隐藏,单击界面上的“显示高级属性”后显示。 表1 FTP/SFTP作为源端时的作业参数 参数类型 参数名 说明 取值样例 基本参数 源目录或文件 待迁移数据的目录或单个文件路径。文件路径支持输入多个文件(最多50个),默认以“|”分隔,也可以自定义文件分隔符,具体请参见文件列表迁移。 待迁移数据的目录,将迁移目录下的所有文件(包括所有嵌套子目录及其子文件)。 该参数支持配置为时间宏变量,且一个路径名中可以有多个宏定义变量。使用时间宏变量和定时任务配合,可以实现定期同步新增数据,详细说明请参见使用时间宏变量完成增量同步。 说明: 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 /ftp/a.csv|/ftp/b.txt 文件格式 指CDM以哪种格式解析数据,可选择以下格式: CSV格式:以CSV格式解析源文件,用于迁移文件到数据表的场景。 二进制格式:选择“二进制格式”时不解析文件内容直接传输,不要求文件格式必须为二进制。适用于文件到文件的原样复制。 JSON格式:以JSON格式解析源文件,一般都是用于迁移文件到数据表的场景。 说明: 当目的端为OBS数据源时,仅支持配置二进制格式。 CSV格式 JSON类型 当“文件格式”选择为“JSON格式”时,才有该参数。JSON文件中存储的JSON对象的类型,可以选择“JSON对象”或“JSON数组”。 JSON对象 记录节点 当“文件格式”选择为“JSON格式”并且“JSON类型”为“JSON对象”时,才有该参数。对该JSON节点下的数据进行解析,如果该节点对应的数据为JSON数组,那么系统会以同一模式从该数组中提取数据。多层嵌套的JSON节点以字符“.”分隔。 data.list 高级属性 使用rfc4180解析器 当“文件格式”选择为“CSV格式”时,才有该参数。是否使用rfc4180解析器解析CSV文件。 否 换行符 文件中的换行符,默认自动识别“\n”、“\r”或“\r\n”。当“文件格式”选择为“CSV格式”时,才有该参数。 \n 字段分隔符 文件中的字段分隔符,使用Tab键作为分隔符请输入“\t”。当“文件格式”选择为“CSV格式”时,才有该参数。 , 使用包围符 选择“是”时,包围符内的字段分隔符会被视为字符串值的一部分,目前CDM默认的包围符为:"。 否 使用转义符 选择“是”时,CSV数据行中的\作为转义符使用。 选择“否”时,CSV中的\作为数据不会进行转义。CSV只支持\作为转义符。 是 使用正则表达式分隔字段 选择是否使用正则表达式分隔字段,当选择“是”时,“字段分隔符”参数无效。当“文件格式”选择为“CSV格式”时,才有该参数。 是 正则表达式 当“使用正则表达式分隔字段”选择为“是”时,才有该参数。 分隔字段的正则表达式,正则表达式写法请参考正则表达式分隔半结构化文本。 ^(\d.*\d) (\w*) \[(.*)\] ([\w\.]*) (\w.*).* 首行为标题行 “文件格式”选择“CSV格式”时才有该参数。在迁移CSV文件到表时,CDM默认是全部写入,如果该参数选择“是”,CDM会将CSV文件的前N行数据作为标题行,不写入目的端的表。 是 编码类型 文件编码类型,例如:“UTF-8”或“GBK”。只有文本文件可以设置编码类型,当“文件格式”选择为“二进制格式”时,该参数值无效。 UTF-8 压缩格式 选择对应压缩格式的源文件: 无:表示传输所有格式的文件。 GZIP:表示只传输GZIP格式的文件。 ZIP:表示只传输ZIP格式的文件。 TAR.GZ:表示只传输TAR.GZ格式的文件。 无 压缩文件后缀 压缩格式非无时,显示该参数。 该参数需要解压缩的文件后缀名。当一批文件中以该值为后缀时,才会执行解压缩操作,否则保持原样传输。当输入*或为空时,所有文件都会被解压。 * 启动作业标识文件 选择是否开启作业标识文件的功能。当源端路径下存在启动作业的标识文件时才启动作业,否则会挂起等待一段时间,等待时长在下方“等待时间”中配置。 是 文件分隔符 “源目录或文件”参数中如果输入的是多个文件路径,CDM使用这里配置的文件分隔符来区分各个文件,默认为|。 | 标识文件名 选择开启作业标识文件的功能时,需要指定启动作业的标识文件名。指定文件后,只有在源端路径下存在该文件的情况下才会运行任务。该文件本身不会被迁移。 ok.txt 等待时间 选择开启作业标识文件的功能时,如果源路径下不存在启动作业的标识文件,作业挂机等待的时长,当超时后任务会失败。 等待时间设置为0时,当源端路径下不存在标识文件,任务会立即失败。 单位:秒。 10 过滤类型 满足过滤条件的路径或文件会被传输,该参数有“无”、“通配符”和“正则表达式”三种选择。具体使用方法可参见文件增量迁移。 无 目录过滤器 “过滤类型”选择“通配符”和“正则表达式”时,符合过滤器规则的目录,允许进行迁移。支持配置多个路径,中间使用“,”分隔。 说明: 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 *input,*out 文件过滤器 “过滤类型”选择“通配符”和“正则表达式”时,符合过滤器规则的文件,允许进行迁移。支持配置多个文件,中间使用“,”分隔。 说明: 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 *.csv 时间过滤 选择“是”时,可以根据文件的修改时间选择性地传输文件。 是 起始时间 “时间过滤”选择“是”时,可以指定一个时间值,当文件的修改时间大于等于该时间才会被传输,输入的时间格式需为“yyyy-MM-dd HH:mm:ss”。 该参数支持配置为时间宏变量,例如${timestamp(dateformat(yyyy-MM-dd HH:mm:ss,-90,DAY))}表示:只迁移最近90天内的文件。 说明: 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 2019-07-01 00:00:00 终止时间 “时间过滤”选择“是”时,可以指定一个时间值,当文件的修改时间小于该时间才会被传输,输入的时间格式需为“yyyy-MM-dd HH:mm:ss”。 该参数支持配置为时间宏变量,例如${timestamp(dateformat(yyyy-MM-dd HH:mm:ss))}表示:只迁移修改时间为当前时间以前的文件。 说明: 如果配置了时间宏变量,通过DataArts Studio数据开发调度CDM迁移作业时,系统会将时间宏变量替换为“数据开发作业计划启动时间-偏移量”,而不是“CDM作业实际启动时间-偏移量”。 2019-07-30 00:00:00 忽略不存在原路径/文件 如果将其设为“是”,那么作业在源路径不存在的情况下也能成功执行。 否 标识文件类型 选择开启作业标识文件的功能时,该参数才显示。 MARK_DONE:只有在源端路径下存在标识文件的情况下才会执行迁移任务。 MARK_DOING:只有在源端路径下不存在标识文件的情况下才会执行迁移任务。 MARK_DOING 是否跳过空行 “文件格式”选择“CSV格式”时,该参数才显示。 如果某行数据为空,则跳过此行。 否 null值 “文件格式”选择“二进制格式”时,该参数才显示。 由于文本文件中无法用字符串定义null值,此配置项定义将何种字符串标识为null。 否 MD5文件名后缀 “文件格式”选择“二进制格式”时,该参数才显示。 校验CDM抽取的文件,是否与源文件一致,详细请参见MD5校验文件一致性。 .md5 父主题: 配置CDM作业源端参数
  • 计费模式概述 分布式消息服务RocketMQ版提供包年/包月和按需计费两种计费模式,以满足不同场景下的用户需求。 包年/包月:一种预付费模式,即先付费再使用,按照订单的购买周期进行结算。购买周期越长,享受的折扣越大。一般适用于业务需求量长期稳定的成熟业务。 按需计费:一种后付费模式,即先使用再付费,按照RocketMQ实例实际使用时长计费,秒级计费,按小时结算。按需计费模式允许您根据实际业务需求灵活地调整资源使用,无需提前预置资源,从而降低预置过多或不足的风险。一般适用于电商抢购等业务需求量瞬间大幅波动的场景。 表1列出了两种计费模式的区别。 表1 计费模式 计费模式 包年/包月 按需计费 付费方式 预付费 按照订单的购买周期结算。 后付费 按照RocketMQ实例实际使用时长计费。 计费周期 按订单的购买周期计费。 秒级计费,按小时结算。 适用计费项 实例费用、存储空间费用 实例费用、存储空间费用 变更计费模式 支持变更为按需计费模式。 但包年/包月计费模式到期后,按需的计费模式才会生效。 包年/包月变更按需计费时,生效时间分为以下两种: 包年/包月资费模式到期后,按需的资费模式才会生效。 提交变更后,按需的资费模式立即生效。 支持变更为包年/包月计费模式。 变更规格 支持变更实例规格。 支持变更实例规格。 回收站中实例是否计费 开启回收站策略的包年/包月实例,退订后会存入回收站中,此时不收取实例费用,但是会按需收取存储空间费用。 从回收站中恢复的包年/包月实例,计费模式会变为按需计费。 开启回收站策略的按需实例,删除后会存入回收站中,此时不收取实例费用,按需收取存储空间费用。 适用场景 适用于可预估资源使用周期的场景。对于长期使用者,推荐该方式,价格比按需计费模式更优惠。 适用于资源需求波动的场景,可以随时开通,随时删除。 父主题: 计费模式
  • 计费周期 按需计费RocketMQ实例按秒计费,每一个小时整点结算一次费用(以UTC+8时间为准),结算完毕后进入新的计费周期。计费的起点以RocketMQ实例创建成功的时间点为准,终点以实例删除时间为准。 例如,您在8:45:30购买了一个按需计费的RocketMQ实例,然后在8:55:00将其删除,则计费周期为8:00:00 ~ 9:00:00,在8:45:30 ~ 8:55:30间产生费用,该计费周期内的计费时长为600秒。
  • 变更配置后对计费的影响 如果您在购买按需计费实例后变更了实例规格,会产生一个新订单并开始按新规格的价格计费,旧订单自动失效。 如果您在一个小时内变更了实例规格,将会产生多条计费信息。每条计费信息的开始时间和结束时间对应不同规格在该小时内的生效时间。 例如,您在9:00:00购买了一个按需计费实例,实例规格为rocketmq.4u8g.cluster*1,并在9:30:00升配为rocketmq.8u16g.cluster*1,那么在9:00:00 ~ 10:00:00间会产生两条计费信息。 第一条对应9:00:00 ~ 9:30:00,实例规格按照rocketmq.4u8g.cluster*1计费。 第二条对应9:30:00 ~ 10:00:00,实例规格按照rocketmq.8u16g.cluster*1计费。
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全