日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

通過DTS將MySQL數(shù)據(jù)實(shí)時(shí)同步到阿里云Elasticsearch

重要

本文中含有需要您注意的重要提示信息,忽略該信息可能對(duì)您的業(yè)務(wù)造成影響,請(qǐng)務(wù)必仔細(xì)閱讀。

當(dāng)您需要將企業(yè)線上的RDS MySQL中的生產(chǎn)數(shù)據(jù)實(shí)時(shí)同步到阿里云Elasticsearch中進(jìn)行搜索分析時(shí),可通過數(shù)據(jù)傳輸服務(wù)DTS(Data Transmission Service),快速創(chuàng)建RDS MySQL到阿里云Elasticsearch的實(shí)時(shí)同步作業(yè)。本文介紹如何配置RDS MySQL到阿里云Elasticsearch的實(shí)時(shí)同步作業(yè),并驗(yàn)證全量和增量數(shù)據(jù)的同步結(jié)果。

背景信息

  • 數(shù)據(jù)傳輸服務(wù)DTS是一種集數(shù)據(jù)遷移、數(shù)據(jù)訂閱及數(shù)據(jù)實(shí)時(shí)同步于一體的數(shù)據(jù)傳輸服務(wù),詳細(xì)信息請(qǐng)參見數(shù)據(jù)傳輸服務(wù)DTS。DTS支持同步的SQL操作包括Insert、Delete和Update,支持同步的數(shù)據(jù)源版本要求請(qǐng)參見同步方案概覽。

  • 通過在DTS中配置從源(MySQL)同步到目標(biāo)(Elasticsearch),可實(shí)現(xiàn)全量、增量數(shù)據(jù)同步。適用于對(duì)實(shí)時(shí)同步要求較高的關(guān)系型數(shù)據(jù)庫(kù)中數(shù)據(jù)的同步場(chǎng)景或需要將關(guān)系型數(shù)據(jù)庫(kù)中的全量或增量數(shù)據(jù)同步到阿里云Elasticsearch場(chǎng)景。

前提條件

已創(chuàng)建RDS MySQL實(shí)例、阿里云Elasticsearch實(shí)例。建議您在同一專有網(wǎng)絡(luò)下創(chuàng)建相關(guān)實(shí)例。

使用限制

  • 通過DTS將數(shù)據(jù)同步至阿里云Elasticsearch,不支持7.16和8.x版本的Elasticsearch實(shí)例。

  • DTS不支持同步DDL操作,如果源庫(kù)中待同步的表在同步的過程中已經(jīng)執(zhí)行了DDL操作,您需要先移除同步對(duì)象,然后在Elasticsearch實(shí)例中移除該表對(duì)應(yīng)的索引,最后新增同步對(duì)象。詳情請(qǐng)參見移除同步對(duì)象新增同步對(duì)象。

注意事項(xiàng)

  • DTS在執(zhí)行全量數(shù)據(jù)初始化時(shí)將占用源庫(kù)和目標(biāo)庫(kù)一定的讀寫資源,可能會(huì)導(dǎo)致數(shù)據(jù)庫(kù)的負(fù)載上升,在數(shù)據(jù)庫(kù)性能較差、規(guī)格較低或業(yè)務(wù)量較大的情況下(例如源庫(kù)有大量慢SQL、存在無主鍵表或目標(biāo)庫(kù)存在死鎖等),可能會(huì)加重?cái)?shù)據(jù)庫(kù)壓力,甚至導(dǎo)致數(shù)據(jù)庫(kù)服務(wù)不可用。因此您需要在執(zhí)行數(shù)據(jù)同步前評(píng)估源庫(kù)和目標(biāo)庫(kù)的性能,同時(shí)建議您在業(yè)務(wù)低峰期執(zhí)行數(shù)據(jù)同步(例如源庫(kù)和目標(biāo)庫(kù)的CPU負(fù)載在30%以下)。

  • 如果源庫(kù)中待同步的表需要執(zhí)行增加列的操作,您只需先在Elasticsearch實(shí)例中修改對(duì)應(yīng)表的mapping,然后在源庫(kù)中執(zhí)行相應(yīng)的DDL操作,最后暫停并啟動(dòng)DTS同步實(shí)例即可。

