如果您需要对存储在PolarDB-X(原DRDS升级版)中的数据进行全文检索和语义分析等操作,可借助阿里云Elasticsearch实现。通过DataWorks的数据集成服务,实现最快分钟级,将海量PolarDB-X数据同步到阿里云ES中。
背景信息
DataWorks是一个基于大数据引擎,集成数据开发、任务调度、数据管理等功能的全链路大数据开发治理平台。您可以通过DataWorks的同步任务,快速的将各种数据源中的数据同步到阿里云ES。
-
支持同步的数据源包括:
-
阿里云云数据库(MySQL、PostgreSQL、SQL Server、MongoDB、HBase)
-
阿里云PolarDB-X(原DRDS升级版)
-
阿里云MaxCompute
-
阿里云OSS
-
阿里云Tablestore
-
自建HDFS、Oracle、FTP、DB2及以上数据库类型的自建版本
-
-
适用场景:
-
大数据离线同步到阿里云ES的场景,支持同步整个库或同步某个表中的全部数据。更多信息,请参见MySQL整库离线同步至Elasticsearch。
-
大数据在线实时同步到阿里云ES的场景,支持全量、增量一体化同步。更多信息,请参见MySQL整库实时同步至Elasticsearch。
-
前提条件
-
已创建PolarDB-X实例。具体操作,请参见。
-
已创建阿里云ES实例,并开启实例的自动创建索引功能。具体操作,请参见创建阿里云Elasticsearch实例和配置YML参数。
-
已创建DataWorks工作空间。具体操作,请参见创建工作空间。
-
仅支持将数据同步到阿里云ES,不支持自建Elasticsearch。
-
PolarDB-X实例、ES实例和DataWorks工作空间所在地域需保持一致。
-
PolarDB-X实例、ES实例和DataWorks工作空间需要在同一时区下,否则同步与时间相关的数据时,同步前后的数据可能存在时区差。
费用说明
操作步骤
步骤一:准备源数据
-
在阿里云PolarDB-X 1.0实例中插入数据。
具体操作步骤请参见执行SQL基本操作。本文使用的测试数据如下。

