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


MaxCompute(原ODPS)開發入門指南——數據上雲篇

MaxCompute(原ODPS)開發入門指南——數據上雲篇

寫在最前麵

>>>進入了解更多>>>阿裏雲數加·MaxCompute大數據計算服務.

根據《MaxCompute(原ODPS)開發入門指南——計量計費篇》的了解,大家清楚了MaxCompute可以做什麼,計費模式如何,想必大家也開通了MaxCompute想進行一次POC,但是大家遇到第一個問題一定是我的數據如何上雲?

SQL Cost

可通過多種方式數據流入MaxCompute

MaxCompute(原ODPS)提供了多種通道數據可以流入MaxCompute,包括MaxCompute原生的Tunnel,以及阿裏雲體係內的Log、DataX和數據集成,以及開源生態中的Flume、Logstash和Fluentd。以下為大家一一道來,大家視各自情況進行選擇。

① MaxCompute Tunnel命令

直接在MaxCompute客戶端中使用Tunnel命令進行數據上傳,數據在傳輸過程中都是加密傳輸的,適用於一次性批量數據導入。

注意的是每一次上傳隻支持數據上傳到一個表或表的一個分區,有分區的表一定要指定上傳的分區。

數據上傳命令如下:

tunnel upload log.txt test_project.test_table/p1="b1",p2="b2";

如何配置客戶端和使用命令:

  1. 下載並配置客戶端
  2. Tunnel 命令導入數據
  3. 更多關於Tunnel upload命令

SQL Cost

② MaxCompute Tunnel SDK

通過 TUNNEL 提供的 SDK 自行編寫 Java 工具。

關於如何利用 tunnel SDK 進行上傳數據,下麵也將通過場景介紹。場景描述:上傳數據到 MaxCompute,其中,項目空間為”odps_public_dev”,表名為”tunnel_sample_test”,分區為”pt=20150801,dt=hangzhou”。

詳細的Tunnel SDK案例教學

③ LOG(阿裏雲日誌分析產品)

了解更多關於日誌分析產品

日誌服務(Log Service,簡稱 Log)是針對日誌類數據的一站式服務,在阿裏巴巴集團經曆大量大數據場景錘煉而成。您無需開發就能快捷完成日誌數據采集(Logtail)、消費、投遞(LogShipper)以及查詢分析(LogSearch)等功能,提升運維、運營效率,建立 DT 時代海量日誌處理能力。

SQL Cost

通常情況下,在使用開源的產品時都需要自己寫正則來進行日誌采集和結構化,通過Log產品可以進行可視化取詞來選擇自己需要解析的字段值,同時也提供手工方式輸入正則表達式,如下圖:

SQL Cost

在大家場景中,嚐嚐需要將日誌進行實時采集,然後歸檔到MaxCompute進行數據分析與挖掘,Log產品覆蓋了: Nginx, Apache, Log4J ,Wordpress , Python, NodeJS, 分隔符 (Delimiter, 如 CSV、TSV 等格式)、logstash , ThinkPHP, IIS(Windows 平台,默認格式)/logstash等。>>>常見日誌格式

SQL Cost

大部分情況下日誌數據在寫入LogStore後的0.5~1個小時導入到MaxCompute,具體歸檔的幫助文檔詳見:>>>Log數據歸檔到MaxCompute

點擊進入:更多關於Log產品使用指南

④ DTS-數據傳輸

數據傳輸(Data Transmission)服務DTS是阿裏雲提供的一種支持RDBMS(關係型數據庫)、NoSQL、OLAP等多種數據源之間數據交互的數據服務。它提供了數據遷移、實時數據訂閱及數據實時同步等多種數據傳輸能力。

  • 創建RDS for Mysql數據實時同步到MaxCompute,實現原理如下:

SQL Cost

如上圖所示,整個同步過程分為兩步:

  1. 全量初始化, 這個步驟將RDS MySQL中已經存在的全量數據初始化到MaxCompute中。對於同步的每個表,全量初始化的數據都會獨立存儲在MaxCompute中的全量基線表中,這個表的默認格式為:源表名_base。例如表 t1,那麼全量基線表在MaxCompute中存儲的表名為:t1_dts_base。這個存儲表名前綴可以根據需要變更,您可以在配置任務時,修改表在MaxCompute存儲的名稱。
  2. 增量數據同步,這個步驟將RDS MySQL產生的增量數據數據實時同步到MaxCompute中。並存儲在增量日誌表中,每個同步表對應一個增量日誌表。增量日誌表在MaxCompute中存儲的表名的默認格式為:源表名_log。這個存儲表名前綴可以根據需要變更,您可以在配置任務時,修改表在MaxCompute存儲的名稱。

隻支持表的同步,不支持其他非表對象如視圖的同步。

建議大家可以嚐試下使用DTS來做數據的增量同步。具體詳細的操作文檔詳見:創建RDS到MaxCompute數據實時同步作業

⑤ 開源產品:Flume / Logstash / Fluentd

目前開源產品都是提供output插件將數據寫入DataHub(目前免費公測中)再數據歸檔到MaxCompute上。如下圖:

