云服务器内容精选

  • 整库迁移支持的数据源类型 整库迁移适用于将本地数据中心或在E CS 上自建的数据库,同步到云上的数据库服务或大数据服务中,适用于数据库离线迁移场景,不适用于在线实时迁移。 数据集成支持整库迁移的数据源如表2所示。 表2 整库迁移支持的数据源 数据源分类 数据源 读取 写入 说明 数据仓库 数据仓库服务(DWS) 支持 支持 - Hadoop (仅支持本地存储,不支持存算分离场景,不支持Ranger场景,不支持ZK开启SSL场景) MRS HBase 支持 支持 整库迁移仅支持导出到MRS HBase。 建议使用的版本: 2.1.X 1.3.X 当前暂不支持对接“Kerberos加密类型”为“aes256-sha2,aes128-sha2”的MRS集群。如需对接MRS集群,请注意“Kerberos加密类型”应为“aes256-sha1,aes128-sha1”。 MRS Hive 支持 支持 整库迁移仅支持导出到关系型数据库。 暂不支持2.x版本,建议使用的版本: 1.2.X 3.1.X 当前暂不支持对接“Kerberos加密类型”为“aes256-sha2,aes128-sha2”的MRS集群。如需对接MRS集群,请注意“Kerberos加密类型”应为“aes256-sha1,aes128-sha1”。 Apache HBase 支持 不支持 建议使用的版本: 2.1.X 1.3.X Apache Hive 支持 不支持 整库迁移仅支持导出到关系型数据库。 暂不支持2.x版本,建议使用的版本: 1.2.X 3.1.X MRS Hudi 支持 支持 支持本地存储、存算分离场景。 暂不支持2.x版本,建议使用的版本: 1.2.X 3.1.X 当前暂不支持对接“Kerberos加密类型”为“aes256-sha2,aes128-sha2”的MRS集群。如需对接MRS集群,请注意“Kerberos加密类型”应为“aes256-sha1,aes128-sha1”。 关系数据库 云数据库 MySQL 支持 支持 不支持OLTP到OLTP迁移,此场景推荐通过 数据复制服务 DRS进行迁移。 云数据库 PostgreSQL 支持 支持 云数据库 SQL Server 支持 支持 MySQL 支持 不支持 PostgreSQL 支持 不支持 Microsoft SQL Server 支持 不支持 Oracle 支持 不支持 NoSQL 分布式缓存服务(DCS) 不支持 支持 仅支持MRS到DCS迁移。 公测中 表格存储服务 (CloudTable) 支持 支持 - FusionInsight HBase 支持 不支持 建议使用的版本: 2.1.X 1.3.X FusionInsight Hive 支持 不支持 整库迁移仅支持导出到关系型数据库。 暂不支持2.x版本,建议使用的版本: 1.2.X 3.1.X SAP HANA 支持 不支持 仅支持2.00.050.00.1592305219版本。 仅支持Generic Edition。 不支持BW/4 FOR HANA。 仅支持英文字母的数据库名、表名与列名,不支持存在空格、符号等特殊字符。 仅支持日期、数字、布尔、字符(除SHORTTEXT) 类型的数据类型,不支持二进制类型等其他数据类型。 迁移时不支持目的端自动建表。 达梦数据库 DM 支持 不支持 仅支持导出到DWS、Hive 文档数据库服务(DDS) 支持 支持 仅支持DDS和MRS之间迁移。
  • 表/文件迁移支持的数据源类型 表/文件迁移可以实现表或文件级别的数据迁移。 表/文件迁移时支持的数据源如表1所示。 表1 表/文件迁移支持的数据源 数据源分类 源端数据源 对应的目的端数据源 说明 数据仓库 数据仓库服务(DWS) 数据仓库:数据仓库服务(DWS), 数据湖探索 DLI ),MRS ClickHouse,Doris Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储: 对象存储服务 (OBS) 关系型数据库:云数据库 MySQL,云数据库 PostgreSQL,云数据库 SQL Server,MySQL,PostgreSQL,Microsoft SQL Server,Oracle 搜索:Elasticsearch 公测中: 云搜索服务 CSS ), 表格存储 服务(CloudTable) 不支持DWS物理机纳管模式。 数据湖 探索(DLI) 数据仓库:数据仓库服务(DWS),数据湖探索(DLI),MRS ClickHouse,Doris Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) 关系型数据库:云数据库 MySQL,云数据库 PostgreSQL,云数据库 SQL Server,MySQL,PostgreSQL,Microsoft SQL Server,Oracle NoSQL:MongoDB 搜索:Elasticsearch 公测中: 云搜索 服务(CSS),表格存储服务(CloudTable) MongoDB建议使用的版本:4.2。 用户需要具备DLI数据源所有字段的“查询表”权限,即SELECT权限。 MRS ClickHouse 数据仓库:MRS ClickHouse,数据湖探索(DLI) MRS ClickHouse建议使用的版本:21.3.4.X。 当前暂不支持对接“Kerberos加密类型”为“aes256-sha2,aes128-sha2”的MRS集群。如需对接MRS集群,请注意“Kerberos加密类型”应为“aes256-sha1,aes128-sha1”。 Doris 数据仓库:Doris 当前暂不支持对接“Kerberos加密类型”为“aes256-sha2,aes128-sha2”的MRS集群。如需对接MRS集群,请注意“Kerberos加密类型”应为“aes256-sha1,aes128-sha1”。 Hadoop MRS HDFS 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) 关系型数据库:云数据库 MySQL,云数据库 PostgreSQL,云数据库 SQL Server,MySQL,PostgreSQL,Microsoft SQL Server,Oracle 搜索:Elasticsearch 公测中:云搜索服务(CSS),表格存储服务(CloudTable) 支持本地存储,仅MRS Hive、MRS Hudi支持存算分离场景。 仅MRS Hive支持Ranger场景。 不支持ZK开启SSL场景。 MRS HDFS建议使用的版本: 2.8.X 3.1.X MRS HBase建议使用的版本: 2.1.X 1.3.X MRS Hive、MRS Hudi暂不支持2.x版本,建议使用的版本: 1.2.X 3.1.X 当前暂不支持对接“Kerberos加密类型”为“aes256-sha2,aes128-sha2”的MRS集群。如需对接MRS集群,请注意“Kerberos加密类型”应为“aes256-sha1,aes128-sha1”。 MRS HBase MRS Hive 数据仓库:数据仓库服务(DWS),数据湖探索(DLI),MRS Clickhouse、Doris Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) 关系型数据库:云数据库 MySQL,云数据库 PostgreSQL,云数据库 SQL Server,MySQL,PostgreSQL,Microsoft SQL Server,Oracle 搜索:Elasticsearch 公测中:云搜索服务(CSS),表格存储服务(CloudTable),SAP HANA MRS Hudi 数据仓库:数据仓库服务(DWS) Hadoop:MRS HBase Apache HBase 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) 搜索:Elasticsearch 公测中:云搜索服务(CSS),表格存储服务(CloudTable) Apache数据源不支持作为目的端。 仅支持本地存储,不支持存算分离场景。 不支持Ranger场景。 不支持ZK开启SSL场景。 Apache HBase建议使用的版本: 2.1.X 1.3.X Apache Hive暂不支持2.x版本,建议使用的版本: 1.2.X 3.1.X Apache HDFS建议使用的版本: 2.8.X 3.1.X Apache Hive Apache HDFS 对象存储 对象存储服务(OBS) 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 搜索:Elasticsearch 公测中:云搜索服务(CSS),表格存储服务(CloudTable) 对象存储服务之间的迁移,推荐使用 对象存储迁移 服务 OMS 。 不支持二进制文件导入到数据库或NoSQL。 文件系统 FTP 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 搜索:Elasticsearch 对象存储:对象存储服务(OBS) 公测中:云搜索服务(CSS),表格存储服务(CloudTable) 文件系统不支持作为目的端。 FTP/SFTP到搜索的迁移仅支持如CSV等文本文件,不支持二进制文件。 FTP/SFTP到OBS的迁移仅支持二进制文件。 HTTP到OBS的迁移推荐使用obsutil工具,请参见obsutil简介。 SFTP HTTP Hadoop:MRS HDFS 关系型数据库 云数据库 MySQL 数据仓库:数据仓库服务(DWS),数据湖探索(DLI),Doris Hadoop:MRS HDFS,MRS HBase,MRS Hive,MRS Hudi 对象存储:对象存储服务(OBS) 关系型数据库:云数据库 MySQL,云数据库 PostgreSQL,云数据库 SQL Server 搜索:Elasticsearch 公测中:云搜索服务(CSS),表格存储服务(CloudTable),SAP HANA OLTP数据库之间的迁移推荐通过数据复制服务DRS进行迁移。 Microsoft SQL Server建议使用的版本:2005以上。 金仓和 GaussDB 数据源可通过PostgreSQL连接器进行连接,支持的迁移作业的源端、目的端情况与PostgreSQL数据源一致。 云数据库 SQL Server 数据仓库:数据仓库服务(DWS) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) 关系型数据库:云数据库 MySQL,云数据库 PostgreSQL,云数据库 SQL Server 搜索:Elasticsearch 公测中:云搜索服务(CSS),表格存储服务(CloudTable) 云数据库 PostgreSQL MySQL 数据仓库:数据仓库服务(DWS) Hadoop:MRS HDFS,MRS HBase,MRS Hive,MRS Hudi 对象存储:对象存储服务(OBS) 搜索:Elasticsearch 公测中:云搜索服务(CSS),表格存储服务(CloudTable) PostgreSQL Oracle Microsoft SQL Server 数据仓库:数据仓库服务(DWS) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) 搜索:Elasticsearch 公测中:云搜索服务(CSS),表格存储服务(CloudTable) NoSQL 分布式缓存服务(DCS) Hadoop:MRS HDFS,MRS HBase,MRS Hive NoSQL数据源不支持作为目的端。 Redis到DCS的迁移,可以通过其他方式进行,请参见自建Redis迁移至DCS。 Redis MongoDB 消息系统 数据接入服务 (DIS) 公测中:云搜索服务(CSS) 消息系统不支持作为目的端。 Apache Kafka DMS Kafka MRS Kafka 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) 关系型数据库:云数据库 MySQL,云数据库 PostgreSQL,云数据库 SQL Server 搜索:Elasticsearch, 公测中:表格存储服务(CloudTable),云搜索服务(CSS) MRS Kafka不支持作为目的端。 仅支持本地存储,不支持存算分离场景。 不支持Ranger场景。 不支持ZK开启SSL场景。 当前暂不支持对接“Kerberos加密类型”为“aes256-sha2,aes128-sha2”的MRS集群。如需对接MRS集群,请注意“Kerberos加密类型”应为“aes256-sha1,aes128-sha1”。 搜索 Elasticsearch 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) 关系型数据库:云数据库 MySQL,云数据库 PostgreSQL,云数据库 SQL Server 搜索:Elasticsearch 公测中:表格存储服务(CloudTable),云搜索服务(CSS) Elasticsearch仅支持非安全模式。 公测中 表格存储服务(CloudTable HBase) 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) 关系型数据库:云数据库 MySQL,云数据库 PostgreSQL,云数据库 SQL Server,MySQL,PostgreSQL,Microsoft SQL Server,Oracle 搜索:Elasticsearch 公测中:表格存储服务(CloudTable),云搜索服务(CSS) - 云搜索服务(CSS) 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) 关系型数据库:云数据库 MySQL,云数据库 PostgreSQL,云数据库 SQL Server 搜索:Elasticsearch 公测中:表格存储服务(CloudTable),云搜索服务(CSS) 导入数据到CSS推荐使用Logstash,请参见使用Logstash导入数据到Elasticsearch。 SAP HANA 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS Hive SAP HANA数据源存在如下约束: SAP HANA不支持作为目的端。 仅支持2.00.050.00.1592305219版本。 仅支持Generic Edition。 不支持BW/4 FOR HANA。 仅支持英文字母的数据库名、表名与列名,不支持存在空格、符号等特殊字符。 仅支持日期、数字、布尔、字符(除SHORTTEXT) 类型的数据类型,不支持二进制类型等其他数据类型。 迁移时不支持目的端自动建表。 FusionInsight HDFS 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) 搜索:Elasticsearch 公测中:云搜索服务(CSS),表格存储服务(CloudTable) FusionInsight数据源不支持作为目的端。 仅支持本地存储,不支持存算分离场景。 不支持Ranger场景。 不支持ZK开启SSL场景。 FusionInsight HDFS建议使用的版本: 2.8.X 3.1.X FusionInsight HBase建议使用的版本: 2.1.X 1.3.X FusionInsight Hive建议使用的版本: 1.2.X 3.1.X FusionInsight HBase FusionInsight Hive 分库 分库数据仓库:数据湖探索(DLI) Hadoop:MRS HBase,MRS Hive 搜索:Elasticsearch 对象存储:对象存储服务(OBS) 公测中:云搜索服务(CSS) 分库数据源不支持作为目的端。 达梦数据库 DM 数据仓库:数据仓库服务(DWS) Hadoop:MRS Hive,MRS Hudi - 神通(ST) Hadoop:MRS Hive,MRS Hudi - 文档数据库服务(DDS) Hadoop:MRS HDFS,MRS HBase,MRS Hive - Cassandra 数据仓库:数据仓库服务(DWS),数据湖探索(DLI) Hadoop:MRS HDFS,MRS HBase,MRS Hive 对象存储:对象存储服务(OBS) 搜索:Elasticsearch 公测中:云搜索服务(CSS),表格存储服务(CloudTable) - GBASE8S Hadoop:MRS HDFS,MRS HBase 消息系统:MRS Kafka - GBASE8A Hadoop:MRS HDFS,MRS Hive,MRS HBase 消息系统:MRS Kafka - 上表中非云服务的数据源,例如MySQL,既可以支持用户本地数据中心自建的MySQL,也可以是用户在ECS上自建的MySQL,还可以是第三方云的MySQL服务。
  • 操作步骤 获取Elasticsearch集群信息 准备迁移环境:创建ECS并准备必要的迁移工具和脚本。 创建Logstash集群:创建一个Logstash集群用于迁移数据。 验证集群间的网络连通性:验证Logstash和源Elasticsearch集群的连通性。 使用Logstash迁移集群 在集群迁移初期或需要确保数据完整性的场景,推荐使用Logstash全量迁移集群数据。 在需要持续同步数据或对数据实时性有较高要求的场景,推荐使用Logstash增量迁移集群数据。 释放Logstash集群:当集群迁移完成后,请及时释放Logstash集群。
  • 验证集群间的网络连通性 在启动迁移任务前,需要先验证Logstash和源Elasticsearch集群的网络连通性。 在Logstash集群列表,选择创建的Logstash集群“Logstash-ES”,单击操作列的“配置中心”,进入配置中心页面。 在配置中心页面,单击“连通性测试”。 在弹窗中输入源集群的IP地址和端口号,单击“测试”。 图4 连通性测试 当显示“可用”时,表示集群间网络连通。如果网络不连通,可以配置Logstash集群路由,连通集群间的网络,具体操作请参见配置Logstash集群路由。
  • 前提条件 源Elasticsearch集群和目标Elasticsearch集群处于可用状态。 集群间需要保证网络连通。 如果源集群、Logstash和目标集群在不同VPC,则需要先打通VPC网络建立对等连接。具体操作请参见对等连接简介。 如果是自建Elasticsearch集群迁移至华为云,则可以通过给自建Elasticsearch集群配置公网访问打通网络。 如果是第三方Elasticsearch集群迁移至华为云,则需要建立企业内部数据中心到华为云的VPN通道或专线。 确认集群的索引已开启“_source”。 集群索引的“_source”默认是开启的。执行命令GET {index}/_search,当返回的索引信息里有“_source”信息时表示已开启。
  • 方案架构 图1 迁移流程 通过华为云Logstash实现Elasticsearch集群间数据迁移的迁移流程如图1所示。 输入(Input):华为云Logstash接收来自华为云Elasticsearch、自建Elasticsearch或第三方Elasticsearch的数据。 华为云Elasticsearch、自建Elasticsearch或第三方Elasticsearch数据迁移到华为云Elasticsearch的操作步骤相同,只是获取源集群的访问地址有差异,具体请参见获取Elasticsearch集群信息。 过滤(Filter):华为云Logstash对数据进行清洗和转换。 输出(Output):华为云Logstash将数据输出到目标设备,如华为云Elasticsearch。 根据业务需求,可以选择全量数据迁移或增量数据迁移。 全量数据迁移:使用Logstash进行全量数据迁移,适用于迁移初期或需要确保数据完整性的场景。 增量数据迁移:通过Logstash配置增量查询,可以只迁移有增量字段的索引数据。此方法适用于需要持续同步数据或对数据实时性有较高要求的场景。
  • 方案优势 高版本兼容性:适用于不同版本的Elasticsearch集群迁移。 高效的数据处理能力:Logstash支持批量读写操作,可以大幅度提高数据迁移的效率。 并发同步技术:利用slice并发同步技术,可以提高数据迁移的速度和性能,尤其是在处理大规模数据时。 配置简单:华为云Logstash的配置相对简单直观,通过配置文件即可实现数据的输入、处理和输出。 强大的数据处理功能:Logstash内置了丰富的过滤器,可以在迁移过程中对数据进行清洗、转换和丰富。 灵活的迁移策略:根据业务需求,可以灵活选择全量迁移或增量迁移,优化存储使用和迁移时间。
  • 应用场景 华为云Logstash是一款全托管的数据接入处理服务,兼容开源Logstash的能力,支持用于Elasticsearch集群间数据迁移。 通过华为云Logstash可以实现华为云Elasticsearch、自建Elasticsearch或第三方Elasticsearch迁移至华为云Elasticsearch,该方案常用于以下场景: 跨版本迁移:利用Logstash的兼容性和灵活性,实现不同版本间的数据迁移,确保数据在新版本中的可用性和一致性。适用于Elasticsearch集群版本跨度较大的迁移场景,例如从6.X版本迁移至7.X版本。 集群合并:使用Logstash进行数据迁移,将多个Elasticsearch集群的数据整合到一个Elasticsearch集群中,实现多个Elasticsearch数据的统一管理和分析。 服务迁移上云:将自建的Elasticsearch服务迁移到云平台,以利用云服务的可扩展性、维护简便性和成本效益。 变更服务提供商:如果企业当前使用的是第三方Elasticsearch服务,但出于成本、性能或其他战略考虑,希望更换服务提供商至华为云。
  • 性能影响 使用Logstash迁移集群依托于Scroll API,此API能够高效读取源集群的索引数据,并批量同步至目标集群。这一过程可能会对源集群性能产生影响,具体影响程度取决于目标集群对源集群的读取速度,而读取速度取决于Scroll API的size和slice参数配置。参数配置的详细指导可参考Reindex API文档。 对于资源消耗较高的集群,建议通过调整size参数来减缓迁移速率,或者选择在业务流量低谷时段进行迁移操作,以减轻对集群资源的影响。 对于资源消耗较低的集群,在迁移时可以采用默认参数配置,建议同时监控源集群的性能负载,并根据实际情况适时调整size和slice参数,以优化迁移效率和资源使用。
  • 操作步骤 登录图引擎服务管理控制台,在左侧导航栏中选择“数据迁移”。 在“数据源管理”页签单击“新建”。 图1 新建数据源管理 在新建数据源页面,输入对应的数据源信息,具体参数如下: 数据源名称:自定义名称,长度在4位到50位之间,必须以字母开头,不区分大小写,可以包含字母、数字、下划线,不能包含其他的特殊字符。 数据源类型:按实际数据源选择,目前支持Mysql、神通数据库、Oracle、DWS、Hive。 图名称:选择需要导入数据的图。 网段CIDR:数据源所在子网的网段。 访问IP地址:数据源的数据库的IP。 访问端口:数据源的数据库的端口(Hive不涉及)。 数据库名称:数据源的数据库的名称。 数据库用户名:访问数据源的数据库的用户名(Hive不涉及)。 数据库密码:访问数据源的数据库的用户密码(Hive不涉及)。 是否需要验证:Hive所在MRS集群是否开启Kerberos认证(仅Hive涉及)。 MRS集群用户名称:Hive所在MRS集群的用户名,当Kerberos认证关闭时可不填(仅Hive涉及)。 MRS集群用户认证凭证:Hive所在MRS集群的用户的认证凭证,当Kerberos认证关闭时可不传(仅Hive涉及)。 MRS集群Hive客户端文件:Hive客户端文件(仅Hive涉及)。 参数填写完成后单击“确定”。 图2 数据源信息 查看数据源状态,等待创建完成。
  • 迁移原理 使用自研迁移工具leveldb-port,和LevelDB部署在相同机器上,准备好配置文件,启动迁移即可自动完成全量与增量的迁移。 全量迁移对LevelDB数据进行快照,然后扫描整个数据库,将数据打包成GeminiDB Redis接口识别的格式,发送到GeminiDB Redis接口,具有很高的迁移效率。 增量迁移解析LevelDB的wal文件,将LevelDB的操作解析出来,然后对其中的key进行分片,多线程进行发送。
  • 文件格式问题解决方法 数据库的数据导出到CSV文件,由于数据中含有分隔符逗号,造成导出的CSV文件中数据混乱。 CDM 提供了以下几种解决方法: 指定字段分隔符 使用数据库中不存在的字符,或者是极少见的不可打印字符来作为字段分隔符。例如可以在目的端指定“字段分隔符”为“%01”,这样导出的字段分隔符就是“\u0001”,详情可见表1。 使用包围符 在目的端作业参数中开启“使用包围符”,这样数据库中如果字段包含了字段分隔符,在导出到CSV文件的时候,CDM会使用包围符将该字段括起来,使之作为一个字段的值写入CSV文件。 数据库的数据包含换行符 场景:使用CDM先将MySQL中的某张表(表的某个字段值中包含了换行符\n)导出到CSV格式的文件中,然后再使用CDM将导出的CSV文件导入到MRS HBase,发现导出的CSV文件中出现了数据被截断的情况。 解决方法:指定换行符。 在使用CDM将MySQL的表数据导出到CSV文件时,指定目的端的换行符为“%01”(确保这个值不会出现在字段值中),这样导出的CSV文件中换行符就是“%01”。然后再使用CDM将CSV文件导入到MRS HBase时,指定源端的换行符为“%01”,这样就避免了数据被截断的问题。
  • 二进制格式 如果想要在文件系统间按原样复制文件,则可以选择二进制格式。二进制格式传输文件到文件的速率高、性能稳定,且不需要在作业第二步进行字段匹配。 文件传输的目录结构 CDM的文件传输,支持单文件,也支持一次传输目录下所有的文件。传输到目的端后,目录结构会保持原样。 增量迁移文件 使用CDM进行二进制传输文件时,目的端有一个参数“重复文件处理方式”,可以用作文件的增量迁移,具体请参见文件增量迁移。 增量迁移文件的时候,选择“重复文件处理方式”为“跳过重复文件”,这样如果源端有新增的文件,或者是迁移过程中出现了失败,只需要再次运行任务,已经迁移过的文件就不会再次迁移。 写入到临时文件 二进制迁移文件时候,可以在目的端指定是否写入到临时文件。如果指定了该参数,在文件复制过程中,会将文件先写入到一个临时文件中,迁移成功后,再进行rename或move操作,在目的端恢复文件。 生成文件MD5值 对每个传输的文件都生成一个MD5值,并将该值记录在一个新文件中,新文件以“.md5”作为后缀,并且可以指定MD5值生成的目录。
  • 文件格式的公共参数 启动作业标识文件 这个主要用于自动化场景中,CDM配置了定时任务,周期去读取源端文件,但此时源端的文件正在生成中,CDM此时读取会造成重复写入或者是读取失败。所以,可以在源端作业参数中指定启动作业标识文件为“ok.txt”,在源端生成文件成功后,再在文件目录下生成“ok.txt”,这样CDM就能读取到完整的文件。 另外,可以设置超时时间,在超时时间内,CDM会周期去查询标识文件是否存在,超时后标识文件还不存在的话,则作业任务失败。 启动作业标识文件本身不会被迁移。 作业成功标识文件 文件系统为目的端的时候,当任务成功时,在目的端的目录下,生成一个空的文件,标识文件名由用户来指定。一般和“启动作业标识文件”搭配使用。 这里需要注意的是,不要和传输的文件混淆,例如传输文件为“finish.txt”,但如果作业成功标识文件也设置为“finish.txt”,这样会造成这两个文件相互覆盖。 过滤器 使用CDM迁移文件的时候,可以使用过滤器来过滤文件。支持通过通配符或时间过滤器来过滤文件。 选择通配符时,CDM只迁移满足过滤条件的目录或文件。 选择时间过滤器时,只有文件的修改时间晚于输入的时间才会被传输。 例如用户的“/table/”目录下存储了很多数据表的目录,并且按天进行了划分DRIVING_BEHAVIOR_20180101~DRIVING_BEHAVIOR_20180630,保存了DRIVING_BEHAVIOR从1月到6月的所有数据。如果只想迁移DRIVING_BEHAVIOR的3月份的表数据,那么需要在作业第一步指定源目录为“/table”,过滤类型选择“通配符”,然后指定“路径过滤器”为“DRIVING_BEHAVIOR_201803*”。
  • JSON格式 这里主要介绍JSON文件格式的以下内容: CDM支持解析的JSON类型 记录节点 从JSON文件复制数据 CDM支持解析的JSON类型:JSON对象、JSON数组。 JSON对象:JSON文件包含单个对象,或者以行分隔/串连的多个对象。 单一对象JSON { "took" : 190, "timed_out" : false, "total" : 1000001, "max_score" : 1.0 } 行分隔的JSON对象 {"took" : 188, "timed_out" : false, "total" : 1000003, "max_score" : 1.0 } {"took" : 189, "timed_out" : false, "total" : 1000004, "max_score" : 1.0 } 串连的JSON对象 { "took": 190, "timed_out": false, "total": 1000001, "max_score": 1.0 } { "took": 191, "timed_out": false, "total": 1000002, "max_score": 1.0 } JSON数组:JSON文件是包含多个JSON对象的数组。 [{ "took" : 190, "timed_out" : false, "total" : 1000001, "max_score" : 1.0 }, { "took" : 191, "timed_out" : false, "total" : 1000001, "max_score" : 1.0 }] 记录节点 记录数据的根节点。该节点对应的数据为JSON数组,CDM会以同一模式从该数组中提取数据。多层嵌套的JSON节点以字符“.”分割。 从JSON文件复制数据 示例一 从行分隔/串连的多个对象中提取数据。JSON文件包含了多个JSON对象,例如: { "took": 190, "timed_out": false, "total": 1000001, "max_score": 1.0 } { "took": 191, "timed_out": false, "total": 1000002, "max_score": 1.0 } { "took": 192, "timed_out": false, "total": 1000003, "max_score": 1.0 } 如果您想要从该JSON对象中提取数据,使用以下格式写入到数据库,只需要在作业第一步指定文件格式为“JSON格式”,指定JSON类型为“JSON对象”,然后在作业第二步进行字段匹配即可。 表2 示例 took timedOut total maxScore 190 false 1000001 1.0 191 false 1000002 1.0 192 false 1000003 1.0 示例二 从记录节点中提取数据。JSON文件包含了单个的JSON对象,但是其中有效的数据在一个数据节点下,例如: { "took": 190, "timed_out": false, "hits": { "total": 1000001, "max_score": 1.0, "hits": [{ "_id": "650612", "_source": { "name": "tom", "books": ["book1","book2","book3"] } }, { "_id": "650616", "_source": { "name": "tom", "books": ["book1","book2","book3"] } }, { "_id": "650618", "_source": { "name": "tom", "books": ["book1","book2","book3"] } }] } } 如果想以如下格式写入到数据库,则需要在作业第一步指定文件格式为“JSON格式”,指定JSON类型为“JSON对象”,并且指定记录节点为“hits.hits”,然后在作业第二步进行字段匹配。 表3 示例 ID SourceName SourceBooks 650612 tom ["book1","book2","book3"] 650616 tom ["book1","book2","book3"] 650618 tom ["book1","book2","book3"] 示例三 从JSON数组中提取数据。JSON文件是包含了多个JSON对象的JSON数组,例如: [{ "took" : 190, "timed_out" : false, "total" : 1000001, "max_score" : 1.0 }, { "took" : 191, "timed_out" : false, "total" : 1000002, "max_score" : 1.0 }] 如果想以如下格式写入到数据库,需要在作业第一步指定文件格式为“JSON格式”,指定JSON类型为“JSON数组”,然后在作业第二步进行字段匹配。 表4 示例 took timedOut total maxScore 190 false 1000001 1.0 191 false 1000002 1.0 示例四 在解析JSON文件的时候搭配转换器。在示例二前提下,想要把hits.max_score字段附加到所有记录中,即以如下格式写入到数据库中: 表5 示例 ID SourceName SourceBooks MaxScore 650612 tom ["book1","book2","book3"] 1.0 650616 tom ["book1","book2","book3"] 1.0 650618 tom ["book1","book2","book3"] 1.0 则需要在作业第一步指定文件格式为“JSON格式”,指定JSON类型为“JSON对象”,并且指定记录节点为“hits.hits”,然后在作业第二步添加转换器,操作步骤如下: 单击添加字段,新增一个字段。 图2 添加字段 在添加的新字段后面,单击添加字段转换器。 图3 添加字段转换器 创建“表达式转换”的转换器,表达式输入“1.0”,然后保存。 图4 配置字段转换器