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

MySQL分庫分表同步至Hologres(方案1.0)

更新時(shí)間:

本文以MySQL分庫分表實(shí)時(shí)寫入Hologres場(chǎng)景為例,為您介紹如何通過數(shù)據(jù)集成同步分庫分表數(shù)據(jù)至Hologres。

前提條件

  • 已完成Hologres和MySql數(shù)據(jù)源配置。您需要將數(shù)據(jù)庫添加至DataWorks上,以便在同步任務(wù)配置時(shí),可通過選擇數(shù)據(jù)源名稱來控制同步讀取和寫入的數(shù)據(jù)庫。本實(shí)踐中創(chuàng)建的數(shù)據(jù)源名為doc_mysql1,詳情請(qǐng)參見配置MySQL數(shù)據(jù)源配置Hologres數(shù)據(jù)源

    說明

    數(shù)據(jù)源相關(guān)能力介紹詳情請(qǐng)參見:數(shù)據(jù)源概述。

  • 已購買合適規(guī)格的獨(dú)享數(shù)據(jù)集成資源組。詳情請(qǐng)參見:新增和使用獨(dú)享數(shù)據(jù)集成資源組。

  • 已完成獨(dú)享數(shù)據(jù)集成資源組與數(shù)據(jù)源的網(wǎng)絡(luò)連通。詳情請(qǐng)參見:網(wǎng)絡(luò)連通方案。

  • 已完成數(shù)據(jù)源環(huán)境準(zhǔn)備。

    • Hologres:本實(shí)踐需要在目標(biāo)端創(chuàng)建Schema,所以您需要先授權(quán)數(shù)據(jù)源配置賬號(hào)在Hologres創(chuàng)建Schema的權(quán)限,詳情請(qǐng)參見Hologres權(quán)限模型概述

    • MySQL:來源數(shù)據(jù)源為MySQL時(shí),您需要開啟Binlog相關(guān)功能,詳情請(qǐng)參見MySQL環(huán)境準(zhǔn)備。

背景信息

實(shí)際業(yè)務(wù)場(chǎng)景下數(shù)據(jù)同步通常不能通過一個(gè)或多個(gè)簡(jiǎn)單離線同步或者實(shí)時(shí)同步任務(wù)完成,而是由多個(gè)離線同步、實(shí)時(shí)同步和數(shù)據(jù)處理等任務(wù)組合完成,這就會(huì)導(dǎo)致數(shù)據(jù)同步場(chǎng)景下的配置復(fù)雜度非常高。尤其是在MySQL分庫分表的場(chǎng)景下,上游的數(shù)據(jù)庫和表非常多,都需要同時(shí)寫入一張Hologres表,如果同時(shí)配置多個(gè)任務(wù)會(huì)導(dǎo)致配置非常復(fù)雜且運(yùn)維困難。

針對(duì)以上痛點(diǎn),DataWorks數(shù)據(jù)集成一鍵同步解決方案提供了面向業(yè)務(wù)場(chǎng)景的同步任務(wù)配置化方案,支持不同數(shù)據(jù)源的一鍵同步功能,方便業(yè)務(wù)簡(jiǎn)單快速的進(jìn)行數(shù)據(jù)同步。

注意事項(xiàng)

同步數(shù)據(jù)至Hologres時(shí),目前僅支持將數(shù)據(jù)寫入分區(qū)表子表,暫不支持寫入數(shù)據(jù)至分區(qū)表父表。

