全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 智能硬件
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 更多
开放搜索

RDS数据源配置

更新时间:2018-06-13 10:06:44

云数据库(Relational Database Service,即关系型数据库服务,简称RDS)是阿里云对外提供的一种即开即用、稳定可靠、可弹性伸缩的在线数据库服务(了解RDS )。

购买RDS前须知

  • 购买RDS实例时,建议选择5.6版,并且必须是常规实例,双机高可用版(不支持5.2以下,5.7及以上版本)。
  • RDS实例必须隶属于当前登录阿里云账号才能访问使用。
  • RDS实例所在区域必须与OpenSearch应用区域一致。
  • 不支持RDS clone实例,否则应用激活后状态一直处于初始化。

温馨提示:

  • 外网区域:华东1、华东2、华北1、华北2、华南1 等,不支持DRDS数据源。

支持功能

  • 支持增量实时同步(默认勾选)。
  • 支持(手动/定时)拉取指定数据库表全量。
  • 支持单个或多个数据源表数据横向合并,要求这些源表结构及数据源插件配置必须完全相同,并且主键值均不重复(主键值重复会覆盖),主要支持以下2种场景:
    • 应用表中配有一个数据源,并且包含多个源表。
    • 应用表中配有多个数据源,并且各数据源包含1个或多个源表。
  • 支持数据源字段转换插件。
  • 新老高级版的RDS数据源,支持(全量/增量)过滤条件。
  • 支持通过通配符*匹配数据库表名。

相关限制

  • 只支持RDS的binlog为full模式(否则拉取增量会不全)。
  • 只支持RDS中的Mysql常规实例 (双机高可用版)。
  • 不支持5.2以下,5.7及以上的RDS版本。
  • RDS实例必须隶属于当前登录阿里云账号才能访问。
  • RDS实例所在区域必须与OpenSearch应用区域一致。
  • 标准版应用在配置RDS数据源后,不支持(SDK/API)推送增量。
  • (外网区域)标准版应用的RDS数据源,暂不支持数据源过滤条件。
  • 不支持replace into语法。
  • 不支持truncatedrop命令,请使用delete命令删除数据。
  • 不支持通过视图同步增量。
  • 不支持RDS clone实例,否则应用激活后状态一直处于初始化。
  • RDS 访问密码不能包含%符号,会导致索引重建任务失败。
  • 不支持通过RDS高权限账号访问。(否则连接RDS会失败)。
  • 不支持在不同数据库源表结构之间做字段列合并。

注意事项

  • RDS支持内/外网的域名切换,OpenSearch对RDS数据获取均不收取任何流量费用。
  • OpenSearch仅支持从主库拉取全量数据,建议根据您的业务繁忙情况,选择低峰期索引重建导入全量数据。
  • RDS表中datetimetimestamp此类时间类型,系统会自动转化为毫秒数,请将对应应用表字段类型设置为INT。
  • 外网区域RDS实例,需要申请内网地址后才能访问,否则会提示连接RDS服务失败,请稍后再试
  • 不符合数据源过滤条件的(增量/全量)文档会被过滤,并且如果对应应用表中存在相同主键值的文档也会一并删除。

常见问题

  • 使用RAM子账号在控制台中为应用配置RDS数据源,必须要对该RAM子账号进行授权,否者会提示连接RDS服务失败,请稍后再试,参考 授权访问鉴权规则 文档。
  • 如果老高级版应用RDS实例期间欠过费,但后续有将欠费补上,您需要向我们提工单反馈做下处理,否则后续增量将无法同步(如果是标准版/新高级版应用,您可以通过触发一次索引重建,新应用版本可以正常同步增量)。
  • RDS访问密码不能包含%符号,否则会导致索引重建任务失败
    (报错提示: Illegal hex characters in escape (%) pattern)。
  • 系统要求应用表主键值唯一,如果分表情况下主键值有重复会覆盖,可使用StringCatenateExtractor数据源插件合并多个字段值,来源字段为pk,$table(pk替换为RDS表主键字段,$table为默认系统变量,表示对应数据库表名),拼接字符为-(可自定义)。
    例如,RDS表为my_table_0,主键字段值为123456,拼接后新主键值为123456-my_table_0
  • 根据数据库表中的datedatetime字段类型过滤数据,假设数据库表字段名为createtime,则数据源过滤条件中的时间格式必须为 createtime>'2018-03-01 00:00:00',如果使用 createtime>'2018-3-1 00:00:00'这种格式会报错。

配置RDS

  • 在创建应用过程,配置RDS数据源。
  • 已创建应用可通过应用数据源界面修改,或通过修改应用结构流程进行修改。

步骤如下

此处以创建应用流程,配置RDS数据源为例。

1 . 在创建应用时,选择需要的应用版本类型,并填写应用名。

创建应用

2 . 在第2步中选择通过数据源创建应用结构

通过数据源创建应用结构

3 . 选择RDS数据源,点击新的数据库

选择RDS数据源

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

连接数据源

参数名称 说明
实例ID RDS数据库的实例ID(不是名称),可以在RDS控制台中获取(大小写敏感),暂不支持只读实例,需填写的实例ID格式参考: rm-bp19b4g5n11111111
数据库名 该实例下需要连接的数据库名(大小写不敏感)。
用户名 数据库只读账号,用于获取数据库表模式及全量数据(大小写敏感且具有只读权限)。
密码 只读帐户对应的密码。
授权 对OpenSearch获取RDS数据做授权操作,在用户设置了IP白名单的情况下,OpenSearch会将所用IP添加到用户白名单中。若不勾选授权,则连接数据不会高亮显示。

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

提示信息 处理方法
当前用户的当前区域没有此RDS实例 请检查实例ID是否正确,并确保RDS实例所在区域与OpenSearch应用区域一致。如果条件符合仍然报错,可提工单反馈
连接RDS服务失败 请检查RDS连接串是否正确包括实例ID、数据库名、用户名、密码
当前RDS数据库下没有此表 请检查表名填写是否正确,以及RDS数据库中是否确实存在该表

5 . 已建立数据源连接界面如下,选择对应表,并单击向右箭头,保存到右侧已选择界面。

已连接RDS数据源

  • 选择或输入该数据库下需要访问的表名(大小写敏感)。
  • 支持分表规则 table_* 的方式,例如 table_a、table_b 等。

6 . 若连接成功,则进行字段配置,OpenSearch会自动获取表字段。

定义应用结果

7 . 定义索引和属性等信息。

定义索引结构

8 . 配置RDS数据源过滤条件。

配置RDS数据源过滤条件

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

9 . 编辑数据源,映射需要拉取的数据库字段。单击保存,完成应用创建。

映射需要拉取数据库字段

  • 在该界面可以添加需要映射同步的数据库字段。
  • 在该界面中的内容转换,可以添加数据源插件。

10 . 单击激活应用,并选择合适的存储容量进行激活。若是新高级版和标准版,需再单击控制台中的全量索引构建才能运行。

激活应用

本文导读目录