跳轉到主要內容
工程的博客

介紹磚攝取:簡單和有效的攝入來自不同數據源的數據到三角洲湖

2020年2月24日 工程的博客

分享這篇文章

得到的早期預覽O ' reilly的新電子書一步一步的指導你需要開始使用三角洲湖

我們興奮地介紹一個新功能——自動加載器和一組合作夥伴集成,在公共預覽,讓磚用戶數據增量地攝取到三角洲湖從不同的數據源。自動加載器是一個優化的雲文件來源Apache火花加載數據的持續高效地從雲存儲新數據到來。數據攝取的網絡合作夥伴集成允許你攝取來自數百個數據源的數據直接進入三角洲湖。

將所有的數據

組織大量的孤立的在不同數據源的信息。這些可以從數據庫(例如Oracle、MySQL、Postgres等)產品應用(Salesforce、Marketo HubSpot的等)。大量的分析用例需要來自這些不同數據源的數據產生有意義的報告和預測。舉例來說,一個完整的漏鬥從域分析報告需要信息的來源從導致信息在hubspot的產品Postgres數據庫中注冊事件。

隻有在集中你所有的數據數據倉庫是一種反模式,因為機器學習框架在Python / R庫將無法有效地訪問數據倉庫。因為你的分析用例範圍從構建簡單的SQL報告更先進的機器學習預測,至關重要的是,您構建一個湖中央數據在一個開放的和來自你的所有數據源的數據格式,使其可用於各種用例。

自從我們去年開源三角洲湖,有數以千計的組織構建這個湖中央數據在一個開放的格式比以前更加可靠和有效的。三角洲湖上磚提供ACID事務和高效的索引,對暴露不同的數據訪問模式至關重要,在BI工具從特定的SQL查詢,預定的離線訓練工作。我們稱之為模式建立一個中央,可靠和有效的單一的事實來源的數據在一個開放的格式用例從BI毫升與解耦的存儲和計算“Lakehouse”

圖1所示。一個共同的數據流與三角洲湖。數據被加載到攝入表、精製連續的表中,然後使用毫升和BI的用例。
圖1所示。一個共同的數據流與三角洲湖。數據被加載到攝入表、精製連續的表中,然後使用毫升和BI的用例。

在建立lakehouse一個關鍵挑戰是將來自不同源的數據集中在一起。根據你的數據,有兩種常見的場景數據團隊:

  • 數據攝取第三方來源:你通常在各種內部數據源有價值的用戶數據,從Hubspot的Postgres數據庫。你需要寫專業連接器為他們每個人把數據從源並將其存儲在三角洲湖。
  • 從雲存儲數據攝入:你已經有一個機製來將數據從源到雲存儲。作為雲存儲新數據到來時,您需要確定這些新數據和負載湖成三角洲進行進一步處理。

從第三方來源數據攝入

攝入來自內部數據源的數據需要為他們每個人寫專業的連接器。這可能是一個巨大的投資時間和精力構建連接器使用源api和映射源模式三角洲湖的模式功能。此外,您還需要維護這些連接器的api和模式進化來源。化合物的維護問題與每一個額外的數據源。

方便您的用戶訪問你所有的數據在三角洲湖,我們現在與一組數據攝入的產品。這個網絡的數據攝入合作夥伴建立了本地與磚攝取和儲存的數據集成在三角洲湖直接在你的雲存儲。這有助於您的數據科學家和分析師輕鬆地開始使用來自不同數據源的數據。

Azure磚顧客已經從中受益beplay体育app下载地址與Azure數據工廠的集成攝取來自各種數據源的數據到雲存儲。我們興奮地宣布新的合作夥伴Fivetran,Qlik,Infoworks,StreamSets,Syncsort——幫助用戶接收來自各種數據源的數據。我們也擴大這個數據攝入的網絡合作夥伴集成來自Informatica很快,縫合。

圖2。生態係統的攝入合作夥伴和一些流行的數據源的數據,您可以通過這些合作夥伴產品湖成三角洲提取數據。
圖2。生態係統的攝入合作夥伴和一些流行的數據源的數據,您可以通過這些合作夥伴產品湖成三角洲提取數據。

從雲存儲數據攝入

增量處理新數據落在雲blob存儲和使它準備在ETL工作負載分析是一種常見的工作流。然而,加載數據不斷從雲blob存儲隻有一次擔保以低成本,低延遲,和以最小的DevOps工作,是難以實現的。

一旦在三角洲表數據,由於三角洲湖的ACID事務,數據可以可靠地閱讀。從三角洲流數據表,您可以使用δ源(Azure|AWS),利用表的事務日誌快速識別新添加文件。