操作步驟

步驟一:環(huán)境準(zhǔn)備

  1. 在阿里云Elasticsearch實(shí)例中開啟自動(dòng)創(chuàng)建索引功能。

    具體操作步驟請(qǐng)參見配置YML參數(shù)。本文使用6.7版本的實(shí)例。

    說明

    阿里云Elasticsearch為了保證用戶操作數(shù)據(jù)的安全性,默認(rèn)把自動(dòng)創(chuàng)建索引的配置設(shè)置為不允許。通過DTS同步數(shù)據(jù),使用的是提交數(shù)據(jù)的方式創(chuàng)建索引,而不是Create index API方式。所以在同步數(shù)據(jù)前,需要先開啟集群的自動(dòng)創(chuàng)建索引功能。

  2. 創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)和表,并插入數(shù)據(jù)。

    您可以選擇使用阿里云的RDS數(shù)據(jù)庫(kù),也可以在本地服務(wù)器上的自建數(shù)據(jù)庫(kù)。本文以RDS MySQL數(shù)據(jù)庫(kù)為例,創(chuàng)建RDS MySQL數(shù)據(jù)庫(kù)及表的詳細(xì)步驟請(qǐng)參見快速入門。

    重要

    建議您創(chuàng)建與阿里云Elasticsearch實(shí)例同一地域下的RDS MySQL實(shí)例,不同地域的同步任務(wù)不能確保互通。

    本文創(chuàng)建的數(shù)據(jù)庫(kù)、使用的建表語句及數(shù)據(jù)如下。

    • 在RDS MySQL中創(chuàng)建數(shù)據(jù)庫(kù)(Database)

      test_logstash

    • 建表語句

      -- create table
      CREATE TABLE `es_test` (
          `id` bigint(32) NOT NULL,
          `name` varchar(32) NULL,
          `age` bigint(32) NULL,
          `hobby` varchar(32) NULL,
          PRIMARY KEY (`id`)
      ) ENGINE=InnoDB
      DEFAULT CHARACTER SET=utf8;
      
      -- insert data
      INSERT INTO `es_test` (`id`,`name`,`age`,`hobby`) VALUES (1,'user1',22,'music');
      INSERT INTO `es_test` (`id`,`name`,`age`,`hobby`) VALUES (2,'user2',23,'sport');
      INSERT INTO `es_test` (`id`,`name`,`age`,`hobby`) VALUES (3,'user3',43,'game');
      INSERT INTO `es_test` (`id`,`name`,`age`,`hobby`) VALUES (4,'user4',24,'run');
      INSERT INTO `es_test` (`id`,`name`,`age`,`hobby`) VALUES (5,'user5',42,'basketball');

