本文介绍RDS数据源配置步骤及注意事项。
RDS数据源配置
云数据库(Relational Database Service,即关系型数据库服务,简称RDS)是阿里云对外提供的一种即开即用、稳定可靠、可弹性伸缩的在线数据库服务( 了解RDS )。
购买RDS前须知
-
OpenSearch目前支持RDS for MySQL(支持版本5.5,5.6,5.7,8.0)。
-
购买RDS实例时,必须是常规实例,双机高可用版,RDS MySQL基础版和三节点企业版为非高可用版,不支持。
-
RDS实例必须隶属于当前登录的阿里云账号,且所在区域与OpenSearch应用区域一致才能访问使用。
-
当RDS为高可用版时支持RDS clone实例。
-
不支持的RDS实例及不满足相关限制的RDS实例索引重建将会失效。
-
RDS数据源只支持VPC网络。
-
不支持DRDS数据源。
-
授权:对OpenSearch获取RDS数据做授权操作,在用户设置了IP白名单的情况下,OpenSearch会将所用IP添加到用户白名单中。若不勾选授权,则连接数据不会高亮显示。
支持功能
-
支持(手动/定时索引重建)拉取指定数据库表全量。
-
支持单个或多个数据源表数据横向合并,要求这些源表结构及数据源插件配置必须完全相同,并且主键值均不重复(主键值重复会覆盖),主要支持以下2种场景:
-
应用表中配有一个数据源,并且包含多个源表。
-
应用表中配有多个数据源,并且各数据源包含1个或多个源表。
-
-
支持数据源字段转换插件。
-
支持的数据同步方式:
-
自动同步。
-
自购DTS实时同步。
-
不自动同步。
-
-
支持(全量)过滤条件。
-
支持通过通配符
*匹配数据库表名。
-
当您选择“自动同步”作为数据同步方式时,将启用 OpenSearch 提供的内部服务来订阅数据库的 binlog,并同步增量数据。请注意,如果发生用户端的变更操作,如删除数据库表、变更访问权限、清理 binlog 日志或修改数据库密码等,可能会导致 OpenSearch 无法成功订阅并同步所配置表的binlog。在这种情况下,由于增量数据无法同步,OpenSearch 将不承担任何责任。用户应确保在进行此类操作前已经完全了解可能产生的影响,并采取必要的预防措施。
-
同步方式选择自动同步,OpenSearch将尽力保障同步服务的稳定性但不保障同步的延迟,如果对同步延迟比较敏感的业务建议同步方式采用DTS数据订阅实例(DTS实时同步)。
相关限制
-
只支持RDS的binlog为full模式。
-
仅支持RDS高可用系列和集群系列。
-
支持的RDS的数据库版本5.5/5.6/5.7/8.0。
-
5.6版本的RDS,建议合理调大参数loose_max_execution_time、loose_max_statement_time的阈值,以免在索引重建时报错类似错误:Query execution was interrupted, max_statement_time exceeded。
-
RDS实例必须隶属于当前登录的阿里云账号,且所在区域与OpenSearch应用区域一致才能访问使用。
-
标准版应用在配置RDS数据源后,不支持(SDK/API)推送增量。
-
(外网区域)标准版应用的RDS数据源,暂不支持数据源过滤条件。
-
不支持replace into语法。
-
不支持truncate和drop命令,请使用delete命令删除数据。
-
当RDS为高可用版时支持RDS clone实例。
-
RDS 访问密码不能包含
%符号,会导致索引重建任务失败。 -
不支持通过RDS高权限账号访问。(否则连接RDS会失败)。
-
不支持在不同数据库源表结构之间做字段列合并。
-
不支持无binlog的replica client 和 replica slave,检查及开启方式,请点击查看文档。
注意事项
-
支持通过内网或外网访问RDS,OpenSearch对RDS数据获取均不收取任何流量费用。
-
OpenSearch仅支持从主库拉取全量数据,建议根据您的业务繁忙情况,选择低峰期索引重建导入全量数据。
-
RDS表中datetime及timestamp此类时间类型,系统会自动转化为毫秒数,请将对应应用表字段类型设置为TIMESTAMP。
-
RDS地址默认开启,外网需要手动申请,外网地址申请通过后才能通过外网访问。
-
不符合数据源过滤条件的(全量)文档会被过滤,并且如果对应应用表中存在相同主键值的文档也会一并删除。
-
通过OpenSearch同步RDS数据源数据时,需要将OpenSearch服务器的IP地址段加入到RDS白名单中,各区域的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,100.104.132.192/26
青岛
100.104.240.128/26,100.104.111.128/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
账号授权问题
MySQL5.7/8.0 接入和使用建议:
-
MySQL5.7+ 接入时,需要授权访问RDS实例。并且填写账号密码,初次接入时,请谨慎选择账号密码。
-
【确保账号权限】必须确保账号能有查看该库所有表的权限(上游DTS服务的限制), 保证能正确执行 show create table
*. *,如果没有。可能会发生实时服务同步出现问题。 -
【少做账号权限变更】当前OpenSearch实时任务也是MySQL的客户端。账号变更会带来当前实时任务的不能正常消费。同时新版本创建也会受影响。若变更账号密码,需要删除实例重新接入库。
-
OpenSearch需要用户RDS的最小权限是:
-
show create table权限。
-
REPLICATION SLAVE 或 REPLICATION CLIENT权限。
-
binlog_row_image为FULL。
-
binlog_format 为ROW。
-
常见问题
-
使用RAM子账号在控制台中为应用配置RDS数据源,必须要对该RAM子账号进行授权,否则会提示连接RDS服务失败,请稍后再试,参考 RAM(子账号)的创建及授权文档(确保主账号有创建OpenSearch服务关联角色)。
-
RDS访问密码不能包含
%符号,否则会导致索引重建任务失败。(报错提示: Illegal hex characters in escape (%) pattern)。 -
系统要求应用表主键值不重复,如果分表情况下主键值有重复会覆盖,可使用StringCatenateExtractor数据源插件合并多个字段值,来源字段为
pk,$table(pk替换为RDS表主键字段,$table为默认系统变量,表示对应数据库表名,$table需要配置通配符分表时才可以用),拼接字符为-(可自定义)。例如,RDS表为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'这种格式会报错。
配置RDS数据源流程
控制台配置步骤及注意事项
-
选择RDS数据源,点击新建数据库。

