本文為您介紹如何通過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;
返回結果如下,表示投遞成功。