当您在使用PolarDB-X(DRDS),需要进行全文检索和语义分析时,可将PolarDB-X中的数据同步至阿里云Elasticsearch进行查询分析。阿里云Elasticsearch是一个基于Lucene的实时分布式的搜索与分析引擎,可近乎于准实时地存储、查询和分析超大数据集。您可以通过Logstash和DataWorks两种方式将PolarDB-X中的数据同步至阿里云Elasticsearch。本文介绍各同步方案适用的场景,帮助您根据业务选择合适的方案同步数据。

同步方案 原理说明 适用场景 使用限制 相关文档
Logstash JDBC数据同步 通过logstash-input-jdbc插件实现通过Logstash批量查询PolarDB-X中的数据,并将数据迁移到Elasticsearch。实现的本质是该插件会定期对PolarDB-X中的数据进行循环轮询,从而在当前循环中找到上次插入或更改的记录,然后批量查询这些记录并迁移至Elasticsearch。
  • 同步全量数据,接受秒级延迟的场景。
  • 批量查询数据然后进行同步的场景。
  • 使用前,需要先在Logstash中上传与PolarDB-X版本兼容的SQL JDBC驱动。
  • 需要在PolarDB-X的白名单中加入Logstash集群中节点的IP地址。
  • 需要确保Logstash和PolarDB-X实例在同一时区(避免同步过程中出现时间标记不符的情况)。
  • 需要确保Elasticsearch中的_id字段与PolarDB-X中的_id字段相同。
  • 当您在PolarDB-X中插入或更新数据时,需要确保对应记录有一个包含更新或插入时间的字段。
通过Logstash将PolarDB-X(DRDS)数据同步至Elasticsearch
DataWorks实现离线数据同步 DataWorks是一款提供数据集成、数据开发及数据质量等全方位的产品服务。支持引入并存储关系型数据,然后进行转化和开发,最后将处理后的数据同步到Elasticsearch或其他数据系统。
  • 大数据离线同步场景(可实现最快5分钟一次的离线数据采集任务)。
  • 需要自定义查询语句,以及多表联合查询后同步数据的场景。
  • 同步整个数据库中数据的场景。
  • 需要开通DataWorks服务。
  • 对于传输速度要求较高或复杂环境中的数据源同步场景,需要自定义资源组。
  • 需要在PolarDB-X的白名单中添加资源组的IP地址。
通过DataWorks将PolarDB-X(DRDS)数据离线同步至Elasticsearch