閱讀815 返回首頁    go 阿裏雲 go 技術社區[雲棲]


1.4 導入數據__快速入門_分析型數據庫-阿裏雲

1.5 導入數據

分析型數據庫支持多種接入數據的方式:

  • 通過Kettle等ETL工具將本地文件寫入分析型數據庫。
  • 通過阿裏雲數據傳輸從阿裏雲RDS中實時同步數據變更。(見《用戶指南》相關使用阿裏雲數據傳輸實時同步RDS的數據章節—僅公共雲可用)
  • 建立批量導入表從阿裏雲MaxCompute(原名ODPS)大批量的導入數據。
  • 通過阿裏雲數據集成(專有雲中通過大數據開發套件的‘數據同步’)任務導入數據。(詳見《用戶指南》數據的導入章節)
  • 直接將數據通過insert/delete SQL寫入實時表。(詳見《用戶指南》insert章節)

批量導入

批量導入適合每天1-2次且每次同步大量批數據(每次200w條以上)。

特點:小規模數據量的同步速度相對很慢;大批量的數據同步速度相對較快,但是整體任務延遲長。

實時寫入

實時寫入適合數據寫入後比較短時間內(例如1-2分鍾)就需要查詢的場景。

特點:每次寫入的數據相對少(一條到幾十條),每秒鍾寫入一般在千條到萬條的數據量。(如果需要非常高的寫入速度,例如達到百萬條每秒,需要相對大量的ECU資源和優化的寫入方法)。

在這裏,作為測試使用,我們將介紹如何通過控製台界麵進行數據批量導入和實時寫入。

通過控製台批量導入數據

我們設定這裏通過控製台界麵進行MaxCompute(原ODPS)數據導入,AnalyticDB目標表即為前麵創建的qsdemo_load_data 表。

前提條件

AnalyticDB目標表qsdemo_load_data創建時更新方式屬性為“批量更新”;

操作步驟

步驟1:數據準備。

此處我們需要把MaxCompute的表導入到分析型數據庫,因此需要先在MaxCompute中準備好表和數據。

MaxCompute表建表語句:

  1. use projecta;--在MaxCompute的某個project中創建表
  2. CREATE TABLE
  3. demo_load_data (
  4. user_id bigint ,
  5. amt bigint ,
  6. num bigint ,
  7. cat_id bigint ,
  8. thedate bigint
  9. ) ;

本地創建demo_load_data.txt文件,輸入數據如下,列分割符為英文逗號,回車換行。

  1. 12345,80,900,1555,20140101
  2. 12346,81,901,1556,20140101
  3. 12347,82,902,1557,20140101
  4. 12348,83,903,1558,20140101
  5. 12349,84,904,1559,20140101
  6. 12350,85,905,1560,20140101
  7. 12351,86,906,1561,20140101
  8. 12352,87,907,1562,20140101
  9. 12353,88,908,1563,20140101
  10. 12354,89,909,1564,20140101
  11. 12355,90,910,1565,20140101
  12. 12356,91,911,1566,20140101
  13. 12357,92,912,1567,20140101
  14. 12358,93,913,1568,20140101
  15. 12359,94,914,1569,20140101
  16. 12360,95,915,1570,20140101
  17. 12361,96,916,1571,20140101
  18. 12362,97,917,1572,20140101
  19. 12363,98,918,1573,20140101
  20. 12364,99,919,1574,20140101

MaxCompute數據上傳,若用tunnel上傳命令如下:

  1. use projecta;
  2. tunnel upload demo_load_data.txt demo_load_data;--把本地數據文件demo_load_data.txt

步驟2:在操作導入數據之前,需要對數據的來源表進行授權。

此處數據的來源表在MaxCompute上,所以需要在MaxCompute上對雲賬號授予describe和select權限。

各個專有雲授權的雲賬號名參照專有雲的相關配置文檔,一般為test1000000009@aliyun.com

公共雲上需要給garuda_build@aliyun.com以及garuda_data@aliyun.com賬號授權。

授權命令:

  1. USE projecta;--表所屬ODPS project
  2. ADD USER ALIYUN$xxxx@aliyun.com;--輸入正確的雲賬號
  3. GRANT Describe,Select ON TABLE table_name TO USER ALIYUN$xxxx@aliyun.com;--輸入需要賦權的表和正確的雲賬號

步驟3:進入DMS for AnalyticDB頁麵,選擇菜單欄上的導入按鈕,彈出導入對話框。這裏我們的數據源表在阿裏雲MaxCompute(原ODPS)上。因此數據導入路徑按照”odps://project_name/table_name/partition_spec”的格式來填寫。目標表選前麵創建的表qsdemo_load_data。填寫完畢後,如下圖所示,點擊“確定”按鈕。

關於分區信息,在僅有一級Hash分區的情況下DMS會自動識別並填寫。

步驟4:接下來頁麵會顯示導入狀態一覽,分析型數據庫會對導入任務進行調度,根據當前係統繁忙情況和待導入數據的大小和結構不同,二十分鍾至數個小時內數據導入會結束。

步驟5:數據導入結束後,可以在左側欄對表進行右鍵“SQl操作”查看表的數據。

通過控製台實時寫入數據

創建表時表屬性“更新方式”選擇“實時更新”,則可以在建表後直接在SQL窗口中編寫SQL語句實時寫入數據。

操作步驟

步驟1:創建表my_first_table,參考前麵《使用DMS創建表組和表》章節,表屬性“更新方式”選擇“實時更新”。

步驟2:進入控製台的SQL窗口,輸入命令:

  1. insert into my_first_table (user_id,amt,num,cat_id,thedate) values (12345, 80, 900, 1555, 20140101);

步驟3:執行命令。

步驟4:命令執行成功後,可以在左側欄對表進行右鍵“SQl操作”查看表的數據。

注意:

  • 實時更新的表剛剛建立後,會有一分鍾左右的準備時間,這時候寫入的數據需要在準備完成後才能查詢,否則查詢會報錯。
  • 在準備完成後,實時進行insert/delete數據變更,一般需要等待一分鍾後才可查詢。
  • 分析型數據庫進行實時插入和刪除時,不支持事務,並且僅遵循最終一致性的設計,所以分析型數據庫並不能作為OLTP係統使用。

其他的數據導入方式請看《用戶指南》相關數據導入章節。

最後更新:2016-12-06 14:27:45

  上一篇:go 1.3 使用DMS創建和管理表__快速入門_分析型數據庫-阿裏雲
  下一篇:go 1.5 在應用中連接和使用分析型數據庫__快速入門_分析型數據庫-阿裏雲