步驟二:配置數(shù)據(jù)同步鏈路

  1. 進(jìn)入同步任務(wù)的列表頁(yè)面。

    1. 登錄DMS數(shù)據(jù)管理服務(wù)。

    2. 在頂部菜單欄中,單擊集成與開發(fā)(DTS)。

    3. 在左側(cè)導(dǎo)航欄,選擇數(shù)據(jù)傳輸(DTS) > 數(shù)據(jù)同步

    說明
  2. 單擊創(chuàng)建任務(wù),按照頁(yè)面提示創(chuàng)建并配置數(shù)據(jù)同步任務(wù)。

    您需要依次完成源庫(kù)及目標(biāo)庫(kù)配置、任務(wù)對(duì)象配置、映射字段配置、高級(jí)配置和庫(kù)表字段配置,本文使用的配置及相關(guān)說明如下,更多詳細(xì)信息請(qǐng)參見MySQL為源的數(shù)據(jù)同步PolarDB-X同步至Elasticsearch。

    1. 配置源庫(kù)及目標(biāo)庫(kù)。

      配置源庫(kù)及目標(biāo)庫(kù)

      類別

      配置

      說明

      任務(wù)名稱

      • DTS為每個(gè)任務(wù)自動(dòng)生成一個(gè)同步作業(yè)名稱,該名稱沒有唯一性要求。

      • 建議配置具有業(yè)務(wù)意義的名稱,便于后續(xù)的識(shí)別。

      源庫(kù)信息

      數(shù)據(jù)庫(kù)類型

      選擇MySQL。

      接入方式

      選擇云實(shí)例。

      實(shí)例地區(qū)

      選擇源MySQL數(shù)據(jù)庫(kù)所屬地域。

      是否跨阿里云賬號(hào)

      本場(chǎng)景為同一阿里云賬號(hào)間同步數(shù)據(jù),選擇不跨賬號(hào)。

      實(shí)例ID

      選擇源RDS MySQL實(shí)例ID。

      數(shù)據(jù)庫(kù)賬號(hào)

      填入源RDS MySQL實(shí)例的數(shù)據(jù)庫(kù)賬號(hào),需具備待同步對(duì)象的讀權(quán)限。

      數(shù)據(jù)庫(kù)密碼

      填入數(shù)據(jù)庫(kù)賬號(hào)對(duì)應(yīng)的密碼。

      連接方式

      根據(jù)需求選擇非加密連接SSL安全連接。如果設(shè)置為SSL安全連接,您需要提前開啟RDS MySQL實(shí)例的SSL加密功能,詳情請(qǐng)參見設(shè)置SSL加密。

      目標(biāo)庫(kù)信息

      數(shù)據(jù)庫(kù)類型

      選擇ElasticSearch。

      接入方式

      固定為云實(shí)例。

      實(shí)例地區(qū)

      選擇目標(biāo)Elasticsearch實(shí)例所屬地域,建議與源MySQL數(shù)據(jù)庫(kù)保持一致。

      實(shí)例ID

      選擇目標(biāo)Elasticsearch實(shí)例ID。

      數(shù)據(jù)庫(kù)賬號(hào)

      填入連接Elasticsearch實(shí)例的賬號(hào),默認(rèn)賬號(hào)為elastic。

      數(shù)據(jù)庫(kù)密碼

      填入數(shù)據(jù)庫(kù)賬號(hào)對(duì)應(yīng)的密碼。

    2. 配置任務(wù)對(duì)象。

      配置

      說明

      同步類型

      固定選中增量同步。默認(rèn)情況下,您還需要同時(shí)選中庫(kù)表結(jié)構(gòu)同步全量同步。預(yù)檢查完成后,DTS會(huì)將源實(shí)例中待同步對(duì)象的全量數(shù)據(jù)在目標(biāo)集群中初始化,作為后續(xù)增量同步數(shù)據(jù)的基線數(shù)據(jù)。

      目標(biāo)已存在表的處理模式

      • 預(yù)檢查并報(bào)錯(cuò)攔截:檢查目標(biāo)數(shù)據(jù)庫(kù)中是否有同名的表。如果目標(biāo)數(shù)據(jù)庫(kù)中沒有同名的表,則通過該檢查項(xiàng)目;如果目標(biāo)數(shù)據(jù)庫(kù)中有同名的表,則在預(yù)檢查階段提示錯(cuò)誤,數(shù)據(jù)同步任務(wù)不會(huì)被啟動(dòng)。

        說明

        如果目標(biāo)庫(kù)中同名的表不方便刪除或重命名,您可以更改該表在目標(biāo)庫(kù)中的名稱,請(qǐng)參見庫(kù)表列名映射

      • 忽略報(bào)錯(cuò)并繼續(xù)執(zhí)行:跳過目標(biāo)數(shù)據(jù)庫(kù)中是否有同名表的檢查項(xiàng)。

        警告

        選擇為忽略報(bào)錯(cuò)并繼續(xù)執(zhí)行,可能導(dǎo)致數(shù)據(jù)不一致,給業(yè)務(wù)帶來風(fēng)險(xiǎn),例如:

        • 表結(jié)構(gòu)一致的情況下,如在目標(biāo)庫(kù)遇到與源庫(kù)主鍵或唯一鍵的值相同的記錄:

          • 全量期間,DTS會(huì)保留目標(biāo)集群中的該條記錄,即源庫(kù)中的該條記錄不會(huì)同步至目標(biāo)數(shù)據(jù)庫(kù)中。

          • 增量期間,DTS不會(huì)保留目標(biāo)集群中的該條記錄,即源庫(kù)中的該條記錄會(huì)覆蓋至目標(biāo)數(shù)據(jù)庫(kù)中。

        • 表結(jié)構(gòu)不一致的情況下,可能會(huì)導(dǎo)致無法初始化數(shù)據(jù)、只能同步部分列的數(shù)據(jù)或同步失敗,請(qǐng)謹(jǐn)慎操作。

      索引名稱

      • 表名

        選擇為表名后,在目標(biāo)Elasticsearch實(shí)例中創(chuàng)建的索引名稱和表名一致,在本案例中即為es_test。

      • 庫(kù)名_表名

        選擇為庫(kù)名_表名后,在目標(biāo)Elasticsearch實(shí)例中創(chuàng)建的索引名稱為庫(kù)名_表名,在本案例中即為test_logstash_es_test。

      源庫(kù)對(duì)象

      源庫(kù)對(duì)象框中單擊待同步對(duì)象,然后單擊向右將其移動(dòng)至已選擇對(duì)象框。

      已選擇對(duì)象

      • 如需更改單個(gè)同步對(duì)象在目標(biāo)實(shí)例中的名稱,請(qǐng)右擊已選擇對(duì)象中的同步對(duì)象,設(shè)置方式,請(qǐng)參見庫(kù)表列名單個(gè)映射。

      • 如需批量更改同步對(duì)象在目標(biāo)實(shí)例中的名稱,請(qǐng)單擊已選擇對(duì)象方框右上方的批量編輯,設(shè)置方式,請(qǐng)參見庫(kù)表列名批量映射。

    3. 配置映射字段,修改同步后的字段名稱。

      如果您需要修改同步后的字段名稱,可在已選擇對(duì)象區(qū)域框中,右鍵單擊對(duì)應(yīng)的表名,設(shè)置該表在目標(biāo)Elasticsearch實(shí)例中的索引名稱、Type名稱等信息,然后單擊確定。本文使用的配置及相關(guān)說明如下,未提及的配置保持默認(rèn),更多詳細(xì)信息請(qǐng)參見庫(kù)表列名單個(gè)映射。

      配置映射字段

      配置

      說明

      索引名稱

      自定義索引名稱,詳情請(qǐng)參見基本概念。

      重要

      輸入索引名稱時(shí),請(qǐng)確保Elasticsearch集群中不存在同名索引,否則報(bào)錯(cuò)index already exists。

      Type名稱

      自定義索引類型名稱,詳情請(qǐng)參見基本概念。

      過濾條件

      您可以設(shè)置SQL過濾條件,過濾待同步的數(shù)據(jù),只有滿足過濾條件的數(shù)據(jù)才會(huì)被同步到目標(biāo)實(shí)例,詳情請(qǐng)參見通過SQL條件過濾任務(wù)數(shù)據(jù)。

      字段參數(shù)

      選擇所需的字段參數(shù)字段參數(shù)值,字段參數(shù)及取值介紹請(qǐng)參見Mapping parameters。

      重要

      如果添加參數(shù)時(shí),將對(duì)應(yīng)參數(shù)的index值設(shè)置為false,那么該字段將不能被查詢,詳情請(qǐng)參見index。

    4. 配置高級(jí)參數(shù)。

      本文使用默認(rèn)配置,相關(guān)說明如下。

      配置

      說明

      選擇調(diào)度該任務(wù)的專屬集群

      • DTS默認(rèn)調(diào)度到共享集群上,用戶不需要選擇調(diào)度到指定的集群節(jié)點(diǎn)上。

      • 專屬集群需要先購(gòu)買后,運(yùn)行成功才能選擇使用

      • 您可以購(gòu)買指定規(guī)格的專屬集群來運(yùn)行DTS遷移、同步、訂閱等任務(wù),實(shí)現(xiàn)與其他用戶的DTS任務(wù)資源隔離,專屬集群中的DTS實(shí)例相比共享集群的實(shí)例,實(shí)現(xiàn)資源獨(dú)享,穩(wěn)定性更好,性能更優(yōu)。

      監(jiān)控報(bào)警

      是否設(shè)置告警,當(dāng)同步失敗或延遲超過閾值后,將通知告警聯(lián)系人。

      源庫(kù)、目標(biāo)庫(kù)無法連接后的重試時(shí)間

      在同步任務(wù)啟動(dòng)后,若源庫(kù)或目標(biāo)庫(kù)連接失敗則DTS會(huì)報(bào)錯(cuò),并會(huì)立即進(jìn)行持續(xù)的重試連接,默認(rèn)持續(xù)重試時(shí)間為720分鐘,您也可以在取值范圍(10~1440分鐘)內(nèi)自定義重試時(shí)間,建議設(shè)置30分鐘以上。如果DTS在設(shè)置的重試時(shí)間內(nèi)重新連接上源庫(kù)、目標(biāo)庫(kù),同步任務(wù)將自動(dòng)恢復(fù)。否則,同步任務(wù)將會(huì)失敗。

      說明
      • 針對(duì)同源或者同目標(biāo)的多個(gè)DTS實(shí)例,如DTS實(shí)例A和DTS實(shí)例B,設(shè)置網(wǎng)絡(luò)重試時(shí)間時(shí)A設(shè)置30分鐘,B設(shè)置60分鐘,則重試時(shí)間以低的30分鐘為準(zhǔn)。

      • 由于連接重試期間,DTS將收取任務(wù)運(yùn)行費(fèi)用,建議您根據(jù)業(yè)務(wù)需要自定義重試時(shí)間,或者在源和目標(biāo)庫(kù)實(shí)例釋放后盡快釋放DTS實(shí)例。

      分片配置

      根據(jù)目標(biāo)Elasticsearch中索引的分片配置,設(shè)置索引的主分片和副本分片的數(shù)量。Elasticsearch 7.x以下版本的索引默認(rèn)包含5個(gè)主shard,1個(gè)副shard。Elasticsearch 7.x及以上版本的索引默認(rèn)包含1個(gè)主shard,1個(gè)副shard。

      重要

      shard大小和數(shù)量是影響Elasticsearch集群穩(wěn)定性和性能的重要因素,您需要設(shè)置合理的shard數(shù),shard的評(píng)估方法請(qǐng)參見規(guī)格容量評(píng)估。

      字符串Index

      同步至目標(biāo)Elasticsearch實(shí)例中的字符串編入索引的方式:

      • analyzed:先分析字符串,再寫入索引。您還需要選擇具體的分析器,分析器的類型及作用,請(qǐng)參見分析器。

      • not analyzed:不分析,直接使用原始值寫入索引。

      • no:不寫入索引。

      時(shí)區(qū)

      DTS同步時(shí)間類型的數(shù)據(jù)(如DATETIME、TIMESTAMP)至目標(biāo)Elasticsearch實(shí)例時(shí),您可以選擇所帶時(shí)區(qū)。

      說明

      如目標(biāo)實(shí)例中此類時(shí)間類型數(shù)據(jù)無需帶有時(shí)區(qū),則在同步前您需在目標(biāo)實(shí)例中設(shè)置該時(shí)間類型數(shù)據(jù)的文檔類型(type)。

      DOCID取值

      DOCID默認(rèn)為表的主鍵,如表中無主鍵,則DOCID為Elasticsearch自動(dòng)生成的ID列。

      配置ETL功能

      • ETL配置功能暫不支持在目標(biāo)端進(jìn)行表結(jié)構(gòu)變更,涉及變更操作需要您在鏈路啟動(dòng)前預(yù)先在目標(biāo)端完成。

      • ETL配置的二次修改可能因您的配置造成鏈路中斷或歷史數(shù)據(jù)修改,請(qǐng)謹(jǐn)慎操作。

      • ETL配置二次修改啟動(dòng)時(shí)僅針對(duì)啟動(dòng)后的增量數(shù)據(jù)進(jìn)行適配,歷史數(shù)據(jù)不支持修改后的配置。

      • 詳情參見:在DTS遷移或同步任務(wù)中配置ETL

    5. 配置庫(kù)表字段,設(shè)置待同步的表在目標(biāo)Elasticsearch的_routing策略和_id取值。

      本文使用的配置及相關(guān)說明如下。配置庫(kù)表字段

      類型

      說明

      設(shè)置_routing

      設(shè)置_routing可以將文檔路由存儲(chǔ)在目標(biāo)Elasticsearch實(shí)例的指定分片上,請(qǐng)參見_routing。

      • 選擇為,您可以自定義列進(jìn)行路由。

      • 選擇為,則用_id進(jìn)行路由。

      說明

      創(chuàng)建的目標(biāo)Elasticsearch實(shí)例為7.x版本時(shí),您必須選擇為

      _id取值

      • 表的主鍵列

        聯(lián)合主鍵合并為一列。

      • 業(yè)務(wù)主鍵

        如果選擇為業(yè)務(wù)主鍵,那么您還需要設(shè)置對(duì)應(yīng)的業(yè)務(wù)主鍵列。

  3. 配置完成后,根據(jù)頁(yè)面提示保存任務(wù)、進(jìn)行預(yù)檢查、購(gòu)買并啟動(dòng)任務(wù)。

    購(gòu)買成功后,同步任務(wù)正式開始,您可在數(shù)據(jù)同步界面查看具體任務(wù)進(jìn)度。待全量同步完成,增量同步進(jìn)行中時(shí),您即可在Elasticsearch中查看同步成功的數(shù)據(jù)。查看數(shù)據(jù)同步作業(yè)狀態(tài)

    重要

    由于MySQL和Elasticsearch實(shí)例支持的數(shù)據(jù)類型不同,數(shù)據(jù)類型無法一一對(duì)應(yīng)。所以DTS在進(jìn)行結(jié)構(gòu)初始化時(shí),會(huì)根據(jù)目標(biāo)庫(kù)支持的數(shù)據(jù)類型進(jìn)行類型映射,詳情請(qǐng)參見結(jié)構(gòu)初始化涉及的數(shù)據(jù)類型映射關(guān)系