需求分析

  • 場(chǎng)景描述:MySQL實(shí)例有三個(gè)分庫分表數(shù)據(jù)庫order_db01、order_db02、order_db03。業(yè)務(wù)上有兩種邏輯表:訂單表t_order和用戶表t_user,其中每張邏輯表分別對(duì)應(yīng)三個(gè)數(shù)據(jù)庫下的兩張物理表。如下圖所示總共3個(gè)物理庫,12張分表,分表分別對(duì)應(yīng)兩種邏輯表。數(shù)據(jù)庫現(xiàn)在需要將這12張分庫分表的歷史全量數(shù)據(jù)一次性遷移到Hologres對(duì)應(yīng)的邏輯表中,并且后續(xù)能夠?qū)崟r(shí)增量寫入,以滿足用戶實(shí)時(shí)數(shù)倉數(shù)據(jù)分析等需求。

    同時(shí),為了便于在Hologres表里區(qū)分某條記錄屬于源端哪個(gè)物理庫、物理表,則需要在Hologres表中添加上三個(gè)附加字段(src_datasource、src_database、src_table),標(biāo)識(shí)某條記錄的來源數(shù)據(jù)源實(shí)例、數(shù)據(jù)庫以及表,這三個(gè)附加字段和物理表中的主鍵在Hologres里構(gòu)成了唯一鍵,保障了某條物理表記錄在Hologres邏輯表里的唯一性,全量數(shù)據(jù)遷移以及實(shí)時(shí)增量數(shù)據(jù)寫入時(shí)均需要對(duì)這三個(gè)附加字段賦值。

  • 需求匯總:

    • 數(shù)據(jù):將MySQL全量數(shù)據(jù)一次性同步至Hologres,增量數(shù)據(jù)后續(xù)實(shí)時(shí)寫入目標(biāo)端。

    • 表:將源端分表數(shù)據(jù)寫入目標(biāo)單表,并為寫入的Hologres表添加統(tǒng)一前綴。

      • 將分表數(shù)據(jù)寫入目標(biāo)單表:將源表滿足t_order.*正則表達(dá)式的表數(shù)據(jù)寫入到Hologres名為t_order的表中,所有滿足t_user.*正則表達(dá)式的表數(shù)據(jù)寫入到Hologres名為t_user的表中。

      • 為表加上統(tǒng)一前綴:在目標(biāo)名前統(tǒng)一加上cdo_前綴。

    • schema:需要將源端所有滿足order_db.*正則表達(dá)式的庫寫入目標(biāo)Hologres名為order_db的schema中。

    • 字段:目標(biāo)表在原有表結(jié)構(gòu)基礎(chǔ)上,增加src_datasource、src_database、src_table字段用于記錄源端表數(shù)據(jù)來源。

    綜合如上分析結(jié)果,最終的表對(duì)應(yīng)關(guān)系如下所示:

    源端分庫

    源端待同步表

    寫入的目標(biāo)表

    目標(biāo)表新增字段

    order_db01

    t_order_01

    cdo_t_order

    src_datasource

    src_database

    src_table

    t_order_02

    t_user_01

    cdo_t_user

    t_user_02

    order_db02

    t_order_03

    cdo_t_order

    t_order_04

    t_user_03

    cdo_t_user

    t_user_04

    order_db03

    t_order_05

    cdo_t_order

    t_order_06

    t_user_05

    cdo_t_user

    t_user_06

操作流程

  1. 步驟一:選擇同步方案

  2. 步驟二:配置網(wǎng)絡(luò)連通

  3. 步驟三:設(shè)置同步來源與規(guī)則

  4. 步驟四:設(shè)置目標(biāo)表

  5. 步驟五:設(shè)置表粒度同步規(guī)則

  6. 步驟六:DDL消息處理規(guī)則

  7. 步驟七:運(yùn)行資源設(shè)置

步驟一:選擇同步方案

創(chuàng)建同步解決方案任務(wù),選擇需要同步的源端數(shù)據(jù)源MySQL,目標(biāo)端數(shù)據(jù)源Hologres,并選擇一鍵實(shí)時(shí)同步至Hologres方案。選擇同步方案

步驟二:配置網(wǎng)絡(luò)連通

源端選擇已創(chuàng)建的數(shù)據(jù)源doc_mysql1,目標(biāo)數(shù)據(jù)源為DataWorks工作空間創(chuàng)建的Hologres數(shù)據(jù)源。并測(cè)試連通性。