SQL Cost

個人覺得這幾款開源產品與阿裏雲自研的Log日誌分析產品在日誌采集上類似,但是Flume、Logstash、Fluentd需要一定技術能力的同學方可快速上手,需要手動編寫日誌格式化的正則表達式,在這一點上,讓一些新手趨之若鶩。大家可以考慮下Log直接上手。

  • Apache Flume是一個分布式的、可靠的、可用的係統,可用於從不同的數據源中高效地收集、聚合和移動海量日誌數據到集中式數據存儲係統,支持多種Source和Sink插件。Apache Flume的Datahub Sink插件將日誌數據實時上傳到Datahub。具體操作詳見:通過Flume采集數據至MaxCompute
  • Logstash是一種分布式日誌收集框架,非常簡潔強大,經常與ElasticSearch,Kibana配置,組成著名的ELK技術棧,非常適合用來做日誌數據的分析。 阿裏雲流計算為了方便用戶將更多數據采集進入DataHub,提供了針對Logstash的DataHub Output/Input插件。具體操作詳見:通過Logstash采集數據至MaxCompute
  • Fluentd也是大家經常接觸到的分布式日誌采集係統,該插件是基於Fluentd開發的輸出插件,主要是將采集到的數據寫入DataHub。該插件遵守Fluentd輸出插件開發規範,安裝方便,可以很方便地將采集得到的數據寫到DataHub。具體操作詳見:通過Fluentd采集數據至MaxCompute

SQL Cost

[總結]三款產品都是不錯的選擇,需要根據個人使用習慣進行選擇,我自己也習慣使用Logstash所以也寫過一些真是case的文章《構建網站日誌實時運營大屏》,從日誌采集-->Logstash采集-->DataHub技術棧。

⑥ DataX、數據集成(Data IDE數據采集)

之所以將DataX和Data IDE數據采集放在一起給大家介紹,是因為兩者之間密不可分,但是又有著巨大差別。

  • DataX阿裏巴巴集團內被廣泛使用的離線數據同步工具/平台,目前已經開源DataX。具體使用可以詳見:DataX配置及使用,如下圖:

SQL Cost

  • Data IDE是基於MaxCompute之上的大數據開發套件,其中數據采集模塊完美的支持了DataX的所有數據通道。可以進入詳細了解:數據采集模塊

SQL Cost

【相同點】:Data IDE數據采集模塊是基於DataX平台之前構建的可視化配置+調度係統,支持的數據通道完全一致。【不同點】:DataX需要自己本機或服務器上配置josn文件和自己編寫crontab進行調度運維。

建議:大家直接使用 大數據開發套件-數據采集工具,因為大數據開發套件Data IDE提供了一整套的數據倉庫工具解決方案,從數據采集到數據加工以及後續的調度運維等。關鍵是免費!免費!免費!

* 支持的數據通道:
數據源分類 數據源類型 抽取(Reader) 導入(Writer) 支持方式 支持類型
大數據存儲 MaxCompute(對應數據源名稱是 ODPS) 支持 支持 向導/腳本 阿裏雲
大數據存儲 AnalyticDB(對應數據源名稱ADS) 不支持 支持 向導/腳本 阿裏雲
關係型數據庫 MySQL 支持 支持 向導/腳本 阿裏雲/自建
關係型數據庫 SQL Server 支持 支持 向導/腳本 阿裏雲/自建
關係型數據庫 PostgreSQL 支持 支持 向導/腳本 阿裏雲/自建
關係型數據庫 Oracle 支持 支持 向導/腳本 自建
關係型數據庫 DRDS 支持 支持 向導/腳本 阿裏雲
關係型數據庫 DB2 支持 支持 腳本 自建
關係型數據庫 達夢(對應數據源名稱是 dm) 支持 支持 腳本 自建
關係型數據庫 RDS for PPAS 支持 支持 腳本 阿裏雲
MPP HybridDB for MySQL 支持 支持 向導/腳本 阿裏雲
MPP HybridDB for PostgreSQL 支持 支持 向導/腳本 阿裏雲
非結構化存儲 OSS 支持 支持 向導/腳本 阿裏雲
非結構化存儲 HDFS 支持 支持 腳本 自建
非結構化存儲 FTP 支持 支持 向導/腳本 自建
NoSql HBase 支持 支持 腳本 阿裏雲/自建
NoSql MongoDB 支持 支持 腳本 阿裏雲/自建
NoSql Memcache 不支持 支持 腳本 阿裏雲/自建Memcached
NoSql Table Store(對應數據源名稱是OTS) 支持 支持 腳本 阿裏雲
NoSql LogHub 不支持 支持 腳本 阿裏雲
NoSql OpenSearch 不支持 支持 腳本 阿裏雲
NoSql Redis 不支持 支持 腳本 阿裏雲/自建
性能測試 Stream 支持 支持 腳本

最後更新:2017-06-07 21:01:45

  上一篇:go  阿裏數據庫內核月報:2015年04月
  下一篇:go  阿裏數據庫內核月報:2015年04月