自定義RDBMS數(shù)據(jù)庫及同步數(shù)據(jù)
為了滿足不同業(yè)務場景數(shù)據(jù)集成的訴求,Dataphin支持用戶自定義當前系統(tǒng)不支持的RDBMS數(shù)據(jù)庫(關系型數(shù)據(jù)庫)類型的組件,并進行數(shù)據(jù)同步。您只需要準備關系型數(shù)據(jù)庫的驅(qū)動,即可自定義RDBMS數(shù)據(jù)庫類型的組件。本教程以MySQL為例,為您介紹如何自定義RDBMS數(shù)據(jù)庫及進行數(shù)據(jù)同步。
前提條件
已開通RDS MySQL實例,且網(wǎng)絡類型為專有網(wǎng)絡(VPC)。如何開通RDS MySQL實例,請參見快速創(chuàng)建RDS MySQL實例。
已創(chuàng)建RDS MySQL實例的數(shù)據(jù)庫和賬號,創(chuàng)建過程中需要您記錄數(shù)據(jù)庫名稱、用戶名和密碼。如何創(chuàng)建數(shù)據(jù)庫和賬號,請參見創(chuàng)建數(shù)據(jù)庫和賬號。
已下載MySQL數(shù)據(jù)庫的驅(qū)動。
背景信息
RDBMS數(shù)據(jù)庫即關系型數(shù)據(jù)庫,包括MySQL、Oracle、SQL Server、PostgreSQL、Vertica、DRDS、DB2、OceanBase、PolarDB、SAP HANA和TeraData。本教程以MySQL為例,帶您體驗自定義RDBMS數(shù)據(jù)庫,并進行數(shù)據(jù)同步。
操作流程
自定義并應用MySQL數(shù)據(jù)庫組件的流程如下:
步驟 | 描述 |
在您開始自定義并應用RDBMS數(shù)據(jù)庫組件前,需要配置RDS MySQL實例和Dataphin間的網(wǎng)絡,及創(chuàng)建同步數(shù)據(jù)的源表和目標表。 | |
自定義數(shù)據(jù)源的類型為test_rdbms_mysql。完成定義后,即可在組件庫的開發(fā)模塊下查詢到自定義的數(shù)據(jù)源組件。 | |
基于自定義的數(shù)據(jù)源組件類型(test_rdbms_mysql),創(chuàng)建test_rdbms_mysql類型的數(shù)據(jù)源實例。完成創(chuàng)建數(shù)據(jù)源實例后,即可將RDS MySQL實例的業(yè)務數(shù)據(jù)引入至Dataphin實例。 | |
基于自定義的數(shù)據(jù)源組件類型(test_rdbms_mysql)和數(shù)據(jù)源實例(test_rdbms_mysql),創(chuàng)建離線管道任務。完成離線管道任務的創(chuàng)建后,即可運行離線管道任務,以實現(xiàn)數(shù)據(jù)的集成(同步數(shù)據(jù))。 |
步驟一:配置網(wǎng)絡和創(chuàng)建數(shù)據(jù)表
連通RDS MySQL實例與Dataphin實例間的網(wǎng)絡。
添加RDS MySQL實例的外網(wǎng)地址和端口至Dataphin項目空間的沙箱白名單:
獲取RDS MySQL實例的外網(wǎng)地址、端口。
進入數(shù)據(jù)庫連接頁面,獲取RDS MySQL實例的外網(wǎng)地址和端口。
添加RDS MySQL實例的外網(wǎng)地址和端口至Dataphin項目空間的沙箱白名單。如何添加沙箱白名單,請參見添加項目成員。
添加Dataphin的IP至RDS MySQL實例的白名單。如何添加Dataphin的IP至RDS MySQL實例的白名單,請參見通過客戶端、命令行連接RDS MySQL實例。
地域
IP白名單
華東2(上海)
100.104.228.128/26、100.104.115.192/26
華南1(深圳)
100.104.48.128/26
華北2(北京)
100.104.238.64/26
華東2(上海)、華南1(深圳)、華北2(北京)
100.104.0.0/16
創(chuàng)建同步數(shù)據(jù)的源數(shù)據(jù)表和目標數(shù)據(jù)表。
使用命令行方式連接MySQL實例,連接后創(chuàng)建同步數(shù)據(jù)的源數(shù)據(jù)表和目標數(shù)據(jù)表。如何連接MySQL實例,請參見通過客戶端、命令行連接RDS。
創(chuàng)建源數(shù)據(jù)表的代碼示例如下。
create table xin_test_scr2 ( id string, name string ); insert into xin_test_scr2 values('1001','huayu1'),('1002','huayuyu2'),
創(chuàng)建目標數(shù)據(jù)表的代碼示例如下。
create table xin_test_det_1 ( id string, name string );
步驟二:創(chuàng)建自定義數(shù)據(jù)源
登錄Dataphin控制臺。
在Dataphin控制臺頁面,選擇工作區(qū)地域后,單擊進入Dataphin>>。
進入自定義組件頁面。
在Dataphin首頁,單擊管理中心。
在管理中心頁面,單擊頂部菜單欄數(shù)據(jù)源管理。
在自定義源類型頁面,單擊+新建離線自定義源類型。
在新建離線自定義源類型頁面,配置參數(shù)。
參數(shù)
描述
基本配置
類型
選擇類型為RDBMS數(shù)據(jù)庫。
名稱
填寫名稱為test_rdbms_mysql。
重要因為名稱定義了自定義組件的類型,所以系統(tǒng)不支持創(chuàng)建相同名稱的自定義組件。
類型編碼
用于數(shù)據(jù)源類型的唯一標識編碼,供后端使用。填寫為rdbms_mysql。
資源配置
驅(qū)動名稱
填寫驅(qū)動名稱為com.mysql.jdbc.Driver。
驅(qū)動上傳
上傳已下載的驅(qū)動文件(mysql-connector-java-5.1.47)。請參見前提條件。
描述信息
描述
填寫為mysql-5.1.47數(shù)據(jù)庫。
單擊創(chuàng)建。
步驟三:創(chuàng)建數(shù)據(jù)源實例
在數(shù)據(jù)源管理頁面,單擊頁面右上角的+新建數(shù)據(jù)源。
在新建數(shù)據(jù)源對話框中,選擇自定義數(shù)據(jù)源下的test_rdbms_mysql數(shù)據(jù)源。
在新建test_rdbms_mysql數(shù)據(jù)源對話框,配置參數(shù)。
參數(shù)
描述
數(shù)據(jù)源名稱
填寫數(shù)據(jù)源名稱為test_rdbms_mysql。
數(shù)據(jù)源描述
填寫數(shù)據(jù)源的簡單描述。
數(shù)據(jù)源配置
配置數(shù)據(jù)源:
如果開發(fā)模式是Basic模式,則選擇生產(chǎn)數(shù)據(jù)源。
如果開發(fā)模式是Dev-Prod模式,則可以通過以下方式配置數(shù)據(jù)源:
單擊生產(chǎn)+開發(fā)數(shù)據(jù)源,配置生產(chǎn)環(huán)境和開發(fā)環(huán)境的數(shù)據(jù)源。
單擊生產(chǎn)數(shù)據(jù)源,配置生產(chǎn)數(shù)據(jù)源。完成生產(chǎn)數(shù)據(jù)源的創(chuàng)建后,單擊開發(fā)數(shù)據(jù)源,配置開發(fā)環(huán)境的數(shù)據(jù)源。
說明系統(tǒng)支持配置生產(chǎn)數(shù)據(jù)源和開發(fā)數(shù)據(jù)源為相同的數(shù)據(jù)源,也可以配置為不同的數(shù)據(jù)源。
標簽
非必填,配置數(shù)據(jù)源的標簽分類。
生產(chǎn)數(shù)據(jù)源或生產(chǎn)+開發(fā)數(shù)據(jù)源
鏈接地址
填寫數(shù)據(jù)源的鏈接地址。
鏈接地址的格式為:
jdbc:mysql://{Public Endpoint}:3306/{DatabaseName}
。{Public Endpoint}:外網(wǎng)地址。
{DatabaseName}:數(shù)據(jù)庫名稱。
用戶名
登錄數(shù)據(jù)庫的用戶名。
密碼
登錄數(shù)據(jù)庫的密碼。
單擊測試鏈接,測試數(shù)據(jù)源的連通性。
重要非RDBMS類型數(shù)據(jù)源不支持連接測試,請您務必保證數(shù)據(jù)源連接信息的準確性。
單擊確定。
步驟四:創(chuàng)建并開發(fā)離線管道任務
在數(shù)據(jù)源頁面,鼠標懸停至左上角圖標后,單擊集成。
在數(shù)據(jù)集成頁面,進入創(chuàng)建管道開發(fā)腳本對話框。
單擊左側(cè)導航欄離線管理,進入離線管道開發(fā)頁面。
在離線管道開發(fā)頁面,單擊并選擇離線單條管道,進入創(chuàng)建管道開發(fā)腳本對話框。
在創(chuàng)建管道開發(fā)腳本對話框,配置參數(shù)。
參數(shù)
描述
管道名稱
填寫為test。
調(diào)度類型
選擇為手動節(jié)點。
描述
填寫簡單的描述。例如,測試自定義組件。
選擇目錄
默認為離線管道。
單擊確定。
在test離線管道頁面,單擊頁面右上角的后,單擊選擇自定義。
拖動組件custom_test_rdbms_mysql_輸入配置和custom_test_rdbms_mysql_輸出配置至左側(cè)的管道畫布中。
連接輸入與輸出組件并單擊配置組件。如下圖所示:
custom_test_rdbms_mysql_輸入組件配置。
參數(shù)
描述
步驟名稱
本教程中保持默認。
您也可以修改名稱。步驟名稱命名規(guī)則如下:只能包括字母、數(shù)字和短劃線(-)。長度為64字符以內(nèi)。
數(shù)據(jù)源
選擇test_rdbms_mysql。
表
填寫來源表為xin_test_src2。
輸入過濾
本教程中無需配置。
輸入過濾即填寫輸入字段的過濾信息,例如
ds=${bizdate}
。輸入過濾適用于以下兩種場景:
固定的某一部分數(shù)據(jù)。
參數(shù)過濾。
輸出字段
輸出字段即需要同步數(shù)據(jù)的字段。本教程中添加源表xin_test_scr2中的id和name字段為輸入組件的輸出字段:
在輸出字段區(qū)域,單擊新建輸出字段。
填寫輸出字段為id,類型選擇為String。
單擊新建輸出字段。
填寫輸出字段為name,類型選擇為String。
custom_test_rdbms_mysql_輸出組件配置。
參數(shù)
描述
步驟名稱
本教程中保持默認。
您也可以修改名稱。步驟名稱命名規(guī)則如下:只能包括字母、數(shù)字和短劃線(-)。長度為64字符以內(nèi)。
數(shù)據(jù)源
選擇test_rdbms_mysql。
表
填寫目標表為xin_test_dst_1。
解析方案
本教程中無需選擇。
解析方案為非必填項。選擇數(shù)據(jù)輸出前和輸出完成的一些特殊處理方式。解析方案包括填寫準備語句和填寫完成語句: 填寫準備語句:導入前執(zhí)行的SQL腳本。填寫完成語句:導入后執(zhí)行的SQL腳本。
輸入字段
默認展示輸入組件中配置的輸出字段。
輸出字段
輸出字段即需要同步數(shù)據(jù)的字段。本教程中添加源表xin_test_scr2中的id和name字段為輸出組件的輸出字段:
在輸出字段區(qū)域,單擊新建輸出字段。
填寫輸出字段為id,類型選擇為String。
單擊新建輸出字段。
填寫輸出字段為name,類型選擇為String。
映射關系
單擊快速映射后,選擇同名映射。
映射關系指的是輸入組件的輸出字段和輸出組件的輸出字段間的映射關系。映射關系包含同名映射和同行映射:
同名映射:映射字段名稱相同的字段。
同行映射:映射同行的字段。同行映射后,輸入字段為最終的輸出字段。
單擊確定。
單擊畫布工具欄運行,運行離線管道任務,查看任務是否正常執(zhí)行。