更新时间:2024-05-11 GMT+08:00
分享

操作步骤

  1. 通过DRS将MySQL数据实时同步到CSS。具体操作步骤请参见将MySQL同步到CSS/ES
    • 在本章案例中,下表中同步任务配置参数需要按建议填写。
    表1 同步任务参数说明

    配置模块

    参数名称

    填写建议

    同步实例 > 同步实例信息

    “网络类型”

    选择“VPC网络”。

    “源数据库实例”

    选择需要同步的RDS for MySQL实例,即存储用户业务数据的MySQL。

    “同步实例所在子网”

    选择同步实例所在的子网,建议跟数据库实例以及CSS集群所在子网保持一致。

    源库及目标库 > 目标库信息

    “VPC”和“子网”

    选择和CSS集群一致的VPC与子网。

    “IP地址或域名”

    填写CSS集群的IP地址,获取方式请参见3.2.3章节中” 获取CSS集群的IPv6地址

    “数据库用户名”和“数据库密码”

    填写CSS集群的管理员账户名(admin)和密码。

    “加密证书”

    选择CSS集群的安全证书,如果未启用“SSL安全链接”,则不用选择。获取方式请参见获取CSS集群的安全证书

    设置同步

    “流速模式”

    选择“不限速”。

    “同步对象类型”

    不勾选“同步表结构”,因为已经预先在CSS集群中创建了与MySQL中表相对应的索引。

    “同步对象”

    选择“表级同步”,选择与CSS对应的数据库以及表名。

    说明:

    配置项中type名称需要与索引名称一样,都是“_doc”,如果不一致请修改。

    数据加工

    -

    直接“下一步”。

    • 启动同步任务后,等待任务“状态”从“全量同步”变成“增量同步”,表示数据进入实时同步状态。
  2. 验证数据库的同步状态。
    • 全量数据同步验证。

      CSSKibana中执行如下命令,确认全量数据是否同步到CSS

      GET student/_search
    • 源端插入新数据,验证数据是否会同步到CSS

      例如,源端插入“id”“4”的新数据。

      INSERT INTO student (id,name,age,dsc)
      VALUES 
      ('4','Bill','50','Bill is a smart investor.')

      CSSKibana中执行如下命令,确认新数据是否同步到CSS

      GET student/_search
    • 源端更新数据,验证数据是否会同步更新到CSS

      例如,更新“id”“4”这条数据的“age”字段,从“50”改成“55”

      UPDATE student set age='55' WHERE id=4;

      CSSKibana中执行如下命令,确认数据是否同步更新到CSS

      GET student/_search
    • 源端删除数据,验证CSS里的数据是否同步删除。

      例如,删除“id”“4”的数据。

      DELETE FROM student WHERE id=4;

      CSSKibana中执行如下命令,确认CSS里的数据是否被同步删除。

      GET student/_search
    • 验证数据库的全文检索能力。

      例如,在CSS查询“dsc”中包含“director”的数据。

      GET student/_search
      {
        "query": {
          "match": {
            "dsc": "director"
          }
        }
      }
    • 验证数据库的Ad Hoc查询能力。

      例如,在CSS查询年龄大于40investor

      GET student/_search
      {
        "query": {
          "bool": {
            "must": [
              {
                "match": {
                  "dsc": " investor"
                }
              },
              {
                "range": {
                  "age": {
                    "gte": 40
                  }
                }
              }
            ]
          }
        }
      }
    • 验证数据库的统计分析能力。

      例如,在CSS统计所有人的年龄分布。

      GET student/_search
      {
        "size": 0, 
        "query": {
          "match_all": {}
        },
        "aggs": {
          "age_count": {
            "terms": {
              "field": "age",
              "size": 10
            }
          }
        }
      }

相关文档