步驟三:設(shè)置同步來源與規(guī)則

  1. 基本配置區(qū)域,配置同步解決方案的名稱、任務(wù)存放位置等信息。

  2. 數(shù)據(jù)來源區(qū)域,確認(rèn)需要同步的源端數(shù)據(jù)源相關(guān)信息。

  3. 選擇同步的源表區(qū)域,選中需要同步的源表,單擊圖標(biāo)圖標(biāo),將其移動(dòng)至已選源表

    該區(qū)域會(huì)為您展示所選數(shù)據(jù)源下所有的表,您可以選擇整庫全表或部分表進(jìn)行同步。

  4. 設(shè)置表(庫)名的映射規(guī)則區(qū)域,單擊添加規(guī)則,選擇相應(yīng)的規(guī)則進(jìn)行添加。

    同步時(shí)默認(rèn)將源端數(shù)據(jù)表寫入目的端同名schema或同名表中,同時(shí),您可以通過添加映射規(guī)則定義最終寫入目的端的schema或表名稱,實(shí)現(xiàn)將多張表數(shù)據(jù)寫入到同一個(gè)目標(biāo)表中,或統(tǒng)一將源端某固定前綴的表名在寫入目標(biāo)表時(shí)更新為其他前綴。支持通過正則表達(dá)式轉(zhuǎn)換寫入的schema名或表名,還支持使用內(nèi)置變量拼接目標(biāo)表名。配置邏輯請(qǐng)參見:設(shè)置同步來源與規(guī)則。

    在本實(shí)踐中,我們需要將MySQL數(shù)據(jù)庫中的12張分庫分表寫入對(duì)應(yīng)的兩張Hologres表中。設(shè)置表(庫)名映射規(guī)則如下:目標(biāo)表名

    • 源表名和目標(biāo)表名轉(zhuǎn)換規(guī)則:支持將源表名通過正則表達(dá)式轉(zhuǎn)換為目標(biāo)表名。

      如上圖所示設(shè)置為要搜索的字符串t_order.*,將源表所有滿足t_order.*正則表達(dá)式的表數(shù)據(jù)寫入到Hologres名為t_order表中;所有滿足t_user.*正則表達(dá)式的源表寫入到Hologres名為t_user表中。

    • 目標(biāo)表名規(guī)則:支持您使用內(nèi)置的變量組合生成目標(biāo)表名,同時(shí),對(duì)轉(zhuǎn)換后的目標(biāo)表名支持添加前綴和后綴。如上圖所示為源表名和目標(biāo)表名轉(zhuǎn)換規(guī)則轉(zhuǎn)換后的表名前統(tǒng)一加上cdo_前綴。

    • 源表名和目標(biāo)Schema名轉(zhuǎn)換規(guī)則:若要將多個(gè)物理庫實(shí)時(shí)寫入一個(gè)目標(biāo)Schema中,您需要將物理庫和目標(biāo)schema進(jìn)行轉(zhuǎn)換(默認(rèn)源庫寫入目標(biāo)同名schema)。如上圖所示將所有滿足order_db.*正則表達(dá)式的源庫寫入目標(biāo)Hologres名為order_db的schema中。

步驟四:設(shè)置目標(biāo)表

  1. 確認(rèn)寫入Hologres的策略。

    寫入Hologres策略目前僅支持重放,重放表示鏡像功能,即源端INSERT一條記錄,Hologres中也INSERT一條記錄;源端執(zhí)行UPDATE或DELETE操作,Hologres中也進(jìn)行UPDATE或DELETE。

  2. 刷新源表和Hologres表映射。

    單擊刷新源表和Hologres表映射,將根據(jù)您在步驟三配置的目標(biāo)表映射規(guī)則來生成目標(biāo)表,若步驟三未配置映射規(guī)則,將默認(rèn)寫入與源表同名的目標(biāo)表,若目標(biāo)端不存在該同名表,將默認(rèn)新建。同時(shí),您可以修改表建立方式、為目標(biāo)表在源有表字段基礎(chǔ)上增加附加字段。

    該步驟數(shù)據(jù)集成會(huì)自動(dòng)拉取要同步的源表表結(jié)構(gòu),并按照表(庫)名轉(zhuǎn)換規(guī)則將其自動(dòng)映射到目標(biāo)Hologres表。單擊刷新源表和Hologres表映射,結(jié)果如下:結(jié)果

  3. 批量添加附加字段。

    為了更好的區(qū)分上游表的來源,需要為目標(biāo)表添加附加字段。

    1. 勾選所有的任務(wù),并單擊批量編輯目標(biāo)表附加字段。

      說明

      僅在表建立方式自動(dòng)建表時(shí),可以使用此功能。

    2. 批量編輯目標(biāo)表附加字段彈窗,單擊新增字段,新增src_datasource、src_database和src_table三個(gè)字段。并為字段賦值。附加字段

      說明

      數(shù)據(jù)集成附加字段支持的變量字段如下:

      EXECUTE_TIME:執(zhí)行時(shí)間
      UPDATE_TIME:更新時(shí)間
      DB_NAME_SRC:原始數(shù)據(jù)庫名稱
      DB_NAME_SRC_TRANSED:轉(zhuǎn)換后數(shù)據(jù)庫名稱
      DATASOURCE_NAME_SRC:源端數(shù)據(jù)源名稱
      DATASOURCE_NAME_DEST:目的端數(shù)據(jù)源名稱
      DB_NAME_DEST:目的端數(shù)據(jù)庫名稱
      TABLE_NAME_DEST:目的端表名稱
      TABLE_NAME_SRC:源端表名稱

