實戰:數據進入Maxcompute的N種方式
來自專欄阿里大數據玩家1 人贊了文章
摘要: 2018 「MaxCompute開發者交流」釘釘群直播分享,由阿里雲數據技術專家彬甫帶來以「數據進入MaxCompute的N種方式」為題的演講。本文講述了在阿里雲內部開發了一個實戰Demo系統,它能夠實現自動全鏈路的大數據處理流程,其中包括離線的和實時數據的,接下來將為大家揭曉實戰Demo系統是怎樣實現自動全鏈路的大數據處理流程的。
2018 「MaxCompute開發者交流」釘釘群直播分享,由阿里雲數據技術專家彬甫帶來以「數據進入MaxCompute的N種方式」為題的演講。本文講述了在阿里雲內部開發了一個實戰Demo系統,它能夠實現自動全鏈路的大數據處理流程,其中包括離線的和實時數據的,接下來將為大家揭曉實戰Demo系統是怎樣實現自動全鏈路的大數據處理流程的。
數十款阿里雲產品限時折扣中,趕快點擊這裡,領券開始雲上實踐吧!直播視頻回顧
PPT下載請點擊以下內容根據現場分享整理而成。大數據中心的架構在這個架構中,是通過協議工具DataWorks、DataX進行流程調度的,通過QuickBI、DataV進行數據展現的,通過DATEHUB+STREAMCOMPUTE進行數據處理實時數據的,最後系統將處理後的數據存放到大數據應用平台的RDS裡面,並通過QuickBI、DataV進行展現。數據上雲(同步)方式
數據上雲有許多種方式,對於MAXCOMPUTE產品而言,它使用的典型的自帶工具有tunnel、dataX、DataWorks,具體介紹如下:- 使用tunnel:使用tunnel命令可進行數據的上傳、數據的下載、數據文件的處理等。
- 使用dataX:dataX是離線數據的同步工具,可高效地實現各異構數據源之間的數據同步功能,以及把數據上傳到MAXCOMPUTE中去。其中,異構數據源包括MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、OTS、OSS、MaxCompute 等。總之,Tunnel工具是非常重要的,如果沒有Tunnel工具,在數據同步後數據上雲到MAXCOMPUTE時會出現不統一的問題,最終造成開發困難。
- 使用DataWorks:使用DataWorks數據集成來定義數據同步任務,通過同步任務最終達到數據上雲的目的。它的模式是嚮導模式或腳本模式,是基於DataX協議的圖形界面來進行操作的。在使用DataWorks進行數據集成中需要做到四步,第一步,配置數據來源(庫和表)和數據流向(庫和表);第二步,對欄位映射關係進行配置,且左側「源表欄位」和右側「宿表欄位」為一一對應的關係;第三步,對源表的欄位進行過濾和數據載入控制,但要注意的是對源表的欄位進行過濾必須在WHERE條件上,且不需要寫WHERE關鍵字;第四步,對同步速率需進行限速控制,切分鍵一般用源表主鍵,當容錯記錄數和比率指超過閾值時,作業報錯必須終止。最終,使得數據上雲到MAXCOMPUTE大數據存儲及處理平台上。
實時數據上雲(同步)方式
LogstashLogstash是一種分散式日誌收集框架,簡潔強大,經常與ElasticSearch,Kibana配置組成著名的ELK技術棧,非常適合用來做日誌數據的分析。 阿里雲流計算為了方便用戶將更多數據採集進DataHub中,提供了針對Logstash的DataHub Output/Input插件。使用Logstash,便可以輕鬆享受到Logstash開源社區多達30多種數據源的支持,同時Logstash還支持filter對傳輸欄位進行自定義加工等功能。DataHub API
阿里雲流數據處理平台DataHub是流式數據(Streaming Data)的處理平台,可提供對流式數據的發布、訂閱和分發功能,還可以輕鬆地構建基於流式數據的分析和應用。DataHub服務可以對各種移動設備、應用軟體、網站服務、感測器等產生的大量流式數據進行持續不斷的採集、存儲和處理。可以編寫應用程序或者使用流計算引擎來處理寫入到DataHub中的流式數據,例如,實時web訪問日誌、應用日誌、各種事件等,併產出各種實時的數據處理結果,例如,實時圖表、報警信息、實時統計等。它相較於Logstash而言,這種方式性能更優,更適於處理複雜的數據需求。數據遷移及實時數據同步(上雲)數據傳輸服務(Data Transmission Service) DTS支持關係型資料庫、NoSQL、大數據(OLAP)等數據源間的數據傳輸。 它是一種集數據遷移、數據訂閱及數據實時同步於一體的數據傳輸服務。相對於第三方數據流工具而言,數據傳輸服務 DTS 可提供更豐富多樣、高性能、高安全可靠的傳輸鏈路,同時它提供了諸多便利功能,極大地方便了傳輸鏈路的創建及管理。數據傳輸致力於在公有雲、混合雲場景下,解決遠距離、毫秒級非同步數據的傳輸難題。它底層的數據流基礎設施為阿里雙11異地多活基礎架構,為數千下游應用提供實時數據流,已在線上穩定運行三年之久。
數據架構層的實現企業數據模型在數據架構層的實現企業數據模型在實現數據架構層時,每一層都有每一層的規範。數據上雲到MAXCOMPUTE(數據存儲)大數據存儲及處理平台後,將數據進行處理,並把數據放到臨時層,在經過簡單轉換進到基礎數層,最後將數據進一步匯總到應用層。臨時層的模型設計方式與源系統模型一致,都是統一命名規範的,它設計具有僅保存臨時數據的原則,可應用於ETL用戶數據加工與處理。基礎數據層偏3NF設計,它是面向數據整合、長期歷史數據存儲、詳細數據、通用匯總數據的設計,可應用於席查詢、應用層數據源等。應用層的設計方式是反正則化設計、星型/雪花模型設計,它是面向一個或幾個應用進行模型設計的,可應用於報表查詢、數據挖掘等。數據生成
在TPC官網上下載TPC-DS工具,使用下載後的工具生成TPC-DS數據文件,數據文件再生成hdfs、Hbase、OSS、RDS數據源。Hdfs和Hbase數據源是使用Hadoop客戶端命令把TPC-DS數據文件載入到hdfs和Hbase中,數據源OSS是通過OSS客戶端命令把TPC-DS數據文件載入到OSS中,數據源 RDS是通過dataworks數據集成把數據文件載入到RDS中。數據上雲數據上雲任務在設計目錄架構和命名規範時,根目錄應為01_數據導入格式,目錄架構應遵循數據源的不同創建子目錄,且相同數據源的數據導入任務放到同一個目錄下的規則,命名為源名稱+」To」+目標名稱格式,值得注意的是任務類型和命名規則的腳本模式和嚮導模式是不同的。數據上雲任務開發分為數據源配置、腳本模式任務開發、嚮導模式任務開發、任務調度屬性配置四個模塊,四個模塊具體操作步驟介紹如下:- 數據源配置模塊:以FTP配置為例,操作步驟為新增數據源、結構化存儲-FTP、屬性選擇及填寫、測試連通性、點擊完成,最後,在數據源頁面就可以看到已配置的數據源。
- 腳本模式任務開發模塊:以ftp->MaxCompute為例,操作步驟為在數據集成界面新建任務、選擇腳本模式、點擊確認、生成配置文件模板、Ftp Reader配置、MaxCompute Writer配置、點擊保存按鈕,最終根據命名規範保存該任務。
- 嚮導模式任務開發模塊:以RDS->MaxCompute為例,具體操作步驟為數據集成->同步任務->嚮導模式、選擇數據源、選擇表、添加數據過濾條件(可選)、配置切分鍵(可選)、選擇目標數據源、選擇目標表、填寫分區信息、選擇清理規則、欄位映射配置、通道控制相關參數配置、與切分鍵結合使用、填寫任務名稱、選擇保存位置,最後確認任務創建已完成。
- 任務調度屬性配置模塊:DataWorks任務創建成功後,可以對其相關屬性進行配置。當數據集成->點擊提交按鈕時,適用於剛剛創建完成的任務和初始屬性的配置,當數據開發->調度配置時,適用於修改和添加任務屬性。
文章作者:雲跡九州
原文鏈接
推薦閱讀:
※數據醜聞之後,Facebook發布了一場史上最低凋、甚至無聊的F8大會
※將第三方Jar包上傳到nexus倉庫中
※iOS12概念修復了iOS11中的問題並增加了大量新功能
※NASA工程師們夢想的宇宙飛船:立方體衛星
※第17課《第三次科技革命》教案