本文為您介紹如何通過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表結構並填寫配置參數。
單擊下一步,進一步完善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離線表中投遞一次資料。同步點位代表已經同步資料的條數。
執行如下語句測試日誌資料是否投遞成功。
SELECT * FROM test;
返回結果如下,表示投遞成功。