云服务器内容精选

  • 操作场景 假设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连接数据源。
  • 配置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作业源端参数
  • ClickHouse通过MySQL引擎对接RDS服务 MySQL引擎用于将远程的MySQL服务器中的表映射到ClickHouse中,并允许您对表进行INSERT和SELECT查询,以方便您在ClickHouse与MySQL之间进行数据交换。 MySQL引擎使用语法: CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster] ENGINE = MySQL('host:port', ['database' | database], 'user', 'password') 表1 MySQL数据库引擎参数说明 参数 描述 hostport RDS服务MySQL数据库实例IP地址和端口。 database RDS服务MySQL数据库名。 user RDS服务MySQL数据库用户名。 password RDS服务MySQL数据库用户密码。 MySQL引擎使用示例: 连接到RDS服务的MySQL数据库。详细操作可以参考RDS服务MySQ L实例 连接。 在MySQL数据库上创建表,并插入数据。 使用客户端命令连接ClickHouse。 非安全集群连接命令 ./clickhouse client --host 集群内网地址 --port 9000 --user admin --password password 安全集群连接命令,详细操作请参见ClickHouse安全通道章节。 ./clickhouse client --host 集群内网地址 --port 9440 --user admin --password password --secure --config-file /root/config.xml 集群内网地址:集群详情页面中集群访问地址,这里替换成您自己购买的集群的访问地址。 在ClickHouse中创建MySQL引擎的数据库,创建成功后自动与MySQL服务器交换数据。 CREATE DATABASE mysql_db ENGINE = MySQL('RDS服务MySQL数据库实例IP地址:MySQL数据库实例端口', 'MySQL数据库名', 'MySQL数据库用户名', 'MySQL数据库用户名密码'); 切换到新建的数据库mysql_db,并查询表数据。 USE mysql_db; 在ClickHouse中查询MySQL数据库表数据。 SELECT * FROM mysql_table; ┌─int_id─┬─float─┐ │ 1 │ 2 │ └─────┴──── ┘ 新增插入数据后也可以正常进行查询。 INSERT INTO mysql_table VALUES (3,4); SELECT * FROM mysql_table; ┌─int_id─┬─float─┐ │ 1 │ 2 │ │ 3 │ 4 │ └─────┴──── ┘
  • ClickHouse通过MySQL引擎对接RDS服务 MySQL引擎用于将远程的MySQL服务器中的表映射到ClickHouse中,并允许您对表进行INSERT和SELECT查询,以方便您在ClickHouse与MySQL之间进行数据交换。 MySQL引擎使用语法: CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster] ENGINE = MySQL('host:port', ['database' | database], 'user', 'password') 表1 MySQL数据库引擎参数说明 参数 参数说明 host:port RDS服务MySQL数据库实例IP地址和端口。 database RDS服务MySQL数据库名。 user RDS服务MySQL数据库用户名。 password RDS服务MySQL数据库用户密码,命令中如果携带认证密码信息可能存在安全风险,在执行命令前建议关闭系统的history命令记录功能,避免信息泄露。 MySQL引擎使用示例: 连接到RDS服务的MySQL数据库。详细操作可以参考RDS服务MySQL实例连接。 在MySQL数据库上创建表,并插入数据。 创建表mysql_table: CREATE TABLE `mysql_table` ( `int_id` INT NOT NULL AUTO_INCREMENT, `float` FLOAT NOT NULL, PRIMARY KEY (`int_id`)); 插入表数据: insert into mysql_table (`int_id`, `float`) VALUES (1,2); 登录MRS集群ClickHouse客户端节点。 使用集群客户端连接到ClickHouse服务端,具体请参考ClickHouse客户端使用实践。 在ClickHouse中创建MySQL引擎的数据库,创建成功后自动与MySQL服务器交换数据。 CREATE DATABASE mysql_db ENGINE = MySQL('RDS服务MySQL数据库实例IP地址:MySQL数据库实例端口', 'MySQL数据库名', 'MySQL数据库用户名', 'MySQL数据库用户名密码'); 切换到新建的数据库mysql_db,并查询表数据。 USE mysql_db; 在ClickHouse中查询MySQL数据库表数据。 SELECT * FROM mysql_table; 执行结果如下: ┌─int_id─┬─float─┐ │ 1 │ 2 │ └─────┴──── ┘ 新增插入数据后也可以正常进行查询。 INSERT INTO mysql_table VALUES (3,4); SELECT * FROM mysql_table; 执行结果如下: ┌─int_id─┬─float─┐ │ 1 │ 2 │ │ 3 │ 4 │ └─────┴──── ┘
  • 常见问题 迁移过程出现报错“out of memory”怎么办? 迁移过程中出现报错“out of memory”, 表示迁移虚拟机内存溢出,有如下解决方案: 可能是ECS虚拟机的配置不够,建议升级ECS规格,操作指导请参见变更单台ECS规格。 调整ESM的迁移速度,通过在迁移命令中减小“buffer_count”参数,限制内存中的文档数量。 迁移完成后,为什么源集群和目标集群的索引数据存储量不一致? ESM迁移集群后,两个集群的数据存储量不一致是正常的,这是由Elasticsearch的内部存储机制决定的。Elasticsearch存储是有多个shard,每个shard又有多个segment,由于ESM迁移是把源集群数据写入到目标集群,会导致在目标集群重新生成segment和shard,由于segment和shard都会对数据有膨胀,不同集群的segment的shard不同,数据量也不同,如果需要比较数据一致性,则需要对比文档个数的多少,而不是对比数据大小。
  • 通过ESM迁移集群 访问ESM下载地址,下载“migrator-linux-amd64”软件包。 通过SCP工具将下载的“migrator-linux-amd64”软件包上传到Linux ECS的执行路径下。 在Linux ECS的执行路径下执行命令,将源集群的索引结构和数据迁移到目标集群。 # 索引全量迁移 ./migrator-linux-amd64 -s http://source:9200 -d http://dest:9200 -x index_name -m admin:password -n admin:password --copy_settings --copy_mappings -w 5 -b 10 #索引增量迁移 ./migrator-linux-amd6 -s http://source:9200 -d http://dest:9200 -x index-test -m admin:password -n admin:password -w 5 -b 10 -q "timestamp:[\"2022-01-17 03:41:20\" TO \"2022-01-22 03:41:20\"]" 迁移命令的常用参数说明请参见表2,更多详细参数说明请参见ESM文档。 表2 常用参数说明 选型 示例 说明 -s, --source= http://source:9200 源Elasticsearch集群访问地址。 -d, --dest= http://dest:9200 目标Elasticsearch集群访问地址。 -x, --src_indexes= index_name index1,index2 源集群迁移索引名,支持正则匹配和逗号分隔。 -y, --dest_index= index_name_rename 目标集群索引名,支持单索引名称,如果不配置则和源索引名称相同。 -m, --source_auth= admin:password 访问源Elasticsearch集群的用户名和密码,仅安全集群涉及。 -n, --dest_auth= admin:password 访问目标Elasticsearch集群的用户名和密码,仅安全集群涉及。 -w, --workers= 5 读取源端数据速率控制参数,Bulk读取数据并发线程数。 默认值:1 -b, --bulk_size= 10 读取源端数据速率控制参数,Bulk一次读取数据的数据大小。 默认值:5MB --sliced_scroll_size 4 读取源端数据速率控制参考,Bulk Scroll中sliced的大小。 默认值:1 --copy_settings - 迁移源端索引的settings。 --copy_mappings - 迁移源端索引的mappings。 --buffer_count= - 迁移虚拟机缓存在内存中的文档数量。 默认值:10w 数据迁移完成后,通过对比文档个数检查数据一致性。 # 非安全集群 curl -ik http://ip:9200/{索引名称}/_count #安全集群+HTTPS访问 curl -ik https://ip:9200 -u[Username]:[password]/{索引名称}/_count
  • 应用场景 ESM(Elasticsearch Migration Tool)是一个开源的Elasticsearch集群迁移工具。它支持不同版本的Elasticsearch之间的数据迁移,并且可以通过配置Scroll API的参数来控制迁移速率,以适应不同的网络环境和业务需求。以下是ESM实现Elasticsearch集群间数据迁移的一些应用场景: 跨版本迁移:在Elasticsearch集群需要升级到新版本时,ESM可以帮助平滑迁移数据,确保升级过程中数据的完整性和可用性。 集群合并:当企业需要将多个Elasticsearch集群的数据整合到一个集群中以简化管理时,ESM可以高效地完成这一任务。 服务迁移上云:企业可以将自建的Elasticsearch服务迁移至云平台,以利用云服务的弹性扩展、简化维护和成本效益。 变更服务提供商:如果企业当前使用的是第三方Elasticsearch服务,但出于成本、性能或其他战略考虑,希望更换服务提供商至华为云。
  • 方案优势 跨版本兼容性:ESM支持不同版本的Elasticsearch集群间的数据迁移,包括从老版本迁移到新版本。 简化操作:ESM使用简单方便,使用Go语言开发,只需下载编译包安装即可使用。 性能控制:在迁移过程中,可以通过配置Scroll API的参数来控制迁移速率,优化迁移性能。 灵活的迁移方案:ESM提供了灵活的迁移方案,包括全量迁移和增量迁移,以适应不同的业务需求。 开源免费:作为一个开源工具,ESM代码托管在GitHub上,用户可以免费使用。