然而,加載原始文件的主要瓶頸是土地在雲存儲到三角洲表。天真的基於文件的流源(Azure|AWS)確定新文件清單雲目錄和反複跟蹤文件都已看到。成本和延遲快速添加越來越多的文件可以添加到一個目錄將重複的文件清單。為了克服這個問題,數據團隊通常歸結為其中一個解決方法:

  • 高的端到端數據延遲:雖然數據每隔幾分鍾到達,你批處理數據在一個目錄,然後處理它們在一個時間表。使用基於天或小時分區目錄是一種常見的技術。這延長SLA的數據提供給下遊的消費者。
  • 手動DevOps的方法:保持低SLA,你或者可以利用雲服務和消息隊列服務通知新文件到達通知消息隊列,然後處理新文件。這種方法不僅包括手動安裝過程中所需的雲服務,但也可以迅速成為複雜的管理當有多個需要加載數據的ETL作業。此外,加工現有文件在清單文件和一個目錄包括手動處理他們除了雲通知設置從而增加更多複雜的設置。

自動加載器是一個優化文件來源,克服上述限製和數據團隊提供了一個無縫的方式以低成本和延遲加載原始數據以最小的DevOps的努力。你隻需要提供一個源目錄路徑和啟動一個流媒體工作。新的結構化流源,稱為“cloudFiles”,將自動設置文件通知訂閱的服務從輸入目錄和文件事件過程為到達的新文件,選擇也處理現有的文件目錄。

圖3。實現數據隻有一次攝入較低的sla需要手工設置的多個雲服務。自動加載程序處理所有這些複雜性的盒子。
圖3。實現數據隻有一次攝入較低的sla需要手工設置的多個雲服務。自動加載程序處理所有這些複雜性的盒子。

使用自動加載器的主要優點是:

  • 沒有文件狀態管理:源逐步過程土地雲存儲新文件。你不需要管理任何狀態信息文件到達。
  • 可伸縮性:源將有效地跟蹤新文件到達通過利用雲服務和RocksDB無需列出一個目錄中的所有文件。這種方法是可伸縮的即使有數百萬文件的目錄。
  • 易於使用:源將自動設置通知和消息隊列服務逐步處理所需文件。不需要設置在你的身邊。

流與自動加載程序加載

你可以開始使用最少的代碼更改利用流媒體工作Apache火花的熟悉的api加載:

spark.readStream。格式(“cloudFiles”).option (“cloudFiles.format”,“json”).load (“/輸入/路徑”)

將批處理和自動加載程序加載

如果你有數據隻有一次每隔幾個小時,您仍然可以利用汽車裝載機使用預定的工作結構化流的觸發器。一旦模式

val df = spark.readStream。格式(“cloudFiles”).option (“cloudFiles.format”,“json”).load (“/輸入/路徑”)
              df.writeStream.trigger (Trigger.Once)格式(“δ”).start(“/輸出/路徑”)

你可以安排上麵的代碼運行在一個每小時或每天安排加載新數據逐步使用磚工作調度器(Azure|AWS)。你不需要擔心晚到達數據場景使用上麵的方法。

安排批量加載使用複製命令

用戶喜歡使用聲明性語法可以使用SQL複製命令將數據加載到三角洲湖在預定的基礎上。複製命令是冪等的,因此可以安全地重新運行失敗。命令自動忽略了以前裝載的文件並保證隻有一次語義。這使數據團隊輕鬆地構建健壯的數據管道。

語法如下所示的命令。更多細節,請參閱文檔複製命令(Azure|AWS)。

複製tableIdentifier{位置|(選擇identifierList位置)}FILEFORMAT={CSV|JSON|AVRO|獸人|鑲木地板}(文件=((,][,……)))(模式=][FORMAT_OPTIONS (“dataSourceReaderOption”=“價值”,……)[COPY_OPTIONS (“力”={“假”,“真正的”}))
圖4。數據攝取到三角洲湖的新特性。流加載和自動加載程序保證攝入僅一次數據。批量加載使用複製命令可以冪等重試。
圖4。數據攝取到三角洲湖的新特性。流加載和自動加載程序保證攝入僅一次數據。批量加載使用複製命令可以冪等重試。

開始使用數據攝取特性

湖獲取所有的數據到你的數據是至關重要的對機器學習和業務分析用例成功並為每個組織是一個艱巨的任務。我們興奮地介紹汽車裝載機和合作夥伴的集成功能,可以幫助我們的成千上萬的用戶在這個構建一個高效的數據湖之旅。今天可以預覽的特性。我們的文檔的更多信息關於如何開始使用合作夥伴集成(Azure| AWS),自動加載器(Azure|AWS)和複製命令(Azure|AWS開始你的數據加載到三角洲湖)。

更多地了解這些功能,我們將舉辦一個研討會在十時整3/19/2020 @ PST預排磚攝取的能力,注冊在這裏

免費試著磚

相關的帖子

看到所有工程的博客的帖子
Baidu
map