zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    装饰器的理解和使用
    策略模式的理解
    mongo 多条件or
    不止代码 == 摘读
    egret打包android + android微信登录--小结
    springboot整合mongo多数据源
    SpringBoot集成JWT 实现接口权限认证
    nginx反向代理使用网址速度变慢
    2017年2月总结
    (转)Mac os x 下配置Intellij IDEA + Tomcat 出现权限问题的解决办法
  • 原文地址:https://www.cnblogs.com/zhanmeiliang/p/13652038.html
Copyright © 2011-2022 走看看