摘要:?2018 “MaxCompute開發者交流”釘釘群直播分享,由阿里云數據技術專家彬甫帶來以“數據進入MaxCompute的N種方式”為題的演講。本文講述了在阿里云內部開發了一個實戰Demo系統,它能夠實現自動全鏈路的大數據處理流程,其中包括離線的和實時數據的,接下來將為大家揭曉實戰Demo系統是怎樣實現自動全鏈路的大數據處理流程的。
2018 “MaxCompute開發者交流”釘釘群直播分享,由阿里云數據技術專家彬甫帶來以“數據進入MaxCompute的N種方式”為題的演講。本文講述了在阿里云內部開發了一個實戰Demo系統,它能夠實現自動全鏈路的大數據處理流程,其中包括離線的和實時數據的,接下來將為大家揭曉實戰Demo系統是怎樣實現自動全鏈路的大數據處理流程的。
數十款阿里云產品限時折扣中,趕快點擊這里,領券開始云上實踐吧!
直播視頻回顧
PPT下載請點擊
以下內容根據現場分享整理而成。
大數據中心的架構
上圖為大數據實戰Demo的整體架構,它的上云方式是離線的。要實現大數據實戰Demo的應用,架構必需包含數據源系統、數據倉庫、大數據應用系統平臺、Web/應用平臺、流程調度、數據加工及展現、實時處理平臺,其中數據倉庫包含臨時層、基礎數據層和應用層三個層次。
在整個架構中,數據上云是重中之重,它可以針對不同的數據源使用不同的上云方式。
首先,數據上云到MAXCOMPUTE(數據存儲)大數據存儲及處理平臺上,并將數據進行處理;接著,將數據傳輸到臨時層,再經過簡單轉換進到基礎數據層;最后,將數據進一步匯總到應用層進而提供服務。
在這個架構中,是通過協議工具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大數據存儲及處理平臺上。
實時數據上云(同步)方式
Logstash
Logstash是一種分布式日志收集框架,簡潔強大,經常與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任務創建成功后,可以對其相關屬性進行配置。當數據集成->點擊提交按鈕時,適用于剛剛創建完成的任務和初始屬性的配置,當數據開發->調度配置時,適用于修改和添加任務屬性。
本文為云棲社區原創內容,未經允許不得轉載。
評論
查看更多