云数据库POLARDB是阿里云对外提供的一种即开即用、稳定可靠、可弹性伸缩的在线数据库服务(了解POLARDB)。
购买POLARDB前须知
- OpenSearch目前仅支持POLARDB for mysql5.6
- Polardb集群必须隶属于当前登录阿里云账号才能访问使用。
- Polardb集群所在区域必须与OpenSearch应用区域一致。
- Polardb集群创建后,binlog默认是关闭的,会导致数据源注册失败,因此需要开启。开启方式为:loose_polar_log_bin默认为OFF,需设置为ON_WITH_GTID;binlog_row_image默认为FULL,不需要变更。
- 支持clone实例。
- 需要Polardb集群设置为读写集群。
支持功能
- 支持增量实时同步(默认勾选)。
- 支持(手动/定时)拉取指定数据库表全量。
- 支持单个或多个数据源表数据横向合并,要求这些源表结构及数据源插件配置必须完全相同,并且主键值均不重复(主键值重复会覆盖),主要支持以下2种场景:
- 应用表中配有一个数据源,并且包含多个源表。
- 应用表中配有多个数据源,并且各数据源包含1个或多个源表。
- 支持数据源字段转换插件。
- 支持(全量/增量)过滤条件。
- 支持通过通配符
*
匹配数据库表名。
相关限制
- 只支持Polardb集群的binlog为full模式, 否则将导致拉取增量不全。开启方式为:loose_polar_log_bin默认为OFF,需设置为ON_WITH_GTID;binlog_row_image默认为FULL,不需要变更。
- 目前只支持polardb mysql5.6。
- Polardb集群必须隶属于当前登录阿里云账号才能访问。
- Polardb集群所在区域必须与OpenSearch应用区域一致。
- 标准版应用在配置Polardb数据源后,不支持(SDK/API)推送增量。
- 标准版应用的Polardb数据源,暂不支持数据源过滤条件。
- 不支持replace into语法。
- 不支持truncate和drop命令,请使用delete命令删除数据。
- 不支持通过视图同步增量。
- Polardb 访问密码不能包含
%
符号,会导致索引重建任务失败。 - 不支持在不同数据库源表结构之间做字段列合并。
注意事项
- Polardb集群支持内/外网的域名切换,OpenSearch对Polardb数据获取均不收取任何流量费用。
- OpenSearch仅支持从主库拉取全量数据,建议根据您的业务繁忙情况,选择低峰期索引重建导入全量数据。
- Polardb集群表中datetime及timestamp此类时间类型,系统会自动转化为毫秒数,请将对应应用表字段类型设置为TIMESTAMP。
- 不符合数据源过滤条件的(增量/全量)文档会被过滤,并且如果对应应用表中存在相同主键值的文档也会删除。
账号授权问题
• polordb接入时,需要授权访问集群。并且填写账号密码, 第一次接入时,请谨慎选择账号密码。
• 【确保账号权限】必须确保账号能有查看该库所有表的权限(上游dts服务的限制), 保证能正确执行 show create table *
. *,如果没有。可能会发生实时服务同步出现问题。
• 【少做账号权限变更】账号变更会带来当前实时任务的不能正常消费。同时新版本创建也会受影响。若变更账号密码,需要删除实例重新接入库。
常见问题
- 如果高级版应用Polardb集群期间欠过费,但后续有将欠费补上,可以直接触发一次手动索引重建,新版本可以正常同步增量。
- Polardb集群访问密码不能包含
%
符号,否则会导致索引重建任务失败。
(报错提示: Illegal hex characters in escape (%) pattern)。 - 系统要求应用表主键值唯一,如果分表情况下主键值有重复会覆盖,可使用StringCatenateExtractor数据源插件合并多个字段值,来源字段为
pk,$table
(pk替换为Polardb集群表主键字段,$table为默认系统变量,表示对应数据库表名),拼接字符为-
(可自定义)。
例如,Polardb集群表为my_table_0
,主键字段值为123456
,拼接后新主键值为123456-my_table_0
。
- 根据数据库表中的date或datetime字段类型过滤数据,假设数据库表字段名为createtime,则数据源过滤条件中的时间格式必须为
createtime>'2018-03-01 00:00:00'
,如果使用 createtime>'2018-3-1 00:00:00'
这种格式会报错。
配置Polardb数据源
- 在创建应用过程,配置Polardb数据源。
- 已创建应用可通过应用数据源界面修改,或通过修改应用结构流程进行修改。
控制台配置步骤及注意事项
1.创建或修改应用时,在第三步数据源中,添加数据源或编辑,选择Polardb数据源,点击新的数据库。
2.Polardb数据源信息填写完成后,点击连接按钮。


参数名称 |
说明 |
集群ID |
Polardb集群ID,可以在Polardb控制台中获取(大小写敏感),需填写的集群ID格式参考:pc-uf6c056ny9tiaj1l7 |
数据库名 |
该实例下需要连接的数据库名(大小写不敏感)。 |
用户名 |
数据库账号,用于获取数据库表模式及全量数据(大小写敏感)。 |
密码 |
帐号对应的密码。 |
授权 |
完成跨云服务授权时点击“去完成RAM授权”即可。 |
OpenSearch会尝试连接,并根据具体情形,给出结果提示:
提示信息 |
处理方法 |
当前用户的当前区域没有此Polardb集群 |
请检查集群ID是否正确,并确保Polardb集群所在区域与OpenSearch应用区域一致。如果条件符合仍然报错,可提工单反馈 |
连接数据库服务失败 |
请检查Polardb连接串是否正确包括集群ID、数据库名、用户名、密码 |
当前Polardb集群下没有此表 |
请检查表名填写是否正确,以及Polardb数据库中是否确实存在该表 |
配置Polardb集群配置项问题 |
前往Polardb控制台 参数配置 页面修改相应配置项目后,进行重试 |
3.已建立数据源连接界面如下,选择对应表,点击确定。

- 选择或输入该数据库下需要访问的表名(大小写敏感)。
- 支持分表规则 table_* 的方式,例如 table_a、table_b 等。
4.若连接成功,则进行字段配置,OpenSearch会自动获取表字段。

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

- OpenSearch应用表中也可配置多个数据源,但最终这些表结构及配置必须完全相同。
- OpenSearch的全量数据过滤方式为,将过滤条件直接增加在SQL语句的where条件中。 如果应用无需使用增量数据,过滤条件数值部分可以替换为表达式,与数据库中支持的表达式一致。
- Polardb数据源配置的过滤条件只能拉取符合该条件的记录。
例:配置了status=1的过滤条件后,Polardb中某一条原先status=1的文档改为了status=2,那么此时这条文档会在OpenSearch中被删除。
参数名称 |
说明 |
过滤条件 |
需填写数据库表字段,该过滤条件会同时作用于全量和增量数据(如果开启同步)。 支持如下格式:数据库字段 user_id(<、>、<=、>=、=、!=) 数值。 多个过滤条件之间AND关系,必须要使用英文逗号(,)分隔,表示且的关系(暂不支持或关系)。例如当过滤条件为 user_id=1,level=1 时,则只能拉取符合该条件的记录。 同步过来的增量文档,若不符合过滤条件,会删除应用中已存在的对应文档。 如果需要根据db表中的date或datetime字段进行过滤,假设db字段名为createtime,则数据源过滤条件中的时间格式必须需为 createtime>'2018-03-01 00:00:00' |
数据自动同步 |
是否自动同步用户数据库的增量数据(默认开启)。 |
在文档使用中是否遇到以下问题
更多建议
匿名提交