步骤二:购买并创建独享资源组
购买一个数据集成独享资源组,并为该资源组绑定专有网络和工作空间。独享资源组可以保证数据快速、稳定地传输。
-
登录DataWorks控制台。
-
在顶部菜单栏选择相应地域后,在左侧导航栏单击资源组。
-
在独享资源组页签下,单击。
-
在DataWorks独享资源(包年包月)购买页面,独享资源类型选择独享数据集成资源,输入资源组名称,单击立即购买,购买独享资源组。
更多配置信息,请参见步骤一:购买资源组。
-
在已创建的独享资源组的操作列,单击网络设置,为该独享资源组绑定专有网络。具体操作,请参见绑定专有网络。
说明本文以独享数据集成资源组通过VPC内网同步数据为例。关于通过公网同步数据,请参见添加白名单。
独享资源需要与PolarDB-X实例和Elasticsearch实例的专有网络连通才能同步数据,因此需要分别绑定PolarDB-X实例和Elasticsearch实例所在的专有网络、可用区和交换机。查看实例所在专有网络信息,请参见查看Elasticsearch实例的基本信息。
重要绑定专有网络后,您需要将专有网络的交换机网段加入到PolarDB-X、Elasticsearch实例的VPC私网访问白名单中。具体操作,请参见配置Elastic search实例公网或私网访问白名单。
-
在页面左上角,单击返回图标,返回资源组列表页面。
-
在已创建的独享资源组的操作列,单击绑定工作空间,为该独享资源组绑定目标工作空间。
具体操作,请参见步骤二:绑定归属工作空间。
步骤三:添加数据源
将PolarDB-X和Elasticsearch数据源接入DataWorks的数据集成服务中。
进入DataWorks的数据集成页面。
登录DataWorks控制台。
在左侧导航栏,单击工作空间。
在目标工作空间的操作列,选择。
-
在左侧导航栏,单击数据源。
-
新增PolarDB-X数据源。
-
在数据源列表页面,单击新增数据源。
-
在新增数据源页面,搜索并选择DRDS。
-
在新增DRDS数据源页面,配置数据源信息并测试连通性。连通成功后,单击完成。
更多信息,请参见配置DRDS数据源。
使用同样的方式添加Elasticsearch数据源。配置详情,请参见配置Elasticsearch数据源。
步骤四:配置并运行数据同步任务
数据离线同步任务将独享资源组作为一个可以执行任务的资源,独享资源组将获取数据集成服务中数据源的数据,并将数据写入Elasticsearch。
-
有两种方式可以配置离线同步任务,文本以向导模式配置离线同步任务为例。您也可以通过脚本模式配置离线同步任务,详情请参见脚本模式配置和Elasticsearch Writer。
-
本文以旧版数据开发(DataStudio)示例,创建离线同步任务。
-
进入DataWorks的数据开发页面。
-
登录DataWorks控制台。
-
在左侧导航栏,单击工作空间。
-
在目标工作空间的操作列,选择。
-
-
新建一个离线同步任务。
-
在左侧导航栏的数据开发单击(
图标)页签,选择,按照页面指引新建一个业务流程。 -
右键单击新建的业务流程,选择。
-
在新建节点对话框中,输入节点名称,单击确认。
-
-
配置网络与资源。
-
在数据来源区域,数据来源选择DRDS,数据源名称选择待同步的数据源名称。
-
在我的资源组区域,选择独享资源组。
-
在数据去向区域,数据去向选择Elasticsearch,数据源名称选择接受同步数据的数据源名称。
-
-
单击下一步。
-
配置任务。
-
在数据来源区域,选择待同步的表。
-
在数据去向区域,配置数据去向的各参数。
-
在字段映射区域中,设置来源字段与目标字段的映射关系。具体配置,请参见向导模式配置。
本示例中,来源字段保持默认,仅修改目标字段。在目标字段右侧,单击
图标,在对话框中输入如下字段配置。{"name":"Name","type":"text"} {"name":"Platform","type":"text"} {"name":"Year_of_Release","type":"date"} {"name":"Genre","type":"text"} {"name":"Publisher","type":"text"} {"name":"na_Sales","type":"float"} {"name":"EU_Sales","type":"float"} {"name":"JP_Sales","type":"float"} {"name":"Other_Sales","type":"float"} {"name":"Global_Sales","type":"float"} {"name":"Critic_Score","type":"long"} {"name":"Critic_Count","type":"long"} {"name":"User_Score","type":"float"} {"name":"User_Count","type":"long"} {"name":"Developer","type":"text"} {"name":"Rating","type":"text"} -
在通道控制区域,配置通道参数。
详细配置信息,请参见向导模式配置。
-
-
运行任务。
-
(可选)配置任务调度属性。在页面右侧,单击调度配置,按照需求配置相应的调度参数。各配置的详细说明请参见调度配置。
-
在节点编辑区域的上方,单击保存图标,保存任务。
-
在节点编辑区域的上方,单击提交图标,提交任务。
如果您配置了任务调度属性,任务会定期自动执行。您还可以在节点区域的右上角,单击运行图标,立即运行任务。
运行日志中出现
Shell run successfully!表明任务运行成功。
-
步骤五:查看数据同步结果
-
登录目标阿里云ES实例的Kibana控制台。
具体操作步骤请参见登录Kibana控制台。
-
在左侧导航栏,单击Dev Tools(开发工具)。
-
在Console(控制台)中,执行如下命令,查询目标端数据量。
说明您可以将目标端数据量与源端数据量进行对比,确认数据是否全部同步成功。
GET drdstest/_search { "query": { "match_all": {} } }执行成功后,结果如下。

-
执行如下命令,对指定字段进行数据检索。
GET drdstest/_search { "query": { "term": { "Publisher.keyword": { "value": "Nintendo" } } } }执行成功后,返回如下结果。