-
RDS信息填写完成后,点击连接按钮。

参数名称
说明
实例ID
RDS数据库的实例ID(不是名称),可以在RDS控制台中获取(大小写敏感),暂不支持只读实例,需填写的实例ID格式参考: rm-bp19b4g5n11111111
数据库名
该实例下需要连接的数据库名(大小写不敏感)。
用户名
数据库只读用户名,用于获取数据库表模式及全量数据(大小写敏感且具有只读权限)。
密码
只读用户名对应的密码。
OpenSearch会尝试连接,并根据具体情形,给出结果提示:
提示信息
处理方法
当前用户的当前区域没有此RDS实例
请检查实例ID是否正确,并确保RDS实例所在区域与OpenSearch应用区域一致。如果条件符合仍然报错,可提工单反馈
连接RDS服务失败
请检查RDS连接串是否正确包括实例ID、数据库名、用户名、密码
当前RDS数据库下没有此表
请检查表名填写是否正确,以及RDS数据库中是否确实存在该表
-
已建立数据源连接界面如下,选择对应表,并单击向右箭头,保存到右侧已选择界面。

-
选择或输入该数据库下需要访问的表名(大小写敏感)。
-
支持分表规则 table_* 的方式,例如 table_a、table_b 等。
-
-
字段映射,选择需要拉取的数据库字段。单击确定,完成应用创建。

-
在该界面可以添加需要映射同步的数据库字段。
-
在该界面中的内容转换,可以添加数据源插件,插件的使用及说明文档,请点击此处。

-
-
配置RDS数据源过滤条件。

-
OpenSearch应用表中也可配置多个数据源,但最终这些表结构及配置必须完全相同。
-
RDS数据源配置的过滤条件只能拉取符合该条件的记录,详细配置请参考数据源过滤条件。
-
