全部产品
Search
文档中心

智能开放搜索 OpenSearch:PolarDB数据源配置

更新时间:Mar 27, 2024

云数据库PolarDB是阿里云对外提供的一种即开即用、稳定可靠、可弹性伸缩的在线数据库服务(了解PolarDB)。

购买PolarDB前须知

  • OpenSearch目前支持PolarDB for mysql5.6、5.7、8.0。

  • PolarDB集群必须隶属于当前登录阿里云账号才能访问使用。

  • PolarDB集群所在区域必须与OpenSearch应用区域一致。

  • PolarDB集群创建后,binlog默认是关闭的,会导致数据源注册失败,因此需要开启。开启方式为:loose_polar_log_bin默认为OFF,需设置为ON_WITH_GTID;binlog_row_image默认为FULL,不需要变更。

  • 支持clone实例。

  • 需要PolarDB集群设置为读写集群。

支持功能

  • 支持(手动/定时)拉取指定数据库表全量。

  • 支持单个或多个数据源表数据横向合并,要求这些源表结构及数据源插件配置必须完全相同,并且主键值均不重复(主键值重复会覆盖),主要支持以下2种场景:

    • 应用表中配有一个数据源,并且包含多个源表。

    • 应用表中配有多个数据源,并且各数据源包含1个或多个源表。

  • 支持数据源字段转换插件。

  • 支持的数据同步方式

  • 支持(全量)过滤条件。

  • 支持通过通配符*匹配数据库表名。

