云服务器内容精选

  • 数据库迁移通用限制和约束 CDM 以批量迁移为主,仅支持有限的数据库增量迁移,不支持数据库实时增量迁移,推荐使用 数据复制服务 (DRS)来实现数据库增量迁移到RDS。 CDM支持的数据库整库迁移,仅支持数据表迁移,不支持存储过程、触发器、函数、视图等数据库对象迁移。 CDM仅适用于一次性将数据库迁移到云上的场景,包括同构数据库迁移和异构数据库迁移,不适合数据同步场景,比如容灾、实时同步。 CDM迁移数据库整库或数据表失败时,已经导入到目标表中的数据不会自动回滚,对于需要事务模式迁移的用户,可以配置“先导入到阶段表”参数,实现迁移失败时数据回滚。 极端情况下,可能存在创建的阶段表或临时表无法自动删除,也需要用户手工清理(阶段表的表名以“_cdm_stage”结尾,例如:cdmtet_cdm_stage)。 CDM访问用户本地数据中心数据源时(例如本地自建的MySQL数据库),需要用户的数据源可支持Internet公网访问,并为CDM集群实例绑定弹性IP。这种方式下安全实践是:本地数据源通过防火墙或安全策略仅允许CDM弹性IP访问。 仅支持常用的数据类型,字符串、数字、日期,对象类型有限支持,如果对象过大会出现无法迁移的问题。 仅支持数据库字符集为GBK和UTF-8。 字段名不可包含&和%。 jdbc2hive,hive2jdbc整库迁移的实现机制就是按字段名称映射的,不支持字段名称不一致的迁移场景。
  • CDM系统级限制和约束 DataArts Studio 实例赠送的CDM集群,推荐作为DataArts Studio管理中心数据连接的Agent代理使用,不建议同时作为Agent代理和运行数据迁移作业使用。 用于运行数据迁移作业的其他规格CDM集群可以在DataArts Studio控制台以增量包的形式购买,也可以在 云数据迁移 CDM服务控制台直接购买。二者差异体现在如下方面: 套餐计费:在DataArts Studio控制台购买的CDM集群,套餐计费时仅支持在DataArts Studio控制台购买的套餐包;在CDM控制台购买的CDM集群,套餐计费仅支持在云数据迁移CDM服务控制台购买的折扣套餐。 权限控制:在DataArts Studio控制台购买的CDM集群,按照DataArts Studio的权限体系进行权限管理;在CDM控制台购买的CDM集群,按照云数据迁移CDM服务的权限体系进行权限管理。 使用场景:在DataArts Studio控制台购买的CDM集群按工作空间隔离,需要在关联的工作空间使用;在CDM控制台购买的CDM集群,不支持DataArts Studio工作空间级别的资源隔离,所有DataArts Studio工作空间均可使用。 集群创建好以后不支持修改规格,如果需要使用更高规格的,需要重新创建一个集群。 ARM版本的CDM集群不支持Agent功能。CDM集群为ARM或X86版本,依赖于底层资源的架构。 CDM暂不支持控制迁移数据的速度,请避免在业务高峰期执行迁移数据的任务。 在迁移数据时CDM会对数据源端产生压力。建议创建新的数据库账号用于数据迁移,并配置账号策略用于以限制迁移对数据源端的资源消耗。例如可配置当CPU使用率超30%就清理该账号下的连接,从而避免影响业务。 当前CDM集群cdm.large实例规格网卡的基准/最大带宽为0.8/3 Gbps,单个实例一天传输数据量的理论极限值在8TB左右。同理,cdm.xlarge实例规格网卡的基准/最大带宽为4/10 Gbps,理论极限值在40TB左右;cdm.4xlarge实例规格网卡的基准/最大带宽为36/40 Gbps,理论极限值在360TB左右。对传输速度有要求的情况下可以使用多个数据集成实例实现。 上述数据量为理论极限值,实际传输数据量受数据源类型、源和目的数据源读写性能、带宽等多方面因素制约,实测cdm.large规格最大可达到约8TB每天(大文件迁移到OBS场景)。推荐用户在正式迁移前先用小数据量实测进行速度摸底。 迁移文件或对象时支持文件级增量迁移(通过配置跳过重复文件实现),但不支持断点续传。 例如要迁移3个文件,第2个文件迁移到一半时由于网络原因失败,再次启动迁移任务时,会跳过第1个文件,从第2个文件开始重新传,但不能从第2个文件失败的位置重新传。 文件迁移时,单个任务支持千万数量的文件,如果待迁移目录下文件过多,建议拆分到不同目录并创建多个任务。 用户在CDM上配置的连接和作业支持导出到本地保存,考虑到密码的安全性,CDM不会将对应数据源的连接密码导出。因此在将作业配置重新导入到CDM前,需要手工编辑导出的JSON文件补充密码或在导入窗口配置密码。 不支持集群自动升级到新版本,需要用户通过作业的导出和导入功能,实现升级到新版本。 在无OBS的场景下,CDM系统不会自动备份用户的作业配置,需要用户通过作业的导出功能进行备份。 如果配置了VPC对等连接,可能会出现对端VPC子网与CDM管理网重叠,从而无法访问对端VPC中数据源的情况。推荐使用公网做跨VPC数据迁移,或联系管理员在CDM后台为VPC对等连接添加特定路由。 CDM迁移,当目的端为DWS和NewSQL的时候,不支持将源端的主键和唯一索引等约束一起迁移过去。 CDM迁移作业时,需确保两个集群版本的JSON文件格式保持一致,才可以从将源集群的作业导入到目标集群。 作业运行过程中,任务异常中断,目标端已写入的部分数据不会清理,需手动清理。 单文件传输大小不超过1TB。
  • 云搜索服务和Elasticsearch数据源约束 CDM支持自动创建索引和类型,索引和类型名称只能全部小写,不能有大写。 索引下的字段类型创建后不能修改,只能创建新字段。 如果一定要修改字段类型,需要创建新索引或到Kibana上用Elasticsearch命令删除当前索引重新创建(数据也会删除)。 CDM自动创建的索引,字段类型为date时,要求数据格式为“yyyy-MM-dd HH:mm:ss.SSS Z”,即“2018-08-08 08:08:08.888 +08:00”。 迁移数据到云搜索服务时如果date字段的原始数据不满足格式要求,可以通过CDM的字段转换转换为上述格式。
  • 关系数据库迁移权限配置 常见关系数据库迁移需要的最小权限级: MySQL:INFORMATION_SCHEMA库的读权限,以及对数据表的读权限。 Oracle:需要该用户有resource角色,并在tablespace下有数据表的select权限。 达梦:具有该schema下select any table的权限。 DWS:需要表的schema usage权限和数据表的查询权限。 SQL Server:用户需要有sysadmin权限。 PostgreSQL:角色拥有数据库下schema下表的select权限。
  • 对象存储服务 (OBS)数据源约束 迁移文件时系统会自动并发,任务配置中的“抽取并发数”无效。 不支持断点续传。CDM传文件失败会产生OBS碎片,需要用户到OBS控制台清理碎片文件避免空间占用。 不支持对象多版本的迁移。 增量迁移时,单个作业的源端目录下的文件数量或对象数量,根据CDM集群规格分别有如下限制:大规格集群30万、中规格集群20万、小规格集群10万。 如果单目录下文件或对象数量超过限制,需要按照子目录来拆分成多个迁移作业。
  • Hive数据源约束 Hive中使用Parquet格式存储时间戳数据时,时间戳的精度为纳秒级别(即精确到毫微秒),即2023-03-27 00:00:00.000。当源端数据精度大于纳秒级别时,字段映射时会对数据进行截取。例如源端数据为2023-03-27 00:00:00.12345,目的端数据会被截取为2023-03-27 00:00:00.123。 Hive作为迁移的目的时,如果存储格式为Textfile,在Hive创建表的语句中需要显式指定分隔符。例如: CREATE TABLE csv_tbl( smallint_value smallint, tinyint_value tinyint, int_value int, bigint_value bigint, float_value float, double_value double, decimal_value decimal(9, 7), timestmamp_value timestamp, date_value date, varchar_value varchar(100), string_value string, char_value char(20), boolean_value boolean, binary_value binary, varchar_null varchar(100), string_null string, char_null char(20), int_null int ) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.Open CS VSerde' WITH SERDEPROPERTIES ( "separatorChar" = "\t", "quoteChar" = "'", "escapeChar" = "\\" ) STORED AS TEXTFILE;
  • 数据仓库 服务(DWS)和 FusionInsight LibrA数据源约束 DWS主键或表只有一个字段时,要求字段类型必须是如下常用的字符串、数值、日期类型。从其他数据库迁移到DWS时,如果选择自动建表,主键必须为以下类型,未设置主键的情况下至少要有一个字段是以下类型,否则会无法创建表导致CDM作业失败。 INTEGER TYPES:TINYINT,SMALLINT,INT,BIGINT,NUMERIC/DECIMAL CHARACTER TYPES:CHAR,BPCHAR,VARCHAR,VARCHAR2,NVARCHAR2,TEXT DATA/TIME TYPES:DATE,TIME,TIMETZ,TIMESTAMP,TIMESTAMPTZ,INTERVAL,SMALLDATETIME 2.9.1.200及之前版本的集群,DWS源端暂不支持NVARCHAR2数据类型。 DWS字符类型字段认为空字符串('')是空值,有非空约束的字段无法插入空字符串(''),这点与MySQL行为不一致,MySQL不认为空字符串('')是空值。从MySQL迁移到DWS时,可能会因为上述原因导致迁移失败。 使用GDS模式快速导入数据到DWS时,需要配置相关安全组或防火墙策略,允许DWS/LibrA的数据节点访问CDM IP地址的25000端口。 使用GDS模式导入数据到DWS时,CDM会自动创建外表(foreign table)用于数据导入,表名以UUID结尾(例如:cdmtest_aecf3f8n0z73dsl72d0d1dk4lcir8cd),作业失败正常会自动删除,极端情况下可能需要用户手工清理。
  • 产品功能 表/文件/整库迁移 支持批量迁移表或者文件,还支持同构/异构数据库之间整库迁移,一个作业即可迁移几百张表。 增量数据迁移 支持文件增量迁移、关系型数据库增量迁移、HBase/CloudTable增量迁移,以及使用Where条件配合时间变量函数实现增量数据迁移。 事务模式迁移 支持当CDM作业执行失败时,将数据回滚到作业开始之前的状态,自动清理目的表中的数据。 字段转换 支持去隐私、字符串操作、日期操作等常用字段的数据转换功能。 文件加密 在迁移文件到文件系统时,CDM支持对写入云端的文件进行加密。 MD5校验一致性 支持使用MD5校验,检查端到端文件的一致性,并输出校验结果。 脏数据归档 支持将迁移过程中处理失败的、被清洗过滤掉的、不符合字段转换或者不符合清洗规则的数据单独归档到脏数据日志中,便于用户查看。并支持设置脏数据比例阈值,来决定任务是否成功。
  • CDM迁移原理 用户使用CDM服务时,CDM管理系统在用户VPC中发放全托管的CDM实例。此实例仅提供控制台和Rest API访问权限,用户无法通过其他接口(如SSH)访问实例。这种方式保证了CDM用户间的隔离,避免数据泄漏,同时保证VPC内不同云服务间数据迁移时的传输安全。用户还可以使用VPN网络将本地数据中心的数据迁移到云服务,具有高度的安全性。 CDM数据迁移以抽取-写入模式进行。CDM首先从源端抽取数据然后将数据写入到目的端,数据访问操作均由CDM主动发起,对于数据源(如RDS数据源)支持SSL时,会使用SSL加密传输。迁移过程要求用户提供源端和目的端数据源的用户名和密码,这些信息将存储在CDM实例的数据库中。保护这些信息对于CDM安全至关重要。 图3 CDM迁移原理