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


大數據上雲那些事兒:(一)上雲工具的選擇

阿裏雲•數加上如果要實現大數據上雲,可選的工具有以下幾種(如下圖所示),主要分為批量加載工具和實時采集工具兩大類。工具這麼多,那麼我應該選擇哪一個呢?
_1

首先第一就是確定您的業務場景對實時性的要求。
a) 如果是實時性要求不高,則采用批量加載類工具,定時完成批量數據加載即可。比如離線數倉,離線BI數據分析等場景。
b) 如果對實時性要求很高,數據一產生就需要即時看到分析結果,則采用實時采集類工具。如實時監控,實時分析,實時大屏等場景。
不過也有例外,在某些離線場景下有時候也會采用實時采集工具來完成數據上雲。比如每天都有海量數據(可能TB級別甚至更多)需要同步,批量定時同步的話同步時間過長,無法滿足業務要求,此時可以考慮采用實時采集工具來完成數據上雲,以滿足對同步時間的要求。

離線工具適用場景說明:

  1. 數據集成(DI)是數加提供的官方同步工具,分為界麵向導模式和腳本模式兩種開發模式。如果您是離線數據加工場景,那麼優先推薦選擇它。它可以完成阿裏雲雲上數據到MaxCompute的大部分離線場景。比如常見的:
    a) 從RDS/DRDS同步到MaxCompute
    b) 從ECS(自建MySQL/Oracle等)同步到MaxCompute
    c) 從ECS(文件)同步到MaxCompute
    d) 從OSS/OTS等阿裏雲產品同步到MaxComdpute
    e) 數據在IDC機房,並且企業已經搭建阿裏雲物理專線連接,此時可以通過數據集成(DI)自定義調度資源的方式完成數據上雲。
    注:以上均為舉例,不一定覆蓋所有情況,DI支持的數據源請參考:https://help.aliyun.com/document_detail/53008.html

  2. DataX(開源)阿裏開源的離線數據同步工具,可以理解它是數據集成(DI)的單機版實現,它與數據集成(DI)所支持的數據源是基本相同的。但有些時候因為網絡、安全或者自定義需求等情況,無法用數據集成(DI)來完成企業的需求,此時可以考慮使用DataX來完成。比如:
    a) 數據在本地IDC機房,IDC的機器無法添加為數據集成(DI)的執行Agent
    b) 企業期望對同步任務資源占用有完全的控製權(包括但不限於內存占用量、完全掌控同步流控等);
    c) 企業具有一定的係統運維能力,期待腳本化、定製化的數據上雲策略。比如本地環境已有任務調度係統,期待使用此調度係統觸發執行同步作業;
    d) 數據上雲是臨時性的、一次性的操作;

  3. DI On Hadoop適用於企業已有Hadoop集群,且對數據同步性能有很高的要求,此時用DI On Hadoop工具來完成數據上雲。它可以充分的利用現有Hadoop 集群的能力,來快速完成從Hadoop 到 MaxCompute的數據遷移或上雲。但它對網絡情況也有一定要求,它要求Hadoop集群的機器必須可以通過公網或者專線的方式,能過連通MaxCompute。

  4. MaxCompute客戶端中有Tunnel 命令,它適用於原始數據存在在文件,臨時或一次性上傳一些數據到MaxCompute。

  5. **Tunnel SDK **:在上述工具均無法滿足需求時,可以通過自己調用Tunnel SDK實現更加靈活自由的數據上傳需求。比如:
    a) 數據下載過程中,需要根據數據內容不同,分發到不同的數據庫或分庫分表。

實時采集工具適用場景說明:

  1. **Logstash / Flume / Flunted **為3個開源的數據采集工具,阿裏雲分別為其提供了寫入DataHub的插件,可以實現數據采集後輸出到DataHub。適用於大部分文件類數據采集類需求,如行為日誌,係統日誌等。選擇這3個,主要取決於用戶自己的技術傾向。 Logstash 為JRuby開發,Flume為Java開發,Flunted為Ruby開發。三者性能上來看Flunted略差,Logstash和Flume應該說不分仲伯吧,暫無明確數據對比。
  2. Log Service(日誌服務)是阿裏雲提供的針對日誌類數據的一站式服務,它可以完成采集日誌信息,並將其投遞給各種下遊產品,其中就包括Stream Compute 和 MaxCompute。它與Logstash / Flume / Flunted 所完成的場景類似,選擇哪個主要取決於客戶的使用習慣或技術傾向,暫無比較明顯的區別。
  3. DTS(數據傳輸服務)是阿裏雲提供的雲上數據的實時傳輸服務,適用於采集RDS(MySQL)的實時更新數據,並將其傳輸給DataHub或MaxCompute。如果你有雲上RDS(MySQL)數據需要上傳到大數據平台,那麼可以選擇它。不過它采集的是binlog信息,到MaxCompute後還需對數據做合並和預處理。
  4. OGG(Oracle GoldenGate)主要適用於源庫為Oracle,可以通過其采集實時更新數據到DataHub中。一般在公共雲上比較少見,但在專有雲即線下機房比較常見。

整理各個工具的官網及使用說明供大家參考:

  1. 數據集成(DI)官網:https://www.aliyun.com/product/cdp 使用文檔:https://help.aliyun.com/document_detail/47677.html
  2. DataX源碼:https://github.com/alibaba/DataX 快速開始:https://github.com/alibaba/DataX/wiki/Quick-Start 各個數據源配置:https://github.com/alibaba/DataX/wiki/DataX-all-data-channels
  3. DI On Hadoop 暫無,目前還未完全開放。
  4. MaxCompute 客戶端 安裝:https://help.aliyun.com/document_detail/27971.html Tunnel命令說明:https://help.aliyun.com/document_detail/27833.html
  5. Tunnel SDK 使用說明:https://help.aliyun.com/document_detail/27837.html Tunnel SDK 上傳下載示例:https://help.aliyun.com/document_detail/27842.html
  6. Logstash 官網幫助文檔:https://www.elastic.co/guide/en/logstash/2.3/index.html 阿裏雲Logstash教程文檔:https://help.aliyun.com/document_detail/47451.html
  7. Flume 插件開源網站:https://github.com/aliyun/aliyun-maxcompute-data-collectors/tree/master/flume-plugin
  8. Flunted 官方文檔https://docs.fluentd.org/v0.12/articles/quickstart 阿裏雲Flunted教程文檔:https://help.aliyun.com/document_detail/47450.html
  9. Log Service 官網:https://www.aliyun.com/product/sls Log Service 數據采集:https://help.aliyun.com/document_detail/28981.html Log Service 投遞 MaxCompute:https://help.aliyun.com/document_detail/29001.html Log Service StreamCompute實時消費:https://help.aliyun.com/document_detail/47334.html
  10. DTS 官網:https://www.aliyun.com/product/dts DTS 采集到MaxCompute:https://help.aliyun.com/document_detail/44547.html DTS 采集到Datahub:https://help.aliyun.com/document_detail/45214.html
  11. OGG 阿裏雲使用教程:https://help.aliyun.com/document_detail/47452.html

最後更新:2017-06-22 12:01:52

  上一篇:go  未來已來!阿裏小蜜AI技術揭秘
  下一篇:go  《vSphere性能設計:性能密集場景下CPU、內存、存儲及網絡的最佳設計實踐》一3.4 小結