通过DataWorks将RDS SQL Server数据同步到阿里云ES

如果您需要对RDS SQL Server中的数据进行搜索和分析,可借助阿里云Elasticsearch实现。本文介绍通过DataWorks的数据集成服务,快速将数据离线同步到阿里云ES中。

背景信息

DataWorks是一个基于大数据引擎,集成数据开发、任务调度、数据管理等功能的全链路大数据开发治理平台。您可以通过DataWorks的同步任务,快速的将各种数据源中的数据同步到阿里云ES。

  • 支持同步的数据源包括:

    • 阿里云云数据库(MySQL、PostgreSQL、SQL Server、MongoDB、HBase)

    • 阿里云PolarDB-X(原DRDS升级版)

    • 阿里云MaxCompute

    • 阿里云OSS

    • 阿里云Tablestore

    • 自建HDFS、Oracle、FTP、DB2及以上数据库类型的自建版本

  • 适用场景:

前提条件

说明
  • 仅支持将数据同步到阿里云ES,不支持自建Elasticsearch。

  • RDS SQL Server实例、ES实例和DataWorks工作空间所在地域需保持一致。

  • RDS SQL Server实例、ES实例和DataWorks工作空间需要在同一时区下,否则同步与时间相关的数据时,同步前后的数据可能存在时区差。

费用说明

操作步骤

步骤一:准备源数据

RDS SQL Server实例中使用的测试数据如下。

说明

本文数据仅供测试,不能用于生产环境。

测试数据

  • 建表语句

    CREATE TABLE students(
        id INT,
        name VARCHAR(20),
        age INT
    )
  • 插入数据

    INSERT INTO [students]( [id] , [name] , [age] )values('1', '小明','21');

步骤二:购买并配置独享资源组

购买一个数据集成独享资源组,并为该资源组绑定专有网络和工作空间。独享资源组可以保障数据快速、稳定地传输。

  1. 登录DataWorks控制台

  2. 在顶部菜单栏选择相应地域后,在左侧导航栏单击资源组

  3. 独享资源组页签下,单击创建旧版集成资源组

  4. DataWorks独享资源购买页面,独享资源类型选择独享数据集成资源,输入资源组名称,单击立即购买,购买独享资源组。

    更多配置信息,请参见购买资源组

  5. 在已创建的独享资源组的操作列,单击网络设置,为该独享资源组绑定专有网络。具体操作,请参见绑定专有网络

    说明

    本文以独享数据集成资源组通过VPC内网同步数据为例。更多信息,请参见添加白名单

    独享资源需要与RDS SQL Server实例和Elasticsearch实例的专有网络连通才能同步数据,因此需要分别绑定RDS SQL Server实例和Elasticsearch实例所在的专有网络可用区交换机。查看实例所在专有网络信息,请参见切换RDS SQL Server虚拟交换机查看Elasticsearch实例的基本信息

    重要

    绑定专有网络后,您需要将对应专有网络的交换机网段加入到RDS SQL Server、Elasticsearch实例的私网白名单中。具体操作,请参见设置RDS SQL Server白名单配置Elastic search实例公网或私网访问白名单

  6. 在页面左上角,单击返回图标,返回资源组列表页面,

  7. 在已创建的独享资源组的操作列,单击绑定工作空间,为该独享资源组绑定目标工作空间。

    具体操作,请参见绑定归属工作空间

步骤三:添加数据源

将RDS SQL Server和Elasticsearch数据源接入DataWorks的数据集成服务中。

  1. 进入DataWorks的数据集成页面。

    1. 登录DataWorks控制台

    2. 在左侧导航栏,单击工作空间

    3. 在目标工作空间的操作列,选择快速进入 数据集成

  2. 在左侧导航栏,单击数据源

  3. 新增RDS SQL Server数据源。

    1. 数据源列表页面,单击新增数据源

    2. 新增数据源页面,搜索并选择SQL Server数据源。

    3. 新增SQL Server数据源对话框,在基础信息区域配置数据源参数。

      配置详情,请参见配置SQLServer数据源

    4. 连接配置区域,单击测试连通性,连通状态显示为可连通时,表示连通成功。

    5. 单击完成

  4. 使用同样的方式添加Elasticsearch数据源。配置详情,请参见配置Elasticsearch数据源

步骤四:配置并运行数据离线同步任务

数据离线同步任务将独享资源组作为一个可以执行任务的资源,独享资源组将获取数据集成服务中数据源的数据,并将数据写入Elasticsearch。

说明

有两种方式可以配置离线同步任务,文本以向导模式配置离线同步任务为例。您也可以通过脚本模式配置离线同步任务,详情请参见通过脚本模式配置离线同步任务Elasticsearch Writer

  1. 进入DataWorks的数据开发页面。

    1. 登录DataWorks控制台

    2. 在左侧导航栏,单击工作空间

    3. 在目标工作空间的操作列,选择快速进入 数据开发

  2. 新建一个离线同步任务。

    1. 在左侧导航栏,单击image图标,选择新建 > 新建业务流程,新建一个业务流程。

      image

    2. 右键单击新建的业务流程,选择新建节点 > 离线同步

    3. 新建节点对话框中,输入节点名称,单击确认

  3. 配置网络与资源

    1. 数据来源区域,数据来源选择SQL Server,数据源名称选择待同步的数据源名称。

    2. 我的资源组区域,选择独享资源组。

    3. 数据去向区域,数据去向选择Elasticsearch,数据源名称选择待同步的数据源名称。

  4. 单击下一步。

  5. 配置任务。

    1. 数据来源区域,选择待同步的表。

    2. 数据去向区域,配置数据去向的各参数。

    3. 字段映射区域中,设置来源字段目标字段的映射关系。具体配置,请参见通过向导模式配置离线同步任务

    4. 通道控制区域,配置通道参数。

    详细配置信息,请参见通过向导模式配置离线同步任务

  6. 运行任务。

    1. (可选)配置任务调度属性。在页面右侧,单击调度配置,按照需求配置相应的调度参数。各配置的详细说明请参见调度配置

    2. 在节点区域的右上角,单击保存图标,保存任务。

    3. 在节点区域的右上角,单击提交图标,提交任务。

      如果您配置了任务调度属性,任务会定期自动执行。您还可以在节点区域的右上角,单击运行图标,立即运行任务。

      运行日志中出现Shell run successfully!表明任务运行成功。

步骤五:验证数据同步结果

  1. 登录目标阿里云Elasticsearch实例的Kibana控制台。具体操作,请参见登录Kibana控制台

  2. 单击Kibana页面左上角的图标,选择Dev Tools(开发工具)。

  1. Console(控制台)中,执行如下命令查看同步的数据。

    POST /dbo.students/_search?pretty
    {
       "query": { "match_all": {}}
    }
    说明

    dbo.students需要替换为您在配置DataWorks数据同步时设置的index字段的值。

    预期结果如下。预期结果