重要
  • 当您选择“自动同步”作为数据同步方式时,将启用 OpenSearch 提供的内部服务来订阅数据库的 binlog,并同步增量数据。请注意,如果发生用户端的变更操作,如删除数据库表、变更访问权限、清理 binlog 日志或修改数据库密码等,可能会导致 OpenSearch 无法成功订阅并同步所配置表的 binlog。在这种情况下,由于增量数据无法同步,OpenSearch 将不承担任何责任。用户应确保在进行此类操作前已经完全了解可能产生的影响,并采取必要的预防措施;

  • 若配置了RDS/PolarDB数据源,并且同步方式选择自动同步,OpenSearch将尽力保障同步服务的稳定性但不保障同步的延迟,如果对同步延迟比较敏感的业务建议同步方式采用DTS数据订阅实例(DTS实时同步

相关限制

  • 只支持PolarDB集群的binlog为full模式。开启方式为:loose_polar_log_bin默认为OFF,需设置为ON_WITH_GTID;binlog_row_image默认为FULL,不需要变更。

  • 目前只支持PolarDB mysql5.6、5.7、8.0。

  • PolarDB集群必须隶属于当前登录阿里云账号才能访问。

  • PolarDB集群所在区域必须与OpenSearch应用区域一致。

  • 标准版应用在配置PolarDB数据源后,不支持(SDK/API)推送增量。

  • 标准版应用的PolarDB数据源,暂不支持数据源过滤条件。

  • 不支持replace into语法。

  • 不支持truncatedrop命令,请使用delete命令删除数据。

  • PolarDB 访问密码不能包含%符号,会导致索引重建任务失败。

  • 不支持在不同数据库源表结构之间做字段列合并。

  • loose_max_statement_time和connect_timeout建议都设置为0,等索引重建或线下变更触发全量同步完成之后,可以再修改为正常值。

注意事项

  • 如果是drds后挂数据源(RDS/PolarDB)接入到opensearch,则需要在数据源配置的时候,配置drds下的实际分库的库名(drds下的数据库会被分成一个影子库和8个分库实际分库,写入数据会随机写入到分库实际分库中)。

  • PolarDB集群支持内/外网的域名切换,OpenSearch对PolarDB数据获取均不收取任何流量费用。

  • OpenSearch仅支持从主库拉取全量数据,建议根据您的业务繁忙情况,选择低峰期索引重建导入全量数据。

  • PolarDB集群表中datetimetimestamp此类时间类型,系统会自动转化为毫秒数,请将对应应用表字段类型设置为TIMESTAMP

  • 不符合数据源过滤条件的(全量)文档会被过滤,并且如果对应应用表中存在相同主键值的文档也会删除。

  • 数据源侧长时间(15天及以上)没有增量数据,可能会导致数据同步异常,如遇此情况请手动操作线下变更即可解决。

  • 如果PolarDB开启了SSL证书加密,一定要保证证书有效期没有过期,如果过期了,会导致连接异常,请及时更新SSL证书有效期。

  • 青岛区域不支持配置polardb数据源。

  • 通过OpenSearch同步PolarDB数据源数据时,需要将OpenSearch服务器的IP地址段加入到PolarDB对应的安全设置中,各区域的IP白名单可参考如下列表:

    地域

    IP地址

    杭州

    100.104.190.128/26,100.104.241.128/26

    北京

    100.104.16.192/26,100.104.179.0/26

    上海

    100.104.37.0/26,100.104.46.0/26

    深圳

    100.104.87.192/26,1100.104.132.192/26

    张家口

    100.104.155.192/26,100.104.238.64/26

    德国

    100.104.127.0/26,100.104.35.192/26

    美国

    100.104.193.128/26,100.104.119.128/26

    新加坡

    100.104.58.192/26,100.104.74.192/26

账号授权问题

  • PolarDB接入时,需要授权访问集群。并且填写账号密码, 初次接入时,请谨慎选择账号密码。

  • 【确保账号权限】必须确保账号能有查看该库所有表的权限(上游DTS服务的限制), 保证能正确执行 show create table *. *,如果没有。可能会发生实时服务同步出现问题。

  • 【少做账号权限变更】账号变更会带来当前实时任务的不能正常消费。同时新版本创建也会受影响。若变更账号密码,需要删除实例重新接入库。

常见问题

  • 如果配置PolarDB数据源后,索引重建出现卡住的现象,请在数据表所在的库中创建一个测试表,并且每分钟写入或更新1~2条数据,保证您在索引重建时有连续的binlog产生。

  • 如果高级版应用PolarDB集群期间欠过费,但后续有将欠费补上,可以直接触发一次手动索引重建。

  • PolarDB集群访问密码不能包含%符号,否则会导致索引重建任务失败。(报错提示: Illegal hex characters in escape (%) pattern)。

  • 系统要求应用表主键值不重复,如果分表情况下主键值有重复会覆盖,可使用StringCatenateExtractor数据源插件合并多个字段值,来源字段为pk,$table(pk替换为PolarDB集群表主键字段,$table为默认系统变量,表示对应数据库表名),拼接字符为-(可自定义)。

例如,PolarDB集群表为my_table_0,主键字段值为123456,拼接后新主键值为123456-my_table_0

  • 根据数据库表中的datedatetime字段类型过滤数据,假设数据库表字段名为createtime,则数据源过滤条件中的时间格式必须为 createtime>'2018-03-01 00:00:00',如果使用 createtime>'2018-3-1 00:00:00'这种格式会报错。

配置PolarDB数据源

控制台配置步骤及注意事项

1.创建或修改应用时,在第三步数据源中,添加数据源或编辑,选择PolarDB数据源,点击新建数据库

1

2.PolarDB数据源信息填写完成后,点击连接按钮。

2

参数名称

说明

集群ID

PolarDB集群ID,可以在PolarDB控制台中获取(大小写敏感),需填写的集群ID格式参考:pc-uf6c056ny9tiaj1l7

数据库名

该实例下需要连接的数据库名(大小写不敏感)。

用户名

数据库账号,用于获取数据库表模式及全量数据(大小写敏感)。

密码

账号对应的密码。

OpenSearch会尝试连接,并根据具体情形,给出结果提示:

提示信息

处理方法

当前用户的当前区域没有此PolarDB集群

请检查集群ID是否正确,并确保PolarDB集群所在区域与OpenSearch应用区域一致。如果条件符合仍然报错,可提工单反馈

连接数据库服务失败

请检查PolarDB连接串是否正确包括集群ID、数据库名、用户名、密码

当前PolarDB集群下没有此表

请检查表名填写是否正确,以及PolarDB数据库中是否确实存在该表

配置PolarDB集群配置项问题

前往PolarDB控制台 参数配置 页面修改相应配置项目后,进行重试

3.PolarDB数据源信息连接后,选择数据表。已建立数据源连接界面如下,选择对应表,点击确定。

3

  • 选择或输入该数据库下需要访问的表名(大小写敏感)。

  • 支持分表规则 table_* 的方式,例如 table_a、table_b 等。

4.若连接成功,则进行字段配置,OpenSearch会自动获取表字段。数据源插件说明,请数据源插件说明查看。

4

5.配置PolarDB数据源过滤条件(标准版不支持),配置好数据源后点击提交,完成应用结构配置。

1

  • OpenSearch应用表中也可配置多个数据源,但最终这些表结构及配置必须完全相同。

  • PolarDB数据源配置的过滤条件只能拉取符合该条件的记录,详细配置请参考数据源过滤条件(RDS/PolarDB)