使用Tapdata Cloud導(dǎo)入MySQL數(shù)據(jù)
通過Tapdata Cloud的可視化界面,您可以將自建MySQL、阿里云RDS MySQL、第三方云數(shù)據(jù)庫的數(shù)據(jù)實時同步到表格存儲。
前提條件
使用Tapdata Cloud同步MySQL數(shù)據(jù)到表格存儲前,需要完成如下準(zhǔn)備工作。
已注冊Tapdata Cloud賬號。
已創(chuàng)建表格存儲實例和表。具體操作,請參見通過控制臺使用寬表模型。
創(chuàng)建RAM用戶并完成授權(quán)。
已創(chuàng)建RAM用戶,并授予RAM用戶管理表格存儲服務(wù)的權(quán)限(AliyunOTSFullAccess)。具體操作,請參見通過RAM Policy為RAM用戶授權(quán)。
重要創(chuàng)建RAM用戶時,請選中OpenAPI調(diào)用訪問。
已為RAM用戶創(chuàng)建AccessKey。具體操作,請參見創(chuàng)建AccessKey。
背景信息
Tapdata Cloud是由Tapdata提供的集數(shù)據(jù)復(fù)制、數(shù)據(jù)開發(fā)為一體的實時數(shù)據(jù)服務(wù),能夠在跨云、跨地域、多類型數(shù)據(jù)源的場景下,提供毫秒級的實時數(shù)據(jù)同步服務(wù)和數(shù)據(jù)融合服務(wù)。更多信息,請參見什么是Tapdata。
注意事項
當(dāng)前支持MySQL 5.0、5.1、5.5、5.6、5.7、8.x版本的數(shù)據(jù)同步。
使用流程
使用Tapdata Cloud將MySQL數(shù)據(jù)同步到表格存儲的使用流程如下:
配置MySQL數(shù)據(jù)庫和授權(quán)賬號。具體操作,請參見步驟一:配置MySQL數(shù)據(jù)庫和授權(quán)賬號。
在MySQL數(shù)據(jù)庫所屬機器或相同網(wǎng)絡(luò)的機器上部署Tapdata Agent。具體操作,請參見步驟二:部署Tapdata Agent。
Tapdata Agent(簡稱Agent)是數(shù)據(jù)同步、數(shù)據(jù)異構(gòu)、數(shù)據(jù)開發(fā)場景中的關(guān)鍵程序,通過流式技術(shù)從源端獲取數(shù)據(jù)、處理轉(zhuǎn)換數(shù)據(jù)并發(fā)送到目標(biāo)端。
重要Agent通過流式技術(shù)從源端獲取數(shù)據(jù)、處理轉(zhuǎn)換數(shù)據(jù)并發(fā)送到目標(biāo)端,數(shù)據(jù)不會流經(jīng) Tapdata Cloud,也不會上傳和留存您的數(shù)據(jù)。
使用Tapdata Cloud連接源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫。具體操作,請參見步驟三:連接源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫。
創(chuàng)建數(shù)據(jù)復(fù)制任務(wù)用于進行源數(shù)據(jù)庫到目標(biāo)數(shù)據(jù)庫的數(shù)據(jù)復(fù)制。具體操作,請參見步驟四:配置數(shù)據(jù)復(fù)制任務(wù)。
步驟一:配置MySQL數(shù)據(jù)庫和授權(quán)賬號
同步MySQL數(shù)據(jù)庫的數(shù)據(jù)前,您需要為MySQL數(shù)據(jù)復(fù)制任務(wù)創(chuàng)建一個數(shù)據(jù)庫賬號。 為了實現(xiàn)增量數(shù)據(jù)同步,請為數(shù)據(jù)庫開啟Binlog。
登錄MySQL數(shù)據(jù)庫。
根據(jù)所用數(shù)據(jù)庫版本執(zhí)行相應(yīng)命令創(chuàng)建數(shù)據(jù)庫賬號。
當(dāng)數(shù)據(jù)庫為MySQL 5.0、5.1、5.5、5.6、5.7版本時,請執(zhí)行如下命令:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
當(dāng)數(shù)據(jù)庫為MySQL 8.x版本時,請執(zhí)行如下命令:
CREATE USER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'password';
命令中的配置項說明請參見下表。
配置項
示例
說明
username
tapdatamysql
數(shù)據(jù)庫的用戶名。
password
Tap**********
數(shù)據(jù)庫的密碼。
host
%
允許使用該賬號登錄的主機。設(shè)置為百分號(%)表示允許任意主機。
為剛創(chuàng)建的數(shù)據(jù)庫賬號授予權(quán)限。
實際使用時,建議基于業(yè)務(wù)需求設(shè)置更精細化的權(quán)限控制。此處以授予指定庫SELECT權(quán)限以及授予全局權(quán)限為例介紹。
授予指定庫SELECT權(quán)限
GRANT SELECT, SHOW VIEW, CREATE ROUTINE, LOCK TABLES ON database_name.table_name TO 'username' IDENTIFIED BY 'password';
授予全局權(quán)限
GRANT RELOAD, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'username' IDENTIFIED BY 'password';
命令中的配置項說明請參見下表。
配置項
示例
說明
database_name.table_name
datademo.userinfo
要授予權(quán)限的數(shù)據(jù)庫和表。
username
tapdatamysql
數(shù)據(jù)庫的用戶名。
password
Tap**********
數(shù)據(jù)庫的密碼。
為了讀取MySQL數(shù)據(jù)庫的增量數(shù)據(jù),請為數(shù)據(jù)庫開啟Binlog。
執(zhí)行vim命令修改
$MYSQL_HOME/mysql.cnf
中的配置。配置示例如下:server_id = 112233 log_bin = mysql-binlog expire_logs_days = 1 binlog_format = row binlog_row_image = full
配置項說明請參見下表。
配置項
示例
說明
server_id
112233
用于標(biāo)識MySQL中的服務(wù)器或者復(fù)制客戶端。數(shù)據(jù)庫中服務(wù)器和復(fù)制客戶端的server_id必須唯一。取值范圍為大于0的整數(shù)。
log_bin
mysql-binlog
Binlog序列文件的基本名稱。
expire_logs_days
1
二進制日志文件保留的天數(shù)。系統(tǒng)會自動刪除到期的二進制日志文件。
binlog_format
row
二進制日志的格式,請設(shè)置為row。
binlog_row_image
full
對MySQL基于行復(fù)制時,行映像寫入二進制日志中的方式,請設(shè)置為full,表示記錄行中的所有列。
修改完成后,執(zhí)行如下命令重啟MySQL進程。
/etc/init.d/mysqld restart
登錄MySQL數(shù)據(jù)庫后,執(zhí)行如下命令確認Binlog配置已生效,即format的取值為ROW。
SHOW VARIABLES LIKE 'binlog_format';
返回示例如下:
+---------------+-------+ | Variable_name | Value | +---------------+-------+ | binlog_format | ROW | +---------------+-------+ 1 row in set (0.00 sec)
步驟二:部署Tapdata Agent
待部署Agent的機器必須能夠訪問互聯(lián)網(wǎng)。
由于數(shù)據(jù)流轉(zhuǎn)通常對時效性有較高的要求,因此,推薦將Tapdata Agent部署在MySQL數(shù)據(jù)庫所屬機器或相同網(wǎng)絡(luò)的機器中,可極大降低網(wǎng)絡(luò)延遲帶來的影響。
此處以Linux操作系統(tǒng)(64位)為例介紹Agent部署流程,如果需要部署到其他平臺(例如Windows、阿里云計算巢),請參見安裝Agent文檔。
在左側(cè)導(dǎo)航欄,單擊Agent管理。
在Agent管理頁面,單擊創(chuàng)建Agent。
在Agent下載與安裝對話框,選擇Linux(64 bit),然后根據(jù)界面提示進行Agent安裝。
重要安裝前請確認您的部署環(huán)境中已安裝JAVA 1.8版本并正確配置環(huán)境變量。
登錄到待部署Agent的機器。
執(zhí)行如下命令創(chuàng)建tapdata目錄用于安裝和部署Tapdata Agent。
mkdir tapdata
單擊界面中的復(fù)制,復(fù)制步驟3的命令,并在tapdata目錄下執(zhí)行命令。
說明執(zhí)行該命令后,Tapdata Agent會自動下載、自動部署以及啟動。
等待命令執(zhí)行完成,即可完成Tapdata Agent的安裝和啟動。
Tapdata Agent啟動成功的示例如下圖所示。
步驟三:連接源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫
通過Tapdata Cloud連接源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫。
在左側(cè)導(dǎo)航欄,單擊連接管理。
連接作為源庫的MySQL數(shù)據(jù)庫。
在連接管理頁面,單擊創(chuàng)建連接。
在創(chuàng)建連接對話框的認證數(shù)據(jù)源頁簽,單擊Mysql。
在創(chuàng)建連接頁面,根據(jù)下表說明配置數(shù)據(jù)源參數(shù)。
參數(shù)
描述
連接名稱
數(shù)據(jù)連接名稱,請根據(jù)實際設(shè)置。多個連接的名稱不能相同。
連接類型
支持將MySQL作為源庫或目標(biāo)庫。可取值為源頭和目標(biāo)或者源頭。
地址
數(shù)據(jù)庫連接地址。
端口
數(shù)據(jù)庫的服務(wù)端口。
數(shù)據(jù)庫
數(shù)據(jù)庫名稱,即一個連接對應(yīng)一個數(shù)據(jù)庫。
說明如果有多個數(shù)據(jù)庫,則需要創(chuàng)建多個數(shù)據(jù)連接。
賬號
數(shù)據(jù)庫的賬號。
密碼
數(shù)據(jù)庫的密碼。
高級設(shè)置
連接參數(shù)
額外的連接參數(shù),默認為空。
時區(qū)
默認為數(shù)據(jù)庫所用的時區(qū),您也可以根據(jù)業(yè)務(wù)需求指定。
如果源庫為默認數(shù)據(jù)庫時區(qū)(+8:00),目標(biāo)端數(shù)據(jù)庫為指定時區(qū)(+0:00),假設(shè)源端數(shù)據(jù)庫存儲的時間為
2020-01-01 16:00:00
,則目標(biāo)端數(shù)據(jù)庫存儲的時間為2020-01-01 08:00:00
。包含表
要包含的表。取值范圍如下:
全部(默認):包含數(shù)據(jù)庫中的所有表。
自定義:自定義要包含的表。多個表或者表達式之間用半角逗號(,)分隔。表達式支持使用星號(*)表示任意長度的字符。
排除表
從包含表規(guī)則匹配到的表中將指定的表排除。
打開排除表開關(guān),設(shè)置要排除的表。多個表或者表達式之間用半角逗號(,)分隔。表達式支持使用星號(*)表示任意長度的字符。
agent設(shè)置
使用的Agent信息。取值范圍如下:
平臺自動分配(默認):由平臺分配節(jié)點進行連接訪問。
用戶手動指定:設(shè)置此參數(shù)為用戶手動指定后,選擇要使用的Agent。
模型加載時間
數(shù)據(jù)源中模型數(shù)量大于1萬時,Tapdata Cloud會按此參數(shù)設(shè)置的時間定期進行模型刷新。
單擊連接測試,測試通過后單擊保存。
說明如果提示連接測試失敗,請根據(jù)頁面提示進行修復(fù)。
連接作為目標(biāo)庫的表格存儲。
在連接管理頁面,單擊創(chuàng)建連接。
在創(chuàng)建連接對話框的Beta數(shù)據(jù)源頁簽,單擊Tablestore。
在創(chuàng)建連接頁面,根據(jù)下表說明配置數(shù)據(jù)源參數(shù)。
參數(shù)
描述
連接名稱
數(shù)據(jù)連接名稱,請根據(jù)實際設(shè)置。
連接類型
固定取值為目標(biāo)。此數(shù)據(jù)連接在Tapdata Cloud中只能作為目標(biāo)使用,不能作為源頭。
服務(wù)地址
表格存儲實例的服務(wù)地址。更多信息,請參見服務(wù)地址。
實例名稱
表格存儲實例的名稱。更多信息,請參見實例。
AccessKey ID
RAM用戶的AccessKey ID和AccessKey Secret。
說明當(dāng)使用從STS獲取的臨時訪問憑證訪問表格存儲時,請設(shè)置為臨時訪問憑證的AccessKey ID和AccessKey Secret。
AccessKey Secret
AccessKey Token
臨時訪問令牌。當(dāng)使用從STS獲取的臨時訪問憑證訪問表格存儲時,需要設(shè)置此參數(shù)。
agent設(shè)置
使用的Agent信息。取值范圍如下:
平臺自動分配(默認):由平臺分配節(jié)點進行連接訪問。
用戶手動指定:設(shè)置此參數(shù)為用戶手動指定后,選擇要使用的Agent。
模型加載頻率
數(shù)據(jù)源中模型數(shù)量大于1萬時,Tapdata Cloud會按此參數(shù)設(shè)置定期進行模型刷新。
單擊連接測試,測試通過后單擊保存。
說明如果提示連接測試失敗,請根據(jù)頁面提示進行修復(fù)。
步驟四:配置數(shù)據(jù)復(fù)制任務(wù)
通過配置數(shù)據(jù)復(fù)制任務(wù),可以實現(xiàn)同構(gòu)或者異構(gòu)數(shù)據(jù)源間的實時同步,適用于數(shù)據(jù)遷移、數(shù)據(jù)同步、數(shù)據(jù)災(zāi)備、讀性能擴展等多種業(yè)務(wù)場景。
在左側(cè)導(dǎo)航欄,單擊數(shù)據(jù)復(fù)制。
在數(shù)據(jù)復(fù)制頁面,單擊創(chuàng)建。
在頁面左側(cè),將MySQL和表格存儲數(shù)據(jù)庫拖拽到右側(cè)畫布中,然后將其連接起來。
單擊MySQL數(shù)據(jù)庫,在右側(cè)面板根據(jù)下表說明配置參數(shù)。
參數(shù)
描述
節(jié)點名稱
默認為連接名稱,請根據(jù)實際設(shè)置。
DDL事件采集
暫不支持對表格存儲執(zhí)行DDL語句同步,無需配置此參數(shù)。
選擇表
選擇要復(fù)制的表。取值范圍如下:
按表名選擇:按照表名選擇待復(fù)制的表。
在待復(fù)制表區(qū)域選中表,然后單擊圖標(biāo)完成設(shè)置。
您也可以單擊批量選表,輸入多個表名來批量選擇要復(fù)制的表。多個表名之間用半角逗號(,)分隔。
按正則表達式匹配:使用正則表達式匹配滿足表達式的表作為要復(fù)制的表。
使用此方式時,當(dāng)源庫中新增的表滿足表達式時,該表也會被自動同步到目標(biāo)庫。
批量讀取條數(shù)
全量同步時,每批次讀取的記錄條數(shù),默認為100。
單擊Tablestore數(shù)據(jù)庫,預(yù)覽數(shù)據(jù)結(jié)構(gòu)并設(shè)置高級選項。
參數(shù)
描述
節(jié)點名稱
默認為連接名稱,請根據(jù)實際設(shè)置。
推演結(jié)果
查看表的數(shù)據(jù)結(jié)構(gòu)(例如字段名稱、字段類型)以及根據(jù)需要設(shè)置字段類型。
說明如需調(diào)整字段類型,單擊目標(biāo)字段類型中的圖標(biāo),然后在彈出的對話框中完成設(shè)置。
由于Tablestore單個表的列數(shù)量不可超過32個,如果MySQL中待同步表的列數(shù)量超過32,您可以在頁面左側(cè)拖拽一個字段編輯節(jié)點進來,將其作為MySQL和Tablestore的中間節(jié)點連接起來,然后在字段編輯節(jié)點中屏蔽與業(yè)務(wù)無關(guān)的列以滿足需求,
高級設(shè)置
重復(fù)處理策略
當(dāng)目標(biāo)表已存在時的處理策略,默認為保持目標(biāo)端原有結(jié)構(gòu)及數(shù)據(jù)。如果目標(biāo)表沒有數(shù)據(jù)且結(jié)構(gòu)和源表不一致,可選擇為清除目標(biāo)表原有表結(jié)構(gòu)及數(shù)據(jù)。
數(shù)據(jù)寫入模式
數(shù)據(jù)寫入表格存儲的處理方式。取值范圍如下:
按事件類型處理:根據(jù)插入事件、更新事件和刪除事件分別設(shè)置數(shù)據(jù)寫入策略。
追加寫入:只處理插入事件,丟棄更新事件和刪除事件。
數(shù)據(jù)寫入策略
按照事件類型處理數(shù)據(jù)寫入時的策略。當(dāng)數(shù)據(jù)寫入模式選擇為按事件類型處理時才能設(shè)置此參數(shù)。
處理插入事件的策略為目標(biāo)存在時更新,處理更新事件和刪除事件的策略為不存在時丟棄。
全量多線程寫入
全量數(shù)據(jù)寫入的并發(fā)線程數(shù),默認值為8,可基于目標(biāo)端寫性能適當(dāng)調(diào)整。
增量寫入線程數(shù)
增量數(shù)據(jù)寫入的并發(fā)線程數(shù),默認未啟用。打開增量寫入線程數(shù)開關(guān)后可基于目標(biāo)端寫性能適當(dāng)調(diào)整。
可選:單擊上方的圖標(biāo),請根據(jù)下表說明配置任務(wù)屬性。
參數(shù)
描述
任務(wù)名稱
同步任務(wù)的名稱,請根據(jù)實際設(shè)置。
同步類型
數(shù)據(jù)同步的類型。取值范圍如下:
全量+增量:全量數(shù)據(jù)同步完成后,再同步增量數(shù)據(jù)。
全量:將源端的存量數(shù)據(jù)復(fù)制到目標(biāo)端。
增量:將源端實時產(chǎn)生的新數(shù)據(jù)或數(shù)據(jù)變更復(fù)制到目標(biāo)端。
任務(wù)描述
任務(wù)的描述信息。
高級設(shè)置
計劃開始時間
任務(wù)的計劃開始時間。
如果需要指定任務(wù)開始時間,打開計劃開始時間開關(guān)后,選擇開始的日期和時間。
數(shù)據(jù)校驗
打開數(shù)據(jù)校驗開關(guān)后,任務(wù)會自動對同步結(jié)果的一致性進行全量校驗和增量校驗,并會在運行監(jiān)控頁面展示校驗不一致的數(shù)據(jù)行數(shù)。
重要當(dāng)任務(wù)符合以下任意一種情況時,即使打開數(shù)據(jù)校驗開關(guān),任務(wù)也不會進行校驗。
添加了中間處理節(jié)點。
源連接不支持校驗。
目標(biāo)連接不支持校驗。
增量同步并發(fā)寫入
打開增量同步并發(fā)寫入開關(guān)后,增量同步時,源端數(shù)據(jù)會并發(fā)寫入目標(biāo)端。
增量滯后判斷時間設(shè)置
用于快速判斷復(fù)制任務(wù)是否存在滯后。
打開增量滯后判斷時間設(shè)置開關(guān)并設(shè)置判斷時間。增量同步時,如果增量同步的滯后時間大于設(shè)置的判斷時間,則復(fù)制任務(wù)存在滯后。
默認值為1,單位為秒。
處理器線程數(shù)
處理器的線程數(shù)。
增量數(shù)據(jù)處理模式
增量同步時,增量數(shù)據(jù)的處理模式。取值范圍為批量、逐條。
agent設(shè)置
使用的Agent信息。取值范圍如下:
平臺自動分配(默認):由平臺分配節(jié)點進行連接訪問。
用戶手動指定:設(shè)置此參數(shù)為用戶手動指定后,選擇要使用的Agent。
確認無誤后,單擊啟動。
操作完成后,您可以查看任務(wù)的執(zhí)行情況,例如QPS、延遲、任務(wù)時間統(tǒng)計等信息。