步驟五:設(shè)置表粒度同步規(guī)則

即當(dāng)源表發(fā)生插入、更新、刪除時(shí),您可以在此處定義對(duì)應(yīng)的處理策略。

  • 正常處理:源端DML消息將會(huì)繼續(xù)下發(fā)給目標(biāo)數(shù)據(jù)源,由目標(biāo)數(shù)據(jù)源來處理。

  • 忽略:直接丟棄該消息,不再向目標(biāo)數(shù)據(jù)源發(fā)送對(duì)應(yīng)的DML消息,對(duì)應(yīng)數(shù)據(jù)不會(huì)改變。

  • 有條件的正常處理:選擇后,您可以配置過濾條件,同步任務(wù)將按照您配置的過濾表達(dá)式對(duì)源端數(shù)據(jù)進(jìn)行過濾,滿足過濾條件的數(shù)據(jù)會(huì)被正常處理,不滿足的會(huì)被忽略掉。

說明

若不設(shè)置,則默認(rèn)為“正常處理”。

步驟六:DDL消息處理規(guī)則

來源數(shù)據(jù)源會(huì)包含許多DDL操作,數(shù)據(jù)集成體提供默認(rèn)處理策略,您也可以根據(jù)業(yè)務(wù)需求,對(duì)不同的DDL消息設(shè)置同步至目標(biāo)端的處理策略。不同DDL消息處理策略請(qǐng)參見:DDL消息處理規(guī)則。

步驟七:運(yùn)行資源設(shè)置

當(dāng)前方案創(chuàng)建后將分別生成全量數(shù)據(jù)離線同步子任務(wù)和增量數(shù)據(jù)實(shí)時(shí)同步子任務(wù)。您需要在運(yùn)行資源設(shè)置界面配置離線同步任務(wù)和實(shí)時(shí)同步任務(wù)的相關(guān)屬性。

包括實(shí)時(shí)增量同步及離線全量同步使用的獨(dú)享數(shù)據(jù)集成資源組,同時(shí),單擊高級(jí)配置可配置是否容忍臟數(shù)據(jù)、任務(wù)最大并發(fā)數(shù)、源庫允許支持的最大連接數(shù)等參數(shù)。

說明
  • DataWorks的離線同步任務(wù)通過調(diào)度資源組將其下發(fā)到數(shù)據(jù)集成任務(wù)執(zhí)行資源組上執(zhí)行,所以離線同步任務(wù)除了涉及數(shù)據(jù)集成任務(wù)執(zhí)行資源組外,還會(huì)占用調(diào)度資源組資源。如果使用了獨(dú)享調(diào)度資源組,將會(huì)產(chǎn)生調(diào)度實(shí)例費(fèi)用。您可通過任務(wù)下發(fā)機(jī)制對(duì)該機(jī)制進(jìn)行了解。

  • 離線和實(shí)時(shí)同步任務(wù)推薦使用不同的資源組,以便任務(wù)分開執(zhí)行。如果選擇同一個(gè)資源組,任務(wù)混跑會(huì)帶來資源搶占、運(yùn)行態(tài)互相影響等問題。例如,CPU、內(nèi)存、網(wǎng)絡(luò)等互相影響,可能會(huì)導(dǎo)致離線任務(wù)變慢或?qū)崟r(shí)任務(wù)延遲等問題,甚至在資源不足的極端情況下,可能會(huì)出現(xiàn)任務(wù)被OOM KILLER殺掉等問題。

步驟八:執(zhí)行同步任務(wù)

  1. 進(jìn)入數(shù)據(jù)集成 > 同步任務(wù)界面,找到已創(chuàng)建的同步方案。

  2. 單擊操作列的提交執(zhí)行按鈕,啟動(dòng)同步的運(yùn)行。

  3. 單擊操作列的執(zhí)行詳情,查看任務(wù)的詳細(xì)執(zhí)行過程。

后續(xù)步驟

完成任務(wù)配置后,您可以對(duì)已創(chuàng)建的任務(wù)進(jìn)行管理、執(zhí)行加減表操作,或?qū)θ蝿?wù)配置監(jiān)控報(bào)警,并查看任務(wù)運(yùn)行的關(guān)鍵指標(biāo)等。詳情請(qǐng)參見:全增量同步任務(wù)運(yùn)維