AWS DMS MySql数据同步Elasticsearch

用户需求

  • 使用ES实现搜索功能
  • MySql数据同步ES中

AWS Database Migration Service (AWS DMS)

  • AWS Database Migration Service (AWS DMS) 是一项云服务,可轻松迁移关系数据库、数据仓库、NoSQL 数据库及其他类型的数据存储。您可以使用 AWS DMS 将数据迁移到 AWS 云,在本地实例之间(通过 AWS 云设置)进行迁移,或者在云与本地设置的组合之间进行迁移。

  • 利用 AWS DMS,可以执行一次性迁移,而且可以复制持续更改以保持源和目标同步。如果要更改数据库引擎,可以使用 AWS Schema Conversion Tool (AWS SCT) 将数据库架构转移到新平台。然后,可以使用 AWS DMS 迁移数据。由于 AWS DMS 是 AWS 云的一部分,您将获得 AWS 服务提供的成本效益、上市速度、安全性与灵活性


1.创建子网组

  • 子网组配置
    • 子网组名称
    • 子网组描述
    • 选择VPC
    • 添加子网
    • 添加标签

2.证书


3.创建复制实例

  • 复制实例配置

    • 复制实例名称
    • 复制实例描述
    • 实例类型(配置)
    • DMS版本(尽量使用稳定版本,不建议使用Beta版本)
    • 分配实例存储空间
    • VPC
    • 是否开启多可用区
    • 是否公网访问
      • 如果选择此选项,AWS DMS 将向您的复制实例分配公有 IP 地址,并且您将能够连接到 Amazon VPC外部的数据库
  • 高级安全和网络配置

    • 复制子网组
    • 可用区
    • VPC安全组
    • KMS主密钥
  • 维护

    • 次要版本自动升级(建议关闭)
  • 标签


4.创建终端节点

  • 终端节点类型
    • 源终端节点
      • 源终端节点允许 AWS DMS 从数据库(内部部署或云中)或其他数据源(如 Amazon S3)读取数据
    • 目标终端节点
      • 目标终端节点允许 AWS DMS 将数据写入数据库或写入其他数据源

  • 源终端节点配置
    • 终端节点标识符
    • 源引擎类型
      • aurora
      • aurora-postgresql
      • s3
      • db2
      • mariadb
      • azuredb
      • sqlserver
      • mongodb
      • mysql
      • oracle
      • postgres
      • sybase

  • 目标终端节点配置

    • 终端节点标识符
    • 源引擎类型
      • aurora
      • aurora-serverless
      • aurora-postgresql
      • docdb
      • dynamodb
      • kinesis
      • neptune
      • redshift
      • s3
      • elasticsearch
      • kafka
      • mariadb
      • mysql
      • oracle
      • postgre
      • sybase
  • 提供各服务的认证信息

  • 特定于终端节点配置

    • 额外的连接属性
  • KMS主密钥

  • 标签

  • 测试终端节点连接(可选)


5.数据迁移遇到的坑

  • DMS支持MySql版本

    • MySQL 版本 5.5、5.6、5.7 和 8.0
    • MariAdB版本10.0.24至10.0.28、10.1、10.2和10.3至10.3.13
    • Amazon Aurora MySQL
  • MySql作为数据源先决条件

  • 参数组修改

    • binlog_format 设置成 ROW
    • binlog_checksum 设置成 NONE
    • 将binlog日志保留时间增加到24小时
    • call mysql.rds_set_configuration('binlog retention hours', 24);
    • 如果您使用Amazon RDS MySQL或Amazon RDS MariaDB只读副本作为源,请在只读副本上启用备份
  • MySql连接报错

    • SSL connection error: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
    • 更新AWS RDS的证书,如果RDS未重启。无论DMS终端节点是否使用SSL,均会报错。重启RDS后可正常连接

  • Elasticsearch

    • 在 AWS DMS 版本 3.1.2 及更高版本中支持将 Amazon Elasticsearch Service 作为目标
    • Migrating from a relational database table to an Amazon ES index
    • AWS DMS 支持将数据迁移到 Amazon ES的标量数据类型。在从 Oracle 或 MySQL 等关系数据库迁移到 Amazon ES 时,您可能希望重构存储此数据的方式。
    • AWS DMS 支持以下 Amazon ES 标量数据类型:
    • Boolean
    • Date
    • Float
    • Int
    • String
    • AWS DMS 将 Date 类型的数据转换为 String 类型。您可以指定自定义映射来解释这些日期
    • 数据迁移任务启动前需要提前在ES中创建与源数据库中表名一致的索引
  • DMS


6.数据库迁移任务

  • 任务配置

    • 任务标识符
    • 复制实例
    • 源数据库终端节点
    • 目标数据终端节点
    • 迁移类型
      • 迁移现有数据
      • 迁移现有数据并复制持续变更
      • 仅复制数据更改
  • 任务设置

    • 其他配置可以默认(没有深究过)
    • 启用 CloudWatch 日志(方便排查问题)
  • 表映像

    • 迁移规则(源数据规则)
      • 架构(库)
      • 表名称(表)
      • 操作(包含/排除)
    • 转换规则(目标数据规则)
      • 目标架构(库)
      • 目标表(表)
      • 目标栏(字段)
      • 操作
        • 重命名
        • 删除列
        • 转为小写
        • 转为大写
        • 添加前缀
        • 删除前缀
        • 替换前缀
        • 添加后缀
        • 删除后缀
        • 替换后缀
  • 迁移前评估

  • 迁移任务启动配置

  • 高级任务设置

  • 标签


7.事件订阅

  • 可以针对数据迁移实例和迁移任务配置事件邮件(短信)通知

参考文档:

https://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html
https://docs.aws.amazon.com/zh_cn/dms/latest/userguide/CHAP_Source.MySQL.html
https://docs.aws.amazon.com/zh_cn/dms/latest/userguide/CHAP_Target.Elasticsearch.html
https://docs.aws.amazon.com/zh_cn/dms/latest/userguide/CHAP_Reference.DataTypes.html

posted @ 2020-09-11 15:37  爱尔兰时空  阅读(1537)  评论(0编辑  收藏  举报