当您的业务数据存储在PolarDB-X(原DRDS升级版)中,需要进行全文检索和语义分析时,可借助阿里云Elasticsearch实现。本文介绍如何通过DataWorks,将PolarDB-X中的数据离线同步至Elasticsearch,并进行检索分析。
背景信息
PolarDB-X是由阿里巴巴自主研发的云原生分布式数据库,融合分布式SQL引擎DRDS与分布式自研存储X-DB,基于云原生一体化架构设计,可支撑千万级并发规模及百PB级海量存储。专注解决海量数据存储、超高并发吞吐、大表瓶颈以及复杂计算效率等数据库瓶颈问题,历经各届天猫双十一及阿里云各行业客户业务的考验,助力企业加速完成业务数字化转型,详情请参见PolarDB-X产品概述。
阿里云Elasticsearch兼容开源Elasticsearch的功能,以及Security、Machine Learning、Graph、APM等商业功能,致力于数据分析、数据搜索等场景服务。支持5.5.3、6.3.2、6.7.0、6.8.0、7.4.0和7.7.1等版本,并提供了商业插件X-Pack服务。在开源Elasticsearch的基础上提供企业级权限管控、安全监控告警、自动报表生成等功能,详情请参见什么是阿里云Elasticsearch。
操作流程
- 准备工作准备同一专有网络VPC(Virtual Private Cloud)下的阿里云PolarDB-X实例和Elasticsearch实例、在PolarDB-X实例中准备待同步的数据、开通DataWorks的数据集成和数据开发服务。说明 建议您在同一VPC下进行数据同步,这样可以提高同步任务的稳定性。
- 步骤一:购买并创建独享资源组在DataWorks中,购买并创建独享资源组。为确保网络互通,您还需要为独享资源组绑定PolarDB-X实例所在的专有网络。说明 独享资源组可以保障数据快速、稳定地传输。
- 步骤二:添加数据源在DataWorks中,创建DRDS和Elasticsearch数据源。
- 步骤三:配置并运行数据同步任务通过向导模式配置数据同步任务,将数据集成系统同步成功的数据存储到Elasticsearch中。将独享资源组作为一个可以执行任务的资源,注册到DataWorks的数据集成服务中。这个资源组将获取数据源的数据,并执行将数据写入Elasticsearch中的任务(该任务将由数据集成系统统一下发)。
- 步骤四:查看数据同步结果在Elasticsearch实例的Kibana控制台中,查看同步成功的数据量,并对指定字段进行数据检索。
准备工作
- 创建阿里云PolarDB-X 1.0实例、构建数据库和表,并插入数据。具体操作步骤请参见PolarDB-X快速入门。本文使用的测试数据如下。重要 数据库创建完成后,默认允许所有IP地址访问。出于数据安全考虑,建议仅将待访问机器的IP地址加入白名单,详情请参见设置白名单。
- 创建DataWorks工作空间。具体操作步骤请参见创建工作空间。创建时,所选地域需要与阿里云PolarDB-X实例所在地域保持一致。
- 创建阿里云Elasticsearch实例,并开启自动创建索引功能。具体操作请参见创建阿里云Elasticsearch实例和快速访问与配置。创建实例时,所选专有网络和虚拟交换机需要与PolarDB-X实例保持一致。
步骤一:购买并创建独享资源组
- 登录DataWorks控制台。
- 选择相应地域后,在左侧导航栏,单击资源组列表。
- 参见新增和使用独享数据集成资源组,购买独享数据集成资源。重要 购买时,所选地域需要与目标工作空间保持一致。
- 参见新增和使用独享数据集成资源组,创建一个独享数据集成资源。本文使用的配置如下,其中资源组类型选择独享数据集成资源组。
- 单击已创建的独享资源组右侧的专有网络绑定,参见绑定专有网络,为该独享资源组绑定专有网络。独享资源部署在DataWorks托管的专有网络中,需要与PolarDB-X和Elasticsearch实例的专有网络连通才能同步数据,因此在绑定专有网络时,需要选择PolarDB-X实例所在专有网络和交换机。
- 单击已创建的独享资源组右侧的修改归属工作空间,为该独享资源组绑定目标工作空间。具体操作,请参见新增和使用独享数据集成资源组。
步骤二:添加数据源
- 进入DataWorks的数据集成页面。
- 在DataWorks控制台的左侧导航栏,单击工作空间列表。
- 找到目标工作空间,单击其右侧操作列下的数据集成。
- 在左侧导航栏,单击数据源。
- 在数据源管理页面,单击新增数据源。
- 在新增数据源对话框中,单击DRDS。
- 在新增DRDS数据源对话框中,填写数据源信息并测试连通性。连通成功后,单击完成。
- 使用同样的方式,添加Elasticsearch数据源。
步骤三:配置并运行数据同步任务
- 在DataWorks的数据开发页面,新建一个业务流程。具体操作步骤请参见创建业务流程。
- 新建一个离线同步任务。
- 展开新建的业务流程,右键单击数据集成,选择 。
- 在新建节点对话框中,输入节点名称,单击提交。
- 在选择数据源区域中,将数据来源指定为DRDS数据源,并填入待同步的表名称;将数据去向指定为Elasticsearch数据源,并填入索引名和索引类型。说明
- 您也可以使用脚本模式配置数据同步,详情请参见通过脚本模式配置离线同步任务、DRDS Reader和Elasticsearch Writer。
- 建议在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"}
配置完成后,效果如下。 - 在通道控制区域中,配置执行任务的相关参数。
- 配置任务调度属性。
- 配置执行同步任务所使用的资源组。
- 在页面右侧,单击数据集成资源组配置。
- 选择独享数据集成资源组为您创建的独享资源组。
- 提交任务。
- 保存当前配置,单击
图标。
- 在提交新版本对话框中,填入备注。
- 单击确认。
- 保存当前配置,单击
- 单击
图标,运行任务。
步骤四:查看数据同步结果
- 登录目标阿里云Elasticsearch实例的Kibana控制台。具体操作步骤请参见登录Kibana控制台。
- 在左侧导航栏,单击Dev Tools。
- 在Console中,执行如下命令,查询目标端数据量。说明 您可以将目标端数据量与源端数据量进行对比,确认数据是否全部同步成功。
GET drdstest/_search { "query": { "match_all": {} } }
执行成功后,结果如下。 - 执行如下命令,对指定字段进行数据检索。
GET drdstest/_search { "query": { "term": { "Publisher.keyword": { "value": "Nintendo" } } } }
执行成功后,返回如下结果。