在這個博客中,我想向你們介紹磚lakehouse像批處理平台和解釋概念,流媒體,apache火花在高級別上,以及它如何與結構化流聯係在一起。Beplay体育安卓版本
表的內容
磚是什麼?
磚Lakehouse平台是一個獨特的融合的Beplay体育安卓版本工具需要構建一個數據驅動的組織。讓我們考慮三個角色,在一個典型的組織
- 數據工程師:確保數據使得它的方式從源到目的地,轉換本身。DE確保數據是結構化和淨化以這樣一種方式,它是可以被分析人士和科學家構建分析和模型產生的見解。
- 數據分析師:確保結構化數據是用於生產團隊有價值的見解。DA片和史都華結構化數據根據他們的需求,這樣他們就可以從不同的角度查看數據。
- 數據科學家:確保結構化數據是用於生產機器學習模型,幫助企業根據需要做出更好的業務決策和規模。
你可以看到一個組織如何取決於上述成功的角色創建一個健壯的管道。很難找到一個工具,可以滿足所有的需求。這就是磚來。這個平台是Beplay体育安卓版本為了滿足所有的數據需要從工程分析模型建立在一個平台。
來源:磚文檔
所以. .磚是一個都在一個平台,可以處理你的數據需要從構建,部署共Beplay体育安卓版本享,在規模和和維護數據的解決方案,也意味著這是一個單一的平台對整個數據團隊合作。磚之上你現有的雲是否AWS, Azure和GCP甚至多重雲的結合這三個雲。
一個主要組件的平台,我想在這篇文章中討論。Beplay体育安卓版本但在此之前,讓我們討論一下批處理。
批處理是什麼?
批處理是一個重複運行的過程,高容量數據工作在一組在一個特別或者安排的基礎上。簡單地說,它是一個過程,收集、定期存儲和轉換數據。一個常見的場景是一個數據倉庫ETL作業,每晚一次,提取數據從源應用程序,轉換邏輯適用於它,並將其存儲在目標倉庫。在這個場景中,有一個24小時的時間間隔連續兩個工作運行,也意味著有一天我們的數據倉庫和源應用程序之間的延遲。
批處理的例子:
讓我們來看一個具體的例子進行批處理。假設我們有3個雜貨店旗下一家零售商說全食。全食超市整體收入的跟蹤所有3家。而是實時的處理每一個購買,全食過程每個商店的日常收入批次最後的一天。
批處理
何時使用批處理?
- 當你想要處理大量的數據。
- 通常在一個預定的或臨時的方式
- 延遲可能是幾分鍾,幾小時或幾天
- 批處理有點冗長而不適合對時間敏感的數據
- 偶爾因為批處理作業運行,這是一個節約成本的選擇
很簡單,對吧?
現在讓我們搬到流. .
流媒體是什麼?
流是一個過程的同步源程序與目標數據倉庫在同一時間源的交易發生時,通常用不到一分鍾的延遲。所以我們可以說流處理是實時處理。例如,添加一個新行源表,表應該反映在目的地相同的行後秒內穿過整個提取-轉換-裝載管道。
當磚加上平台例如Apache卡夫卡,AWS動作,Azure事件中Beplay体育安卓版本心,等數據流快速生成關鍵的見解,幫助團隊做出更快的決策。
流的例子:
繼續我們與流全食的例子,數據輸入係統一塊一塊的就任何事務/食品銷售。在這種情況下,流提要商店或micro-batches每筆交易的交易直接進入分析平台,而不是每天晚上處理一批數據。Beplay体育安卓版本這使得數據分析師和數據科學家在實時生產關鍵的見解。這是最合適的網上購物的食品應用。
流媒體
何時使用流?
- 當你想要在實時處理少量的數據。
- 連續數據流。
- 延遲必須大約1分鍾或更少。
現在我們更好地理解批處理和流,讓我們更深層次的研究。
Apache火花是什麼?
來源:磚文檔
Apache火花是最大的開源項目數據處理。這是一個多語言引擎執行數據工程,數據科學和機器學習在單一或多節點集群。它有一個內置的SQL引擎先進的分布式大規模數據處理。它是由馬泰Zaharia(磚聯合創始人)在加州大學伯克利分校的實驗室。
這裏有一些關鍵特性的Apache火花:
- 可伸縮性和高可靠性:它有一個高的數據處理速度快100倍的內存和磁盤上的快10倍。
- 統一的批處理和流API:處理批處理和流數據使用的語言選擇:Python和SQL
- ANSI SQL查詢的SQL分析:執行是非常快的
- 數據科學:執行探索性數據分析(EDA)在大說拍字節的數據量。
- 機器學習:重用相同的ML代碼規模集群和其他機器。
令人印象深刻的對吧? ?
磚是建立在上麵的火花,所以你隻能想象的性能在使用平台。Beplay体育安卓版本
現在,讓我們把上述所有批處理的概念,流媒體和火花,我搬到我們下一個主題。e火花結構化流. .
火花結構化流是什麼?
結構化流是一個高級API流處理。這是一個實時處理引擎提供端到端容錯。它允許您采取同樣的操作,執行批處理模式使用火花的結構化的api,並以流媒體的方式運行它們。這可以減少延遲和允許增量處理。結構化流引擎執行計算的增量,不斷更新結果流數據的到來。
火花結構化流的簡單的例子:
在這個例子中,我們將使用結構化流保持運行字數從服務器收到的文本數據的套接字。
#本地SparkSession導入類和創建
從pyspark.sql進口SparkSession
從pyspark.sql.functions進口爆炸
從pyspark.sql.functions進口分裂
火花= SparkSession \
.builder \
.appName (“StructuredNetworkWordCount”)\
.getOrCreate ()
接下來,讓我們創建一個dataframe並將其轉換計算單詞統計
#創建DataFrame代表輸入流的行從連接到localhost: 9999
行=火花\
.readStream \
。格式(“套接字”)\
.option (“主機”,“localhost”)\
.option (“端口”,9999年)\
.load ()
#線分割成單詞
話說= lines.select (
爆炸(
分割(lines.value”“)
).alias (“單詞”)
)
#生成運行的單詞計數
wordcount = words.groupBy (“單詞”).count ()
接下來,我們開始運行的查詢打印。
#開始運行的查詢打印運行計數到控製台
查詢= wordcount \
.writeStream \
.outputMode (“完整的”)\
。格式(“控製台”)\
.start ()
query.awaitTermination ()
執行上麵的代碼後,流媒體應用程序會在後台。這裏,awaitTermination()用來防止進程退出查詢時活躍。
可以預計,輸出看起來像這樣
來源:結構化流媒體編程指南
我最近才開始學習火花。我驚訝於網上課程和材料的數量。找到合適的材料是至關重要的,因為我想快速學習,也得到充分理解的概念。如果這個博客有你有點好奇和興趣學習磚和火花,我列出的資源讓你的旅程開始了。
- ——火花的指南書https://learning.oreilly.com/library/view/spark-the-definitive/9781491912201/
- 磚學院的課程,//m.eheci.com/learn/training/home
- 火花——編程指南文檔https://spark.apache.org/docs/latest/streaming-programming-guide.html
- 免費的磚Lakehouse——基礎培訓//m.eheci.com/learn/training/lakehouse-fundamentals
你必須注冊用戶添加評論。如果你已經注冊,登錄。否則,注冊和登錄。