适用场景

Lindorm提供BDS服务能够支持各种Lindorm版本之间相互迁移和实时同步,并且支持同步RDS、Loghub的实时数据到Lindorm。如果您有这方面的需求,请移步BDS介绍。如果您需要从BDS暂不支持的异构数据源导入数据,如从MaxCompute(原ODPS)导入数据到Lindorm,则需要使用到DataX这个产品。DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、Lindorm、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。

使用Datax进行数据同步

使用Datax有两种方案:

  • 使用阿里云DataWorks的数据集成服务配置datax任务。
  • 使用开源datax配置同步任务。

方案一:使用DataWorks运行datax配置步骤

创建工作空间

创建工作空间的方法详见DataWorks文档

创建资源组
资源组类型 配置文档 特点 注意事项
独享资源组 配置文档 独享资源组的机器由DataWorks自动买出,运维完全托管于系统,您无需担心机器服务和可用性等问题 独享资源不支持跨地域使用。例如,华东2(上海)地域的独享资源,只能给华东2(上海)地域的工作空间使用(无法绑定其他区域的VPC),并且独享资源组不能夸Vswtich访问Lindorm集群
自定义资源组 配置文档 仅DataWorks企业版及以上版本支持自定义资源组。自定义资源组的ECS机器由用户自己买出,用户可以将ECS买在Lindorm的VPC内,从而用内网访问Lindorm,否则只能用外网访问。 自定义资源组的机器完全可控、可登录访问,但是需要自行安装/运维/升级DataX版本(配置文档中有安装方法)。
默认资源组 默认资源组机器无法从内网访问Lindorm所在VPC,只能通过公网访问Lindorm。 公网访问Lindorm会在DataWorks产生额外费用,详见额外费用详情

我们推荐使用独享资源组和自定义资源组的方式访问Lindorm。

配置网络
  • 独享资源组网络配置
    1. 绑定专有网络(VPC),将独享资源组与Lindorm所在VPC绑定。
    2. VPC控制台VPC控制台中找到独立资源组所绑定的VPC和Vswtich所在的网段。如下图中的192.168.0/24。由于无法知道独立资源组内机器的具体IP,所以必须将整个网段加入Lindorm的白名单,才可以正常访问Lindorm。寻找网段
    3. 添加步骤2中获得的IP段到Lindorm访问白名单中,添加方法见添加白名单
  • 自定义资源组网络配置

    自定义资源组的机器都是用户自己购买,因此能看到每台ECS的具体IP,将这些IP全部配置到Lindorm访问白名单中即可,添加方法见添加自定义配置到白名单

  • 默认资源组网络配置

    默认资源组机器的IP段详见IP网段,将区域对应的IP添加到Lindorm访问白名单中即可,添加方法见添加默认配置到白名单

创建同步任务并绑定资源组
  1. 创建同步任务,具体方法参见创建同步任务
  2. 修改插件配置,读写Lindorm分别使用Lindorm11xwritterLindorm11xreader 插件。

    相关的配置可以参见具体插件的帮助。但是Lindorm”Lindormconfig”部分不再使用Zookeeper.quorum这个参数连接,而是使用增强版特有的Endpoint形式,配置示例如下:

    1."LindormConfig": {
    2.  "Lindorm.client.connection.impl" : "com.alibaba.Lindorm.client.AliLindormUEConnection",
    3.  "Lindorm.client.endpoint" : "host:30020",
    4.  "Lindorm.client.username" : "root",
    5.  "Lindorm.client.password" : "root"
    6.}
    说明
    • Lindorm.client.connection.impl - 固定配置不需要修改。
    • Lindorm.client.endpoint - 用户控制台上提供的Java API访问地址,用户可以参见连接集群获得。
    • Lindorm.client.username和password - Lindorm增强版中用户自己创建的用户名和密码(默认均为root),用户必须保证提供的用户有读写Lindorm增强版中表的权限(默认提供的root用户已经具有读写所有表的权限)。关于用户和ACL,用户可以参见连接集群章节。
  3. 配置任务资源组为上一步创建的资源组。

方案二 使用开源datax配置步骤

下载DataX安装包

点击此处直接下载集成了访问Lindorm增强版所需jar包的DataX安装包。下载完成后解压DataX的tar包。

如果是已有的DataX版本,或者从GitHub地址下载最新版本的安装包,则需要加入所需的jar包,加入方法如下:

JAVA SDK安装下载压缩包中的章节下载1.x版本的aliLindorm-connector-1.x jar文件,注意只需要aliLindorm-connector-1.x jar这一个jar文件即可(1.x代表版本号,具体数字为最新的版本号),无需整个压缩包。把下载好的jar包放入datax/plugin/writer/Lindorm11xwriter/libs目录中。如果需要用DataX读取Lindorm增强版的数据,则需将此jar包也放入datax/plugin/reader/Lindorm11xreader/libs目录中。

编辑配置文件

在DataX中,读取Lindorm增强版的插件为Lindorm11xreader,此插件的具体配置可参见Lindorm11xreader

写入Lindorm增强版的插件为Lindorm11xwriter,此插件的具体配置请参见Lindorm11xwriter

读写Lindorm的配置与官方的配置除了Lindormconfig部分,其他部分完全一致。Lindormconfig部分不再使用Zookeeper.quorum这个参数连接,而是使用增强版特有的Endpoint形式,配置示例如下:

1....
2."LindormConfig": {
3.                            "Lindorm.client.connection.impl" : "com.alibaba.Lindorm.client.AliLindormUEConnection",
4.                            "Lindorm.client.endpoint" : "host:30020",
5.                            "Lindorm.client.username" : "root",
6.                            "Lindorm.client.password" : "root"
7.                        }
8....
其中Lindorm.client.connection.impl为固定配置,用户将其设置为“com.alibaba.Lindorm.client.AliLindormUEConnection”即可启用增强版的Connection。Lindorm.client.endpoint即用户控制台上提供的Java API访问地址,请参见连接集群

Lindorm.client.username和password为Lindorm增强版中用户自己创建的用户名和密码(默认均为root),用户必须保证提供的用户有读写Lindorm增强版中表的权限(默认提供的root用户已经具有读写所有表的权限)。关于用户和ACL,请参见连接集群章节。

启动DataX开始迁移数据

DataX的具体使用方式大家可以参考官方文档

注意 迁移开始前,请仔细阅读连接集群章节,根据DataX所部署的ECS需要添加白名单,才能正确访问Lindorm增强版。同时,如果ECS与Lindorm增强版不在一个VPC内,则需要使用公网地址访问。