本文為您介紹如何通過DataHub遷移日誌資料至MaxCompute。
前提條件
授權訪問MaxCompute的帳號已開通以下許可權:
-
MaxCompute中專案的CreateInstance許可權。
-
MaxCompute中表的查看、修改和更新許可權。
授權操作詳情請參見MaxCompute許可權。
背景資訊
DataHub是阿里雲流式資料(Streaming Data)的處理平台。資料上傳至DataHub後儲存在即時表裡,後續會在5分鐘內通過定時任務的形式同步到MaxCompute離線表裡,供離線計算使用。
您只需要建立DataHub Connector,指定相關配置,即可建立將DataHub中流式資料定期歸檔到MaxCompute的同步任務。
資料類型映射關係
|
MaxCompute |
DataHub |
|
BIGINT |
BIGINT |
|
STRING |
STRING |
|
BOOLEAN |
BOOLEAN |
|
DOUBLE |
DOUBLE |
|
DATETIME |
TIMESTAMP |
|
DECIMAL |
DECIMAL |
|
TINYINT |
TINIINT |
|
SMALLINT |
SMALLINT |
|
INT |
INTEGER |
|
FLOAT |
FLOAT |
|
BLOB |
STRING |
|
MAP |
不支援 |
|
ARRAY |
不支援 |
操作步驟
-
在MaxCompute用戶端(odpscmd)執行如下語句建立表,用於儲存DataHub同步的日誌資料。樣本語句如下。
CREATE TABLE test(f1 string, f2 string, f3 double) partitioned by (ds string); -
在DataHub上建立專案。
-
登入DataHub控制台,在左上方選擇地區。
-
在左側導覽列,單擊專案管理。
-
在项目列表地區,單擊右上方新建项目。
-
在新建项目頁面,填寫名稱及描述,單擊创建。
-
-
建立Topic。
-
在项目列表地區,單擊專案右側的查看。
-
在專案詳情頁面,單擊右上方建立Topic。
-
進入建立Topic頁面,選擇匯入MaxCompute表結構並填寫配置參數。
配置參數包括 Project名稱、Table名稱、AccessKey ID 和 AccessKey Secret。填寫完成後,單擊下一步。
-
單擊下一步,進一步完善Topic資訊。
說明-
Schema與MaxCompute表為對應關係,DataHub Topic Schema的欄位名稱、類型和順序必須與MaxCompute表欄位完全一致,如果三個條件中的任意一個不滿足,則Connector建立失敗。
-
支援將TUPLE和BLOB類型的DataHub Topic同步到MaxCompute表中。
-
系統預設最多可以建立20個Topic。如果需要建立更多,請提交工單申請。
-
DataHub Topic的Owner或Creator帳號有操作Connector的許可權,包括建立和刪除等。
-
-
-
向建立的Topic中寫入資料。
-
在目標專案的Topic列表頁簽,單擊建立Topic右側的查看。
-
在Topic詳情頁面,單擊右上方同步。
-
在建立Connector頁面,單擊MaxCompute,配置相關參數後,單擊创建。
-
-
查看Connector詳細資料。
-
在左側導覽列,單擊專案管理。
-
在项目列表地區,單擊專案右側的查看。
-
在Topic列表地區,單擊Topic右側的查看。
-
在Topic詳情頁面,單擊Connector頁簽,查看建立好的Connector。
-
單擊Connector右側的查看,即可查看Connector詳細資料。
DataHub預設每五分鐘或當資料達到60 MB時強行向MaxCompute離線表中投遞一次資料。同步點位代表已經同步資料的條數。Connector 詳情頁面展示 Status(如 EXECUTING)、Sync Latency(同步延遲,單位為秒)、Endpoint、Project、Table、分區模式 等欄位資訊。
-
-
執行如下語句測試日誌資料是否投遞成功。
SELECT * FROM test;返回結果如下,表示投遞成功。執行查詢後,結果表包含 id、name、salenum 三列。其中新插入的三條記錄為:
id=60, name=三星11, salenum=909;id=61, name=三星12, salenum=606;id=62, name=三星13, salenum=2000。