GaussDB for DWS 數據融合系列第一期:云端數據接入(CDM)(Gaussdb數據庫)
概述

云數據遷移服務(Cloud Data Migration,簡稱CDM),可以將其他數據源(例如MySQL)的數據遷移到GaussDB(DWS) 集群的數據庫中。
GaussDB(DWS)提供了靈活的數據入庫方式,可以將多種數據源的數據導入到GaussDB(DWS)中,如圖1所示。各導入方式具有不同的特點,如表1所示,用戶可以根據其特點自行選擇。建議用戶配合云數據遷移(Cloud Data Migration,簡稱CDM)、數據接入服務(Data Ingestion Service,簡稱DIS)和數據湖工廠(Data Lake Factory,簡稱DLF)一起使用,CDM用于批量數據遷移,DIS用于流數據接入,DLF可以對整個ETL過程進行編排調度,同時提供可視化的開發環境。
導入方式:
數據導入方式說明:
數據導入方式
數據源
說明
優勢
從OBS并行導入數據
OBS
支持將存儲在OBS上的TXT、CSV、ORC及CARBONDATA格式的數據并行導入到GaussDB(DWS),支持導入后查詢數據,也支持遠程讀OBS上的數據。
GaussDB(DWS)優先推薦的導入方式。
并行拉取方式,性能好,橫向擴展。
使用GDS從遠端服務器導入數據
Servers(即遠端服務器)
使用GaussDB(DWS)提供的GDS工具,利用多DN并行的方式,將數據從遠端服務器導入到GaussDB(DWS)。這種方式導入效率高,適用于大批量數據入庫。
從MRS導入數據到集群
MRS(HDFS)
配置一個GaussDB(DWS)集群連接到一個MRS集群,然后將數據從MRS的HDFS中讀取到GaussDB(DWS)。
并行拉取方式,性能好,橫向擴展。
使用CDM遷移數據到GaussDB(DWS)
數據庫、NoSQL、文件系統、大數據平臺
CDM提供同構/異構數據源之間批量數據遷移的功能,幫助您實現從多種類型的數據源遷移數據到GaussDB(DWS)。CDM在遷移數據到GaussDB(DWS)時,采用的是Copy方式和GDS并行導入方式。
數據源豐富,操作簡單。
從DIS導入流式數據到GaussDB(DWS)
流數據
可以將流式數據從DIS通道周期性導入到GaussDB(DWS)集群的數據庫中。導入GaussDB(DWS)前數據臨時存儲在OBS,待轉儲GaussDB(DWS)完成后刪除OBS上的臨時存儲數據。
準實時入庫。
第三方ETL工具
數據庫、NoSQL、文件系統、大數據平臺
請參考第三方ETL工具的相關文檔。
GaussDB(DWS)提供了DSC工具,可以將Teradata/Oracle腳本遷移到GaussDB(DWS)。
·???????? 使用DSC工具遷移SQL腳本
·???????? 使用Schema Convertor Tool將MySQL遷移到DWS
通過OBS中轉,數據源豐富,數據轉換能力強。
通過INSERT語句直接寫入數據
-
使用SQL客戶端工具或JDBC/ODBC驅動連接GaussDB(DWS)數據庫時,執行INSERT語句插入一行或多行數據,以及從指定表插入數據。
INSERT是最簡單的一種數據寫入方式,適合數據寫入量不大,并發度不高的場景。
使用COPY FROM STDIN導入數據
其他文件或數據庫
使用Java語言開發應用程序時,通過調用JDBC驅動的CopyManager接口,從文件或其他數據庫向GaussDB(DWS)寫入數據。
從其他數據庫直接寫入GaussDB(DWS)的方式,具有業務數據無需落地成文件的優勢。
使用gsql元命令\copy導入數據
本地文件
與直接使用SQL語句COPY不同,該命令讀取/寫入的文件只能是gsql客戶端所在機器上的本地文件。
操作簡單,適用于小批量數據入庫。
場景介紹
本節介紹云數據遷移(Cloud Data Migration,以下簡稱CDM)的基礎使用方法,通過使用CDM遷移本地MySQL數據庫中的表,寫入到數據倉庫服務DWS的具體操作,幫助您了解、熟悉CDM服務,具體場景如圖。
CDM的基本使用流程如下:
創建CDM集群
創建連接
創建并執行作業
查看作業運行結果
以完成數據遷移
創建集群
操作場景
用戶首先需要創建CDM集群,來執行MySQL數據同步到DWS的任務。
前提條件
已獲取DWS所在的區域、VPC、子網、安全組。
操作步驟
1. 登錄CDM管理控制臺。
2. 單擊“購買云數據遷移服務”,進入創建CDM集群的界面,集群配置樣例如下:
當前區域:選擇CDM集群的區域,不同區域的資源之間內網不互通,這里必須選擇與DWS所在區域一致。
可用區:指在同一區域下,電力、網絡隔離的物理區域,可用區之內內網互通,不同可用區之間物理隔離。這里選擇“可用區2”。
集群名稱:集群名稱在4位到64位之間,必須以字母開頭,可以包含字母、數字、中劃線或者下劃線,不能包含其他的特殊字符,例如:“cdm-aff1”。
版本:默認即可。
實例類型:用戶按實際業務數據量選擇實例規格,這里選擇“cdm.medium”即可,適用大部分遷移場景。
large:8核CPU、16G內存的虛擬機,最大帶寬/基準帶寬為3/0.8Gbps,能夠并發執行的作業個數為20,適合單張表規?!?000萬條的場景。
xlarge:16核CPU、32G內存的虛擬機,最大帶寬/基準帶寬為10/4Gbps,能夠并發執行的作業個數為100,適合使用10GE高速帶寬進行TB以上的數據量遷移。
4xlarge:64核CPU、128G內存的虛擬機,最大帶寬/基準帶寬為30/30Gbps,能夠并發執行的作業個數為300。
虛擬私有云:即VPC(Virtual Private Cloud),這里必須選擇與DWS相同的VPC。
子網:推薦與DWS的子網一致。
安全組:推薦與DWS的安全組一致。
這里所配置的子網、安全組也可以與DWS不一致,但是需要配置安全組規則,允許CDM集群能正常訪問DWS。
其它參數保持默認即可。
3. 查看當前配置,確認無誤后單擊“立即購買”進入規格確認界面。
說明:集群創建好以后不支持修改規格,如果需要使用更高規格,需要重新創建。
4. 單擊“提交申請”,系統開始自動創建CDM集群,在“集群管理”界面可查看創建進度。
說明:創建集群需要10~20分鐘時間,如果您是首次創建CDM集群,只需要一分鐘即可。
創建連接
連接說明
遷移本地MySQL數據庫到數據倉庫服務DWS前,需要創建2個連接:
MySQL連接:CDM連接本地MySQL數據庫。
DWS連接:CDM連接DWS數據庫。
由于CDM需要訪問本地數據源,所以創建連接前,需先為CDM集群綁定彈性IP,CDM通過彈性IP訪問MySQL數據庫。
前提條件
用戶本地的MySQL數據庫已允許通過公網IP訪問。
用戶已擁有EIP配額。
已獲取連接MySQL數據庫的IP地址、端口、數據庫名稱、用戶名、密碼,且該用戶擁有MySQL數據庫的讀、寫和刪除權限。
用戶已經擁有了DWS實例,已獲取連接DWS數據庫的IP地址、端口、數據庫名稱、用戶名、密碼,且該用戶擁有DWS數據庫的讀、寫和刪除權限。
創建MySQL連接
1. 登錄CDM管理控制臺。
2. 單擊左側導航上的“集群管理”,找到步驟1:創建集群章節創建的集群“cdm-aff1”。
3. 單擊該集群后的“綁定彈性IP”,選擇并綁定彈性公網IP。
圖1?綁定EIP
說明:如果用戶對本地數據源的訪問通道做了SSL加密,則CDM無法通過彈性IP連接數據源。
4. 單擊CDM集群后的“作業管理”,進入作業管理界面,再選擇“連接管理>?新建連接”,進入選擇連接器類型的界面,如圖2所示。
圖2?選擇連接器類型
5. 選擇“MySQL”后單擊“下一步”,配置MySQL連接的參數。
圖3?創建MySQL連接
單擊“顯示高級屬性”可查看更多可選參數,具體請參見配置關系數據庫連接。這里保持默認,必填參數如表1所示。
參數名
說明
取值樣例
名稱
輸入便于記憶和區分的連接名稱。
mysqllink
數據庫服務器
MySQL數據庫的IP地址或域名。
192.168.0.1
端口
MySQL數據庫的端口。
3306
數據庫名稱
MySQL數據庫的名稱。
sqoop
用戶名
擁有MySQL數據庫的讀、寫和刪除權限的用戶。
admin
密碼
用戶的密碼。
-
使用Agent
是否選擇通過Agent從源端提取數據。
是
Agent
單擊“選擇”,選擇連接Agent中已創建的Agent。
-
6. 單擊“保存”回到連接管理界面。
說明:如果保存時出錯,一般是由于MySQL數據庫的安全設置問題,需要設置允許CDM集群的EIP訪問MySQL數據庫。
創建DWS連接
1. 在“連接管理”界面單擊“新建連接”,連接器類型選擇“數據倉庫服務(DWS)”。
2. 單擊“下一步”配置DWS連接參數,必填參數如表2所示,可選參數保持默認即可。
參數名
說明
取值樣例
名稱
輸入便于記憶和區分的連接名稱。
dwslink
數據庫服務器
DWS數據庫的IP地址或域名。
192.168.0.3
端口
DWS數據庫的端口。
8000
數據庫名稱
DWS數據庫的名稱。
db_demo
用戶名
擁有DWS數據庫的讀、寫和刪除權限的用戶。
dbadmin
密碼
用戶的密碼。
-
使用Agent
是否選擇通過Agent從源端提取數據。
是
Agent
單擊“選擇”,選擇連接Agent中已創建的Agent。
-
導入模式
COPY模式:將源數據經過DWS管理節點后拷貝到數據節點。如果需要通過Internet訪問DWS,只能使用COPY模式。
COPY
3. 單擊“保存”完成創建連接。
創建并執行作業
操作場景
創建CDM遷移數據表的作業,執行從本地MySQL數據庫復制表到DWS的任務。
操作步驟
1. 在集群管理界面,找到步驟1:創建集群章節創建的集群“cdm-aff1”。
2. 單擊該CDM集群后的“作業管理”,進入作業管理界面。
3. 選擇“表/文件遷移>?新建作業”,配置作業基本信息。
圖1?新建作業
作業名稱:輸入便于記憶、區分的作業名稱,例如:“mysql2dws”。
源端作業配置
源連接名稱:選擇步驟2:創建連接章節中創建的MySQL連接“mysqllink”。
使用SQL語句:選擇“否”。
模式或表空間:選擇從MySQL的哪個數據庫導出表。
表名:選擇導出哪張表。
其它可選參數保持默認即可,詳細說明可參見配置關系數據庫源端參數。
目的端作業配置
目的連接名稱:選擇步驟2:創建連接章節中創建的DWS連接“dwslink”。
模式或表空間:選擇導入到DWS的哪個數據庫。
自動創表:這里選擇“不存在時創建”,當下面“表名”參數中配置的表不存在時,CDM會自動在DWS數據庫中創建該表。
表名:選擇導入到DWS數據庫的哪張表。
其他可選參數保持默認即可,詳細說明可參見配置關系數據庫目的端參數。
4. 單擊“下一步”進入字段映射界面,CDM會自動匹配源端和目的端的數據表字段,需用戶檢查字段映射關系是否正確。
如果字段映射關系不正確,用戶單擊字段所在行選中后,按住鼠標左鍵可拖拽字段來調整映射關系。
導入到DWS時需要手動選擇DWS的分布列,建議按如下順序選取:
有主鍵可以使用主鍵作為分布列。
多個數據段聯合做主鍵的場景,建議設置所有主鍵作為分布列。
在沒有主鍵的場景下,如果沒有選擇分布列,DWS會默認第一列作為分布列,可能會有數據傾斜風險。
如果需要轉換源端字段內容,可在該步驟配置,具體操作請參見字段轉換,這里選擇不進行字段轉換。
圖2?字段映射
5. 單擊“下一步”配置任務參數,一般情況下全部保持默認即可。
該步驟用戶可以配置如下可選功能:
作業失敗重試:如果作業執行失敗,可選擇是否自動重試,這里保持默認值“不重試”。
作業分組:選擇作業所屬的分組,默認分組為“DEFAULT”。在CDM“作業管理”界面,支持作業分組顯示、按組批量啟動作業、按分組導出作業等操作。
是否定時執行:如果需要配置作業定時自動執行,請參見配置定時任務。這里保持默認值“否”。
抽取并發數:設置同時執行的抽取任務數。這里保持默認值“1”。
是否寫入臟數據:如果需要將作業執行過程中處理失敗的數據、或者被清洗過濾掉的數據寫入OBS中,以便后面查看,可通過該參數配置,寫入臟數據前需要先配置好OBS連接。這里保持默認值“否”即可,不記錄臟數據。
作業運行完是否刪除:這里保持默認值“不刪除”。
6. 單擊“保存并運行”,CDM立即開始執行作業。
說明:如果運行作業失敗,日志提示如下錯誤:SQL語句無法執行。ERROR: value too long for type character varying(7) Where: COPY dws_city, line 1, column name: "廣州市"。原因:DWS表的字符字段長度不夠。這是因為MySQL和華為云DWS存儲中文時編碼不一樣,所需的長度也不一樣,一個中文字符在UTF-8編碼下可能要占3個字節。解決方法:在3新建作業時選擇自動創表,高級屬性參數“擴大字符字段長度”選擇“是”,再重新執行作業。這樣CDM在DWS中自動創表時,會將字符類型的字段長度設置為原表的3倍。
查看作業運行結果
操作場景
作業完成后,可以查看作業執行結果及最近90天內的歷史信息,包括寫入行數、讀取行數、寫入字節、寫入文件數和日志等信息。
操作步驟
1. 在集群管理界面,找到步驟1:創建集群章節創建的集群“cdm-aff1”。
2. 單擊該CDM集群后的“作業管理”,進入作業管理界面。
3. 找到步驟3:創建并執行作業章節創建的作業“mysql_dws”,查看該作業的執行狀態。
說明:作業狀態有New,Pending,Booting,Running,Failed,Succeeded。其中“Pending”表示正在等待系統調度該作業,“Booting”表示正在分析待遷移的數據。
4. 單擊作業后面的“歷史記錄”,可查看作業的寫入行數、讀取行數、寫入字節或寫入文件數。
圖1?查看歷史記錄
5. 在歷史記錄界面,再單擊“日志”可查看作業執行的日志信息。
也可以在作業列表界面,選擇“更多?>?日志”來查看該作業最近的一次日志。
圖2?查看作業日志
EI企業智能 Gauss AP 數據倉庫服務 GaussDB(DWS)
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。