步驟三:驗(yàn)證數(shù)據(jù)同步結(jié)果

  1. 登錄目標(biāo)阿里云Elasticsearch實(shí)例的Kibana控制臺(tái),根據(jù)頁(yè)面提示進(jìn)入Kibana主頁(yè)。
    登錄Kibana控制臺(tái)的具體操作,請(qǐng)參見登錄Kibana控制臺(tái)。
    說明 本文以阿里云Elasticsearch 6.7.0版本為例,其他版本操作可能略有差別,請(qǐng)以實(shí)際界面為準(zhǔn)。
  2. 在左側(cè)導(dǎo)航欄,單擊Dev Tools。
  3. Console中,執(zhí)行如下命令查看全量數(shù)據(jù)同步結(jié)果。

    GET /es_test_index/es_test_type/_search

    預(yù)期結(jié)果如下。查詢結(jié)果

  4. 在MySQL中插入一條數(shù)據(jù),在Elasticsearch中查看增量數(shù)據(jù)同步結(jié)果。

    例如通過以下SQL語句插入一條數(shù)據(jù)。

    INSERT INTO `test_logstash`.`es_test` (`id`,`name`,`age`,`hobby`) VALUES (6,'user6',30,'dance');

    在Elasticsearch中查看結(jié)果,預(yù)期結(jié)果如下。驗(yàn)證增量數(shù)據(jù)同步