文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

DTS数据传输同步MySQL至Elasticsearch实战

2024-11-29 19:46

关注

本章节通过RDS MySQL中的生产数据实时同步到阿里云Elasticsearch中进行搜索查询,通过数据传输服务DTS(Data Transmission Service)进行数据同步操作。

前提条件

概念对应关系

图片

创建DTS实例

创建同步任务

图片


选择需要同步的RDS MySQL表

图片

任务同步进展

第一次同步是全量同步


验证数据同步结果

默认情况下,您还需要同时选中库表结构同步和全量同步。预检查完成后,DTS会将源实例中待同步对象的全量数据在目标集群中初始化,作为后续增量同步数据的基线数据。

待全量同步完成,增量同步进行中时,您即可在Elasticsearch中查看同步成功的数据。

图片

数据同步完成后,我们通过Kibana访问实例进行数据验证。

图片

  1. 在Kibana区域,单击公网入口
  2. 在登录页面输入账号和密码,单击登录
  3. 单击Kibana页面左上角的image图标,选择Management > 开发工具(Dev Tools)。
  4. 在Console页签下,执行如下命令访问Elasticsearch实例

全局查询

GET /mall_category/_search

搜索成功后,返回结果如下,以下结果表示全量同步到Elasticsearch成功。

{
  "took" : 4,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 1041,
      "relation" : "eq"
    },
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : "mall_category",
        "_type" : "mall_category",
        "_id" : "2513",
        "_score" : 1.0,
        "_source" : {
          "id" : 2513,
          "name" : "有商品无法删2",
          "parent_id" : 2512,
          "is_show" : 1,
          "sort_order" : 0,
          "create_time" : 1679537485,
          "update_time" : 1679537485,
          "delete_time" : 1679542632
        }
      },
      ....
      {
        "_index" : "mall_category",
        "_type" : "mall_category",
        "_id" : "1310",
        "_score" : 1.0,
        "_source" : {
          "id" : 1310,
          "name" : "发饰",
          "parent_id" : 1258,
          "is_show" : 1,
          "sort_order" : 0,
          "create_time" : 0,
          "update_time" : 0,
          "delete_time" : 0
        }
      }
    ]
  }
}

条件查询

GET /mall_category/_search
{
  "query": {
    "match": {
      "name": "有商品无法删2"
    }
  }
}

搜索成功后,返回结果如下:

{
  "took" : 3,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 59,
      "relation" : "eq"
    },
    "max_score" : 21.80254,
    "hits" : [
      {
        "_index" : "mall_category",
        "_type" : "mall_category",
        "_id" : "2513",
        "_score" : 21.80254,
        "_source" : {
          "id" : 2513,
          "name" : "有商品无法删2",
          "parent_id" : 2512,
          "is_show" : 1,
          "sort_order" : 0,
          "create_time" : 1679537485,
          "update_time" : 1679537485,
          "delete_time" : 1679542632
        }
      },
      {
        "_index" : "mall_category",
        "_type" : "mall_category",
        "_id" : "2512",
        "_score" : 16.643557,
        "_source" : {
          "id" : 2512,
          "name" : "有商品无法删1",
          "parent_id" : 2511,
          "is_show" : 1,
          "image_url" : "",
          "sort_order" : 0,
          "create_time" : 1679537458,
          "update_time" : 1679537458,
          "delete_time" : 1679554114
        }
      },
      {
        "_index" : "mall_category",
        "_type" : "mall_category",
        "_id" : "2511",
        "_score" : 15.356989,
        "_source" : {
          "id" : 2511,
          "name" : "测试有商品无法删",
          "parent_id" : 0,
          "is_show" : 1,
          "image_url" : "",
          "sort_order" : 0,
          "create_time" : 1679537448,
          "update_time" : 1679537448,
          "delete_time" : 1679554191
        }
      },
      {
        "_index" : "mall_category",
        "_type" : "mall_category",
        "_id" : "2508",
        "_score" : 4.6345234,
        "_source" : {
          "id" : 2508,
          "name" : "无糖 代糖",
          "parent_id" : 0,
          "is_show" : 1,
          "sort_order" : 0,
          "create_time" : 1679534815,
          "update_time" : 1679534815,
          "delete_time" : 1679642540
        }
      },
      {
        "_index" : "mall_category",
        "_type" : "mall_category",
        "_id" : "2045",
        "_score" : 4.5389233,
        "_source" : {
          "id" : 2045,
          "name" : "无痕塑身",
          "parent_id" : 1350,
          "is_show" : 1,
          "sort_order" : 0,
          "create_time" : 0,
          "update_time" : 0,
          "delete_time" : 0
        }
      },
      {
        "_index" : "mall_category",
        "_type" : "mall_category",
        "_id" : "2240",
        "_score" : 4.3105736,
        "_source" : {
          "id" : 2240,
          "name" : "无人机",
          "parent_id" : 1363,
          "is_show" : 1,
          "sort_order" : 0,
          "create_time" : 0,
          "update_time" : 0,
          "delete_time" : 0
        }
      }
    ]
  }
}

精准查询

GET /mall_category/_search
{
  "query": {
    "match_phrase": {
      "name": "有商品无法删2"
    }
  }
}

搜索成功后,返回结果如下:

{
  "took" : 2,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 1,
      "relation" : "eq"
    },
    "max_score" : 21.80254,
    "hits" : [
      {
        "_index" : "mall_category",
        "_type" : "mall_category",
        "_id" : "2513",
        "_score" : 21.80254,
        "_source" : {
          "id" : 2513,
          "name" : "有商品无法删2",
          "parent_id" : 2512,
          "is_show" : 1,
          "sort_order" : 0,
          "create_time" : 1679537485,
          "update_time" : 1679537485,
          "delete_time" : 1679542632
        }
      }
    ]
  }
}

增量同步

在MySQL中插入一条数据,在Elasticsearch中查看增量数据同步结果。例如通过以下SQL语句插入一条数据。

INSERT INTO `mall_category`
( `name`, `parent_id`, `is_show`, `image_url`, `sort_order`,
 `create_time`, `update_time`, `delete_time` )
VALUES
 ( '开源技术小栈', 1361, 1, 
 'https://img.tinywan.com/shop/img/2024-12/3a5cbd823.png', 0, 0, 0, 0 );

这里通过精准查询方式查询

GET /mall_category/_search
{
  "query": {
    "match_phrase": {
      "name": "开源技术小栈"
    }
  }
}

在Elasticsearch中查看结果,预期结果如下:

{
  "took" : 1,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 1,
      "relation" : "eq"
    },
    "max_score" : 21.59761,
    "hits" : [
      {
        "_index" : "mall_category",
        "_type" : "mall_category",
        "_id" : "2537",
        "_score" : 21.59761,
        "_source" : {
          "update_time" : 0,
          "delete_time" : 0,
          "create_time" : 0,
          "image_url" : "https://www.528045.com/file/upload/202411/29/pklbko0cils.png",
          "parent_id" : 1361,
          "name" : "开源技术小栈",
          "id" : 2537,
          "sort_order" : 0,
          "is_show" : 1
        }
      }
    ]
  }
}

图片


来源:开源技术小栈内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