為您的數據湖帶來可靠性、性能和安全性
三角洲湖:你湖屋的基礎
可按需
作為開放格式存儲層,Delta Lake為數據湖提供了可靠性、安全性和性能。beplay体育app下载地址在實施Delta Lake後,客戶的數據處理速度加快了48倍,洞察時間縮短了50%。
觀看現場演示,了解三角洲湖:
解決傳統數據湖的挑戰-為您提供更好的數據可靠性,支持高級分析並降低總體擁有成本
為具有成本效益,高度可擴展的湖屋建築提供了完美的基礎
提供審計和治理功能,以簡化GDPR合規性
為我們的客戶極大地簡化了數據工程beplay体育app下载地址
![](http://www.eheci.com/wp-content/themes/databricks/assets/images/Speaker Icon.png)
演講者:
![](http://www.eheci.com/www/wp-content/uploads/2021/02/Speaker-Himanshu-Raja-400x400-1.png)
Himanshu拉賈
產品管理,數據庫
![](http://www.eheci.com/www/wp-content/uploads/2021/02/Speaker-Sam-Steiny-400x400-1.png)
山姆Steiny
產品營銷,數據庫
![](http://www.eheci.com/www/wp-content/uploads/2021/02/Speaker-Brenner-Heintz-400x400-1.png)
布蘭諾Heintz
產品營銷,數據庫
![](http://www.eheci.com/www/wp-content/uploads/2021/03/Speaker-Barbara-Eckman-400x400-min.png)
負責人芭芭拉Eckman
軟件架構師,康卡斯特
成績單
山姆·斯泰尼:嗨,歡迎來到Databricks活動,三角洲湖,你湖屋的基礎。我叫Sam Steiny,在Databricks公司從事產品營銷工作,主要研究數據工程和Delta Lake。我很高興今天來到這裏。我將成為今天活動的MC,我將指導你們完成今天的環節。我們越來越多地看到“湖屋”這個詞在新聞、科技博客和思想領導力中被引用。除了我們在Databricks的工作之外,各行各業的組織都越來越多地將湖屋作為統一分析、數據科學和機器學習的未來。
山姆·斯泰尼:在今天的活動中,我們將看到Delta Lake的概述,它是數據湖的安全數據存儲和管理層,真正構成了湖屋的基礎。我們將看到Delta Lake的實際演示,我們將聽到康卡斯特如何利用Delta Lake為他們的數據帶來可靠性、性能和安全性。我們將以現場問答的形式結束今天的活動,所以,請準備好你的問題,我們將盡可能多地回答你。所以,在我們開始做一些簡單的家務之前,今天的會議已經被記錄下來了。因此,任何注冊的人都可以按需使用。
山姆·斯泰尼:還有,如果你在整個活動中有任何問題,請隨時將它們添加到問答框中。我們會盡量實時回答這些問題。但我們也會回答剩下的問題,以及在會議結束時的現場問答中任何額外的問題。所以,在我們開始演講之前,我想在我們最近發布的一個視頻中簡要介紹一下德爾塔湖。這將讓你對三角洲湖有一個高層次的了解,在三角洲湖產品經理Himanshu將更詳細地介紹三角洲湖以及它是如何形成湖屋的基礎的。
提問者3:今天的企業有能力收集比以往更多的數據。這些數據包含了對你的業務和客戶的寶貴見解,如果你能解鎖的話。beplay体育app下载地址正如大多數組織所發現的那樣,將數據轉化為見解並不是一件簡單的任務。今天的數據有各種各樣的格式,視頻、音頻和文本。數據湖已經成為事實上的解決方案,因為它們可以以較低的成本存儲這些不同的格式,並且不像數據倉庫那樣將業務鎖定在特定的供應商。但傳統的數據湖存在挑戰,因為數據湖以不同的格式積累數據,保持可靠的數據具有挑戰性,並且經常會導致不準確的查詢結果。
提問者3:不斷增長的數據量也會影響性能,降低分析和決策的速度,而且由於很少有審計和治理功能,數據湖很難得到適當的保護和治理。麵對所有這些挑戰,多達73%的公司數據沒有用於分析和決策,其中的價值從未實現。三角洲湖解決了這些挑戰。Delta Lake是您的數據湖的數據存儲和管理層,使您能夠在整個組織中擴展洞察,為所有數據工作負載提供可靠的單一真實來源,包括批處理和流處理,通過高級索引和模式強製等性能特性優化大規模速度,提高工作效率。
演講者3:在Apache parquet格式存儲的開源環境中靈活操作,通過快速準確地更新數據湖中的數據來降低風險,並通過審計日誌維護更好的數據治理。通過使用Delta Lake解鎖數據,您可以直接在數據湖上執行ETL過程,從而極大地簡化數據工程。為數據分析、數據科學和機器學習即時提供新的實時數據,讓您對可靠地滿足GDPR和CCPA等合規標準的能力充滿信心。
發言者3:Delta Lake on Databricks以開放的格式為您的數據帶來可靠性、性能和安全性,使其成為具有成本效益、高度可擴展的湖屋架構的完美基礎。三角洲湖,開放、可靠、高性能、安全的湖屋基礎。
山姆·斯泰尼:很好。那麼,有了這樣一個高層次的觀點,現在你對Delta Lake有了一個了解,現在我要把它交給Himanshu Raja,他是Databricks公司Delta Lake的產品經理。他將深入研究三角洲湖,並解釋它如何真正為我們的客戶提供湖屋。beplay体育app下载地址交給你了,希曼舒。
Himanshu Raja:謝謝你,Sam。我非常高興來到這裏和你們談談三角洲湖,以及為什麼它是建造湖屋的正確基礎。在今天的會議中,我將介紹構建數據分析堆棧的挑戰,而lakehouse是唯一的未來證明解決方案。三角洲湖是什麼?為什麼它是你湖屋最好的地基?Brenner將會進入最激動人心的部分做一個演示。在會議結束後,您將有足夠的上下文,支持材料的鏈接開始並構建您的第一個數據湖。
Himanshu Raja:每個公司都感覺到了成為數據公司的吸引力,因為當大量數據被應用到即使是簡單的模型時,用例的改進是指數級的。在Databricks,我們的全部重點是幫助客戶應用數據解決他們最棘手的問題。beplay体育app下载地址我將以康卡斯特(Comcast)和Nationwide這兩家beplay体育app下载地址這樣的客戶為例。康卡斯特是一家媒體公司的一個很好的例子,它成功地采用了數據和機器學習,為觀眾創造了新的體驗,有助於提高滿意度和留存率。
Himanshu Raja:他們已經建立了一個聲控遙控器,允許你對著遙控器說話,問它一個問題,它會提供一些真正相關的結果,利用自然語言處理和深度學習等技術。他們把所有這些都建立在Databricks平台之上。Beplay体育安卓版本全美保險公司是全美最大的保險公司之一,他們發現數據可用性的爆炸式增長和日益激烈的市場競爭對他們提出了挑戰,要求他們為客戶提供更好的定價。beplay体育app下载地址通過分析全國範圍內下遊ML的數億個保險記錄,他們意識到他們的遺留批處理分析過程緩慢且不準確,為預測索賠的頻率和嚴重程度提供了有限的見解。
Himanshu Raja:通過Databricks,他們已經能夠大規模使用深度學習模型來提供更準確的定價預測,從而從索賠中獲得更多收入。由於這種潛力,83%的首席執行官表示人工智能是戰略重點也就不足為奇了。根據麻省理工學院斯隆管理評論(MIT Sloan management review)發布的一份報告,Gartner預測人工智能將在短短幾年內創造近萬億美元的商業價值。但這很難做到。Gartner稱85%的大數據項目將會失敗。Venture Beat發布了一份報告,稱87%的數據科學項目從未投入生產。因此,雖然一些公司取得了成功,但大多數公司仍在掙紮。
Himanshu Raja:所以,故事從數據倉庫開始,這很難讓人相信。即將迎來40歲生日。數據倉庫出現於80年代,是專門為BI和報告而構建的。隨著時間的推移,他們已經變得必不可少,今天地球上的每個企業都有很多這樣的人。然而,它們並不是為現代數據用例而構建的。它們不支持視頻、音頻或文本等數據。對現代用例至關重要的數據集。它必須是非常結構化的數據,隻能用SQL查詢。因此,數據科學或機器學習沒有可行的支持。此外,它不支持實時流。 They are great for batch processing, but either do not support streaming or can be cost prohibitive.
Himanshu Raja:因為他們是封閉的專有係統,他們強迫你鎖定你的數據,所以你不能輕易移動數據。因此,今天所有這些的結果是,大多數組織將首先將所有數據存儲在數據湖和塊存儲中,然後將其子集移動到數據倉庫中。所以,當時的想法是,潛在的數據湖可能是我們所有問題的答案。數據湖大約在10年前出現,它們很棒,因為它們確實可以處理所有數據。他們在那裏是為了數據科學和機器學習用例。對於很多企業來說,數據湖是一個很好的起點。
Himanshu Raja:但是,他們不能支持數據倉庫或BI用例。數據湖的設置實際上比數據倉庫要複雜得多。我們的倉庫有很多熟悉的支持語義,比如資產事務。對於數據湖,您隻是在處理文件。所以,這些抽象沒有提供,你真的必須自己構建它們。而且它們的設置非常複雜。即使你做了所有這些,性能也不是很好。你隻是在處理文件,就這樣。在大多數情況下,客戶最終會得到beplay体育app下载地址很多小文件,即使是最簡單的查詢也需要您列出所有這些文件。這需要時間。
Himanshu Raja:最後,當談到可靠性時,他們也不是那麼好。實際上,我們在數據湖中有更多的數據,而不是倉庫,但這些數據可靠嗎?我能保證模式保持不變嗎?對於分析人員來說,將一堆不同的模式合並在一起是多麼容易啊。所有這些問題的結果是,數據湖變成了不可靠的數據沼澤,你擁有所有的數據,但卻很難從中得到任何意義。因此,可以理解的是,在沒有更好的選擇的情況下,我們在大多數組織中看到的是一種共存的戰略。
Himanshu Raja:所以,這就是數據沼澤的樣子。有大量不同的工具來支持業務單元或組織所需的每種架構。你必須連接一大堆不同的開源工具。在左側的數據倉庫堆棧中,您經常要處理專有的數據格式。如果您希望啟用高級用例,則必須將數據移到其他堆棧。管理成本高,資源密集。結果是什麼呢?因為係統是孤立的,團隊也會變得孤立。溝通變慢,阻礙了創新和速度。
Himanshu Raja:不同的團隊通常會得出不同版本的真相。其結果是數據的多個副本、沒有一致的安全治理模型、封閉的係統和不連接的、效率較低的數據團隊。那麼,我們如何做到兩全其美呢?我們需要數據倉庫中的一些東西,我們需要數據湖中的一些東西。我們想要數據倉庫的性能和可靠性,我們想要數據湖的靈活性和可伸縮性。這就是我們所說的湖屋模式。這裏的想法是數據在數據湖中,但現在我們要添加一些組件,這樣我們現在就可以從倉庫中進行所有的BI和報告,從數據湖中進行所有的數據科學和機器學習,還支持流分析。所以,讓我們建一個湖邊小屋。建造湖邊小屋需要什麼東西?
Himanshu Raja:我們說過,我們希望所有的數據都在一個真正可擴展的存儲層中。我們想要一個統一的平台,我們可以做多個用例。Beplay体育安卓版本我們可以實現多個用例。因此,我們需要在數據存儲層之上有某種事務性的層。所以,你真正需要的是像資產合規性這樣的東西,這樣當你寫數據時,它要麼完全成功,要麼完全失敗,而且事情是一致的。結構事務層就是數據湖。我們談到的另一個要求是性能。所以,為了支持不同類型的用例,我們需要非常快。我們有很多數據需要處理。因此,有了數據引擎,這是一個高性能的查詢引擎,它是Databricks創建的,以支持不同類型的用例,無論是SQL,數據科學,ETL, BI報告,流,所有這些東西都在引擎之上,使它非常非常快。
Himanshu Raja:那麼,讓我們深入研究一下什麼是數據湖。數據湖是一個開放、可靠、高性能和安全的數據存儲和管理層,用於您的數據湖,使您能夠創建真正的單一真相來源。由於它是在預算有限的情況下構建的,因此您可以構建高性能的數據管道來清理從原始注入到業務級聚合的數據。由於采用了開放格式,因此可以避免不必要的複製和專有鎖定。最終,數據湖提供了解決下遊數據用例所需的可靠性、性能和安全性。接下來,我將討論數據湖的每一個好處。使用數據湖獲得的首要好處是分析堆棧中的高質量可靠數據。
Himanshu Raja:讓我談談三件關鍵的事情。首先是資產交易。第二個是模式強製和模式演變。第三個是統一的批處理和流處理。因此,對於資產事務,Delta采用全有或全無的資產事務方法,以確保在數據湖上執行的任何操作要麼完全成功,要麼被中止,以便可以重新運行。在模式強製方麵,Delta Lake使用模式驗證,這意味著在正確的時間檢查表的所有新權限是否與目標表模式兼容。如果模式不兼容,Delta Lake將完全取消事務,不寫入任何數據,並引發異常讓用戶知道不匹配。
Himanshu Raja:我們最近也引入了模式進化的功能,我們可以在數據進入時動態地進化模式,特別是在數據是半結構化或非結構化的情況下。你可能不知道數據類型是什麼,甚至在很多情況下,不知道進來的列是什麼。我想講的第三件事是統一批處理和流處理。Delta能夠同時處理批處理數據和流數據,包括能夠並發地將批處理數據和流數據寫入同一個數據表。Delta Lake直接集成spark結構化流以實現低延遲更新。
Himanshu Raja:這不僅使係統架構變得更簡單,不再需要構建Lambda架構。它還縮短了從數據攝取到查詢結果的時間。Delta Lake的第二個關鍵優勢是性能,閃電、快速的性能。數據分析堆棧的性能有兩個方麵。一個是如何存儲數據,另一個是查詢期間的性能,在運行時。那麼,讓我們討論一下他們的數據是如何存儲的,以及Delta是如何優化數據存儲格式excel的。Delta提供了開箱即用的功能,以最佳方式存儲數據以供查詢。其中一個功能是,數據按照多個維度自動結構化,以實現快速查詢性能。Delta還具有數據跳過功能,其中Delta維護文件統計信息,以便使用與查詢相關的數據子集,而不是整個表。
Himanshu Raja:我們不需要去閱讀所有的文件。可以根據統計數據跳過文件。然後是自動優化,優化是一組功能,自動將小文件壓縮成更少的大文件,這樣查詢性能就可以開箱即用。它在寫入過程中支付了一個小的暫停來抵消,並在請求期間為表提供了很大的好處。這就是關於如何存儲數據的部分。現在,讓我們討論Delta引擎,它在實際查詢數據時發揮作用。數據引擎有三個關鍵組件提供超快的性能,光子,查詢優化器和緩存。Photon是一個原生矢量化引擎,與Apache spark完全兼容,與spark 2.4相比,可以將所有結構化和半結構化工作負載加速超過20倍。
Himanshu Raja: Delta引擎的第二個關鍵組件是查詢優化器。查詢優化器擴展了Spark基於成本的優化器和具有高級統計數據的自適應查詢執行,為數據倉庫工作負載提供比Spark 3.0快18倍的查詢性能。Delta引擎的第三個關鍵組件是緩存。Delta引擎自動緩存IO數據,並將其轉換為CPU效率更高的回退,以利用nbmsts提供比Spark 3.O快5倍的表掃描性能。它還包括用於查詢結果的第二個緩存,可以立即為任何後續的rap提供結果。這提高了重複查詢(如儀表板)的性能,其中底層表不會頻繁更改。
Himanshu Raja:那麼,讓我談談三角洲湖的第三個主要好處,那就是提供大規模的安全和合規。Delta Lake讓您能夠快速準確地更新數據湖中的數據,遵守GDPR等法規,並通過審計日誌維護更好的數據治理,從而降低風險。讓我談談兩個具體的特性,時間旅行和穩定的基於角色的訪問控製。通過時間旅行,Delta自動對存儲在數據湖中的大數據進行版本化,並允許您訪問該數據的任何曆史版本。這種臨時數據管理簡化了您的數據管道,使其易於審計,回滾數據,以防意外寫入或刪除錯誤,並重現實驗和報告。
Himanshu Raja:您的組織終於可以標準化一個幹淨的集中式版本,在您自己的雲存儲中為您的分析提供大數據存儲庫。我想講的第二個特性是基於表和角色的訪問控製。在數據湖中,您可以基於特定的工作空間或角色以編程方式授予和撤銷對數據的訪問權,以確保用戶隻能訪問您希望他們訪問的數據。Databrick是一個廣泛的合作夥伴生態係統。beplay体育app下载地址客戶可以根據自己的需求啟用各種安全性和治理功能。
Himanshu Raja:最後,三角洲湖最重要的好處之一是,它是開放和靈活的。Delta Lake是一種與其他開源技術合作的開放格式,避免了供應商鎖定,並開放了整個工具社區和生態係統。Delta Lake中的所有數據都以開放的Apache parquet格式存儲,允許任何兼容的讀取器讀取數據。開發人員可以將他們的Delta Lake與現有的數據管道一起使用,隻需進行最小的更改,因為它與spark完全兼容。最常用的大數據處理引擎。Delta Lake還支持SQL DML,使客戶能夠簡單、輕鬆地將SQL工作負載遷移到Delta。beplay体育app下载地址
Himanshu Raja:那麼,讓我們談談我們看到的客戶是如何利用Delta Lake進行一些用例的,其beplay体育app下载地址中主要是改進數據管道,大規模地進行ETL,統一批處理和流式處理,直接與Apache spark結構化流集成來運行批處理和流式工作負載,在Lambda架構中,使用我們的Delta引擎在數據湖中進行BI,超級快速,就緒的性能。您不需要在數據湖和數據倉庫之間做出選擇。正如我們在湖邊小屋中談到的那樣,您可以直接在數據湖上進行BI,然後通過保留曆史數據變化記錄來滿足GDPR等標準的監管需求。這些用戶是誰?
Himanshu Raja:世界上一些最大的財富100強公司正在使用這個數據湖。我們的客戶包括Cbeplay体育app下载地址omcast、Wirecomm、Conde Nast、McAfee、Edmonds。事實上,Databricks所有的數據分析都是使用數據湖完成的。所以,我想深入探討,想談談星巴克的用例,讓你們了解我們的客戶是如何在他們的生態係統中使用數據湖的。beplay体育app下载地址星巴克今天確實需要在他們的應用程序上預測和個性化他們的客戶體驗。他們的架構實際上正在努力處理為下遊ML和分析調整的pb級數據,他們需要一個可伸縮的平台來支持整個組織beplay体育app下载地址的多個用例。Beplay体育安卓版本
Himanshu Raja:通過Azure Databricks和Delta Lake,他們的數據工程師能夠在同一個平台上構建支持批處理和實時工作負載的管道。Beplay体育安卓版本他們讓數據科學團隊能夠混合各種數據集,創建改善客戶體驗的新模型。最重要的是,數據處理性能顯著提高,允許他們在幾分鍾內部署環境並提供洞察。所以,讓我總結一下數據湖能為你做什麼,為什麼它是你湖屋的正確基礎。正如我們發現的那樣,通過使用Delta Lake,您可以在整個組織中提高分析、數據科學和機器學習,使團隊能夠協作,並確保他們使用可靠的數據來提高決策速度。
Himanshu Raja:您可以簡化數據工程,以最佳的價格性能降低基礎設施和維護成本,並且可以通過數據湖啟用多雲安全基礎設施平台。Beplay体育安卓版本那麼,如何開始數據湖呢?這實際上非常簡單,如果你已經在Azure或AWS上部署了Databricks,現在是GCP,如果你用DBR部署了一個集群,也就是Databricks發布的8.0或更高版本,你實際上不需要做任何事情。Delta現在是所有創建表和數據幀api的默認格式。但我們也有很多資源供您試用和學習。
Himanshu Raja:實際上,部署你的第一個數據湖並使用筆記本電腦構建一個非常酷的儀表盤是非常有趣的。如果你之前沒有嚐試過Databricks,你可以注冊一個免費試用帳戶,然後你可以按照我們的入門指南。Brenner很快會做一個演示來展示我們講過的功能。那就交給你了,山姆。
山姆·斯泰尼:太棒了。謝謝你,希曼舒。太棒了。現在,在過去的舞台上,布倫納·海因茨和布倫納將帶我們進行一個演示,真正地將三角洲湖帶入生活。現在,您已經聽說了它是什麼以及它有多強大,讓我們看看它的實際應用。交給你了,布倫納。
Brenner Heintz:我叫Brenner Heintz。我是Databricks的技術PMM,今天我將向您展示Delta Lake如何為您的湖屋建築提供完美的基礎。我們將做一個演示,我將從從業者的角度向你們展示它是如何工作的。在此之前,我想強調一下三角洲湖小抄。我和我的幾個同事一起工作過,這裏的想法是能夠為像你這樣的從業者提供一個資源,能夠快速輕鬆地跟上三角洲湖的速度,能夠非常非常快地使用它。我們在這個筆記本中提供了大部分(如果不是全部的話)命令,它是小抄的一部分。所以,我強烈建議你下載這個筆記本你可以直接點擊這個圖片,它會直接帶你到備考單,提供一個帶Python的Delta Lake頁麵和一個帶Spark SQL的Delta Lake頁麵。
Brenner Heintz:首先,為了使用Delta Lake,你需要能夠將數據轉換為Delta Lake格式。我們能夠做到這一點的方法不是說parquet作為你的create table的一部分或者你的Spark數據幀寫入命令,你所要做的就是把它和單詞Delta放在一起,這樣就可以馬上開始使用Delta Lake。讓我們看看它是什麼樣子的。在Python中,我們可以使用Spark以拚花格式讀取數據。例如,您還可以以CSV或其他格式讀取數據。Spark在這方麵非常靈活。然後我們簡單地把它寫成這樣的形式。
Brenner Heintz:我們要把數據保存在貸款表中。我們可以用SQL做同樣的事情。我們可以使用create table命令,使用Delta將表保存為Delta格式。最後,convert to Delta命令可以很容易地將數據轉換為Delta Lake格式。現在,我們已經向您展示了如何將數據轉換為類似Delta的格式,讓我們來看看Delta Lake表及其外觀。我已經運行了單元格。我們的貸款Delta表中有14,705個批記錄。今天,我們正在處理來自貸款俱樂部的一些數據,您可以在這裏看到當前屬於我們表的列。
Brenner Heintz:所以,我繼續往我們的桌子上放了一些正確的流。這裏的想法是向您展示Delta Lake表能夠處理批處理和流數據,並且它們能夠直接集成這些數據,而不需要任何額外的配置或其他任何需要的東西。例如,在實時數據中集成這兩個批處理,不需要構建Lambda體係結構。三角洲湖表可以很容易地同時管理。因此,如您所見,我們每秒向現有的Delta Lake表寫入大約500條記錄。我們使用了兩個不同的編寫器,隻是為了向您展示,您可以同時從Delta Lake表中讀取和寫入與資產事務一致的數據,從而確保您永遠不會處理破壞表狀態的管道中斷。
布倫納·海因茨:三角洲湖的一切都是交易。這讓我們能夠在不同的讀者和作者之間建立隔離。這是非常強大的,它為我們省去了很多麻煩和時間來彌補我們可能犯的錯誤如果我們沒有酸性交易的話。因此,正如我所承諾的,這兩個流寫入已經被耦合。我還創建了兩個流讀取,以近乎實時地向您展示表中發生的事情。所以,我們在這裏有最初的14,705個批記錄。但從那時起,我們有大約124000條流媒體記錄進入了我們的表。
Brenner Heintz:這本質上是相同的圖表,但向你展示了在每個10秒窗口內發生的事情,這些柱狀圖代表了一個10秒窗口,正如你所看到的,自從我們的流開始以來,每個流在任何時候都有大約5000條記錄寫入我們的表中。所以,所有這些隻是說Delta Lake是一個非常強大的工具,允許您輕鬆地集成批處理和流數據直接開箱即用。它很容易使用,你可以馬上開始使用。為了錦上添花,我們添加了一個批處理查詢,並使用Databricks內置的可視化工具繪製了它,這些工具非常簡單,允許您快速可視化事情。
Brenner Heintz:現在,我們已經向您展示了用Delta Lake集成批處理和流數據是多麼容易,讓我們來談談數據質量。您需要模式強製和模式進化之類的工具來強製表中的質量。這樣做的原因是您不想要上遊數據源、添加額外列、刪除列或在您不知情的情況下更改模式。因為這會導致管道中斷,進而影響所有下遊數據表。因此,為了避免這種情況,我們可以首先使用模式強製。這裏我創建了這個新數據,數據幀包含了一個新列,信用評分列,這在當前表格中不存在。
Brenner Heintz:因為Delta Lake在運行這個命令時提供了模式強製,所以我們得到一個異常,因為Delta Lake檢測到了模式不匹配。這是一件好事。我們不希望數據成功地寫入Delta Lake表,因為它不符合我們的期望。然而,隻要我們意識到並有意地遷移我們的模式,我們就可以通過向寫入命令添加一個命令來實現,我們包括merge schema選項。現在,額外的那一列成功地寫到我們的表中,我們也能夠進化我們的模式。現在,當我們嚐試選擇表中的記錄時,在我們的新數據表中,你可以看到那些記錄實際上已經成功地寫入到表中,新的信用評分列現在也出現在我們的表的模式中。
Brenner Heintz:所以,這些工具給你,它們非常強大,它們允許你加強你的數據質量,你需要的方式,為了把你的數據從原始的非結構化數據轉換為高質量的結構化數據,這是為下遊應用程序和用戶準備的。現在,我們已經討論了模式實施和模式演變,我想繼續討論Delta Lake時間旅行。時間旅行是三角洲湖的一個強大功能。因為Delta Lake中的所有事情都是一個交易,我們在事務日誌中跟蹤所有在Delta Lake表中發生的交易,這允許我們回到過去並在任何時間點重新創建Delta Lake表的狀態。
Brenner Heintz:首先,讓我們看看它是什麼樣的。因此,在任何時候,我們都可以通過運行這個describe history命令來訪問事務日誌。如你所見,表的每一個版本都代表了某種交易,某種對表的改變。所以,我們最近的改變是,我們用Delta Lake表的新列來顛覆那些全新的記錄。你可以在這裏看到這個交易,在那之前我們有一些流媒體更新。所有發生在我們表中的權利都被添加為事務。基本上,這允許你返回並使用版本號或時間戳,然後在任何時候查詢Delta Lake表的曆史版本。這是非常強大的,因為您甚至可以做一些創造性的事情,比如將當前版本的表與以前的版本進行比較,以查看從那時起發生了什麼變化,並沿著這些思路做其他類型的事情。
Brenner Heintz:讓我們開始吧。讓我們看一下,我們將使用時間旅行來查看表的原始版本,也就是版本0。這應該隻包括我們開始時的14,705條記錄,因為在表的版本0時,我們根本沒有將任何新記錄流到表中。正如你所看到的,在原始版本中,這14705條記錄是唯一存在於0的記錄。這裏也沒有信用評分列,因為在版本0中,我們還沒有進化出Delta Lake表模式。
Brenner Heintz:那麼,將14,705條記錄與我們表中當前超過326,000條記錄的數量進行比較。最後,使用Delta Lake時間旅行可以做的另一件事是恢複任何給定時間點上的表的以前版本。這真的很強大,如果你無意中刪除了一列,或者無意中刪除了一些記錄,你總是可以返回並使用restore命令,讓你的表的當前版本恢複到你的數據在給定時間戳或版本號時的狀態。因此,正如您所看到的,當我們運行這個命令來將表恢複到0的原始狀態版本時,我們已經能夠成功地做到這一點。現在,當我們查詢它的時候,我們隻得到這14,705條記錄作為表的一部分。
Brenner Heintz:接下來,我認為開發人員、數據工程師和其他數據從業者在構建他們的湖屋時真正尋找的功能之一是能夠運行簡單的DML命令,隻需一兩行代碼,能夠執行刪除、更新、合並、插入等操作。在傳統的數據湖上,這些根本是不可能的。使用Delta Lake,您可以運行這些命令,它們隻需以事務方式工作。它們非常非常簡單。因此,當您使用這些簡單的命令時,管理更改數據變得非常非常容易。
Brenner Heintz:讓我們看一下,我們將選擇用戶ID 4420作為我們的測試用例,我們將使用修改他們的數據來向你展示Delta Lake可以做什麼。如您所見,它們目前存在於我們的表中,但如果我們運行這個delete命令並指定特定的用戶,當我們運行該命令並從我們的表中選擇所有用戶時,我們現在沒有結果。刪除成功。接下來,當我們查看所描述的曆史命令時,事務日誌(您可以看到我們剛剛執行的刪除現在出現在我們的表中)。你還可以看到我們做的恢複,跳回到表的原始版本,版本0,也出現了。如果我們想這樣做的話,我們也可以直接將記錄插入到我們的表中。
Brenner Heintz:在這裏,我們將使用時間旅行來查看0時的版本,即刪除該用戶之前表的原始版本,然後將該用戶的數據插入其中。現在,當我們運行select all命令時,用戶再次出現在我們的表中。insert into命令工作得很好。接下來,是更新命令。如果需要進行行級更改,則更新非常有用。這裏,我們將把用戶的資金金額改為22000。實際上我們把它設為25000,看起來之前已經是22000了。
Brenner Heintz:我們會更新這個數字,然後當我們查詢表格時,實際上,用戶的資金金額已經成功更新。最後,在三角洲湖你有能力做非常非常強大的合並。您可以有一個充滿更改數據的表,例如表示對Delta Lake表的插入和更新。有了德爾塔湖,你就可以上插了。對於想要寫入Delta Lake表的數據幀中的每一行,如果該行已經存在於表中,您可以簡單地更新該行中的值。然而,如果該表中不存在該行,則可以插入它。
Brenner Heintz:所以,這就是所謂的upsert,這是完全可能的,而且在三角洲湖非常非常容易。它們讓管理三角洲湖變得非常非常簡單。因此,首先我們創建一個快速數據幀,其中隻有兩條記錄,我們希望將用戶4420的數據添加回我們的表中。然後我們還創建了一個用戶,其用戶ID小於100萬。所以是999999。這個用戶目前不在我們的表中。我們要插入它們。這就是我們的數據幀。如你所見,我們有一個更新或插入。當我們運行merge into命令時,Delta Lake能夠識別已經存在的行,比如用戶4420,以及那些不存在的行。 And when they don’t exist, we simply insert them.
Brenner Heintz:所以,正如你所看到的,這些更新和插入成功地進行了,Delta Lake在upserts方麵沒有任何問題。最後,我想指出的最後一件事是Delta Lake提供的一些特定性能增強。但也是數據庫的一部分,隻有三角洲湖。我們有幾個命令,目前隻有Databricks和Delta Lake。首先是真空命令。vacuum命令查看當前是表的一部分的文件,並刪除當前不是表的一部分的任何文件,這些文件已經存在了您指定的保留期。因此,這允許你清理舊版本的表,這些舊版本超過了特定的保留期,並通過這種方式節省了雲計算成本。
Brenner Heintz:你可以在Databricks Delta Lake上做的另一件事是,你可以在內存中緩存特定命令的結果。因此,如果您有一個特定的表,您的下遊分析人員總是傾向於按照特定的維度進行分組,您可以緩存該SQL命令,它總是比它出現得快得多,例如,這樣它就能夠避免對您的數據進行完整的讀取。您還可以使用Z順序優化命令,這非常強大。Z順序優化本質上是查看數據表的布局,並找出在不同文件中定位數據的最佳方法。它基本上以優化的方式布局您的文件,這允許您節省雲存儲成本,因為它的布局方式通常比您開始時要緊湊得多。它還會優化這些表的讀寫吞吐量。
Brenner Heintz:它非常強大。它加快了查詢結果的速度,最終節省了存儲和計算成本。這就是演示。我希望你喜歡這個演示。再一次,看看我們將作為描述的一部分發布的Delta Lake備忘單,或者在下麵的演示中作為聊天的一部分。所以,非常感謝。我希望你們喜歡這個演示。查看Delta Lake,並在GitHub、Slack或作為我們郵件列表的一部分加入我們。非常感謝。
山姆·斯泰尼:太棒了。謝謝你,布倫納。那真是太棒了。我很高興芭芭拉·埃克曼能加入我們。Barbara是Comcast的高級首席軟件架構師,她將與Delta Lake分享她的經驗,以及與Databricks的合作是如何對她的日常工作和Comcast業務產生影響的。非常感謝你的到來,芭芭拉。你的到來讓我們超級興奮。
芭芭拉·艾克曼:大家好。很高興來到這裏。希望你們一切都好。在康卡斯特,我要講的是自助式計算機環境中的混合雲訪問控製。我想簡單地提一下,康卡斯特非常認真地履行對客戶的承諾,保護他們的數據。beplay体育app下载地址我是康卡斯特的一員,我們稱之為數據體驗大數據組。在這種情況下,大數據不僅意味著公共雲,還包括現場數據。所以,我們有一個異構的數據集,這提供了一些挑戰,挑戰很有趣,對吧?我們的願景是將數據視為企業資產。這不是一個新想法,但它很重要。
芭芭拉·埃克曼:我們的使命是通過自助服務平台、數據發現傳承、管理治理、工程服務,以及所有這些重要的事情,為康卡斯特企業提供動力,使人們能夠以重要的方式真正使用數據。Beplay体育安卓版本我們知道,許多人都有強大的商業洞察力,最強大的洞察力來自於集成數據的模型,這些模型跨越了豎井。改進客戶體驗和業務價值的見解。這對企業意味著什麼這裏有一些例子。基本上,這是基於我們從傳感器和康卡斯特網絡捕獲的大量遙測數據。我們捕捉諸如延遲、流量、信噪比、下遊和上遊、錯誤率以及其他我甚至不知道它們是什麼意思的東西。
芭芭拉·埃克曼:但這使我們能夠做一些改善客戶體驗的事情,比如規劃網絡拓撲,如果有一個地區有大量的流量,我們可能會改變政策來支持它。盡量減少卡車滾動,當康卡斯特的有線電視男或有線電視女來你家時,我們稱之為卡車滾動。在新冠疫情時期,我們真的希望將這種情況降至最低。如果我們可以提前分析數據,我們也許可以做出任何調整或建議用戶可以做出的調整,以最大限度地減少人們來他們家的需求。
Barbara Eckman:由於這些數據,我們可以在用戶知道之前監控、預測問題並糾正它們,這涉及到遙測數據,並將其與整個企業的其他類型的數據集成。然後優化區域或整個家庭的網絡性能。所以,現在這是非常重要的東西,它真的幫助了客戶。beplay体育app下载地址我們正在努力讓這種情況更加普遍。那麼,是什麼讓你的生活變得艱難?這是一份職業聲明。如果你想談談個人,是什麼讓你的生活變得艱難?我們可以稍後再做,但作為數據專業人員,是什麼讓您的生活更困難?
芭芭拉·埃克曼:人們通常會說,“我需要找到數據。因此,如果我要跨豎井集成數據,我需要找到它。我知道它在我自己的筒倉裏,但也許。”我們的方法是元數據搜索和發現,這是通過Elasticsearch實現的。然後,一旦我找到了我可能感興趣的數據,我就需要理解它的含義。因此,人們所稱的帳戶ID可能與您習慣稱為帳戶ID、賬單ID或後台辦公室帳戶ID的帳戶ID不同,需要知道它的含義以便能夠加入它,與富蘭克林數據相反,富蘭克林數據是沒有真正適當地加入的怪物數據。我們需要知道是誰製作的,它來自機頂盒。它是否來自第三方,當它通過康卡斯特,通過特尼特,通過卡夫卡或Kinesis傳播時,有人接觸了它,然後可能有人用其他數據豐富了它。
芭芭拉·埃克曼:然後它降落在一個數據湖。數據湖中數據的用戶想知道數據來自哪裏,以及誰添加了哪些部分。你可以看到,發布者看著數據湖中的數據說,“這看起來很奇怪,這有什麼問題?誰把我的數據弄亂了?”他也可以說,或者他們也可以說,“哇,這真是太豐富了。我要感謝那個人。”使用數據的人也想知道該向誰提問。你用什麼來充實它?這些數據是從哪裏來的?所有這些在做積分的時候都很有幫助。 That’s data governance and lineage, which we do in Apache Atlas.
Barbara Eckman:那是我們的元數據和譜係存儲庫。一旦你找到了數據並理解了它,你就必須能夠訪問它。我們通過Apache Ranger及其由Privacera提供的擴展來做到這一點。一旦您訪問了它,您就需要能夠在整個企業範圍內對它進行集成和分析。所以,最後,現在我們得到了能夠真正得到數據的好東西。我們使用Databricks進行自助計算。Databricks是一個非常強大的工具。最後,我們發現對於重要的操作,我們確實需要資產遵從性。我們在三角洲湖就是這樣做的。所以,我可以更詳細地談論這個,當這個頂部或在提問環節。
芭芭拉·埃克曼:我是一名建築師。所以,我必須有總線和線形圖。因此,這是我們混合雲解決方案的高級視圖。所以,收入傳遞給我們的數據中心,我們有一個Hadoop數據湖,包括Hadoop Ranger和Apache Atlas一起工作。我們,和許多公司一樣,正在逐步淘汰這種做法,但不是馬上,這需要一段時間。我們有一個Terra數據,企業數據倉庫。同樣,我們也在考慮將其遷移到雲端,但不一定是完全遷移到雲端,而可能是遷移到另一個本地資源,比如對象存儲。我們使用MinIO,它給我們混合這個對象,讓它看起來像S3。因此,當我們喜歡在S3上使用spark作業時,也可以在我們的預數據存儲上運行。
芭芭拉·埃克曼:當然,這是一個很大的優勢。為此,我們有一個Ranger數據服務來幫助訪問控製。在雲端,我們使用AWS,盡管Azure在康卡斯特也有很大的影響力。而Databricks計算是這裏的中心。我們用它來訪問kineesis。紅移隻是,我們才剛剛開始。我們使用Delta Lake和S3對象存儲,我們有一個Ranger插件,由Databricks和Privacera精心創建,這樣我們的自助Databricks環境就可以擁有運行Privacera提供的訪問控製所需的所有nit腳本和配置。
芭芭拉·埃克曼:我們也使用Presto,為了我們的聯邦查詢功能,它也有一個Ranger插件和所有應用於元數據的標簽,這些元數據是建立在策略之上的,或者是在Apache Atlas和Ranger和Atlas中同步的。這就是Ranger如何知道對什麼數據應用什麼策略。在提問環節,如果你想深入了解這些問題,我很樂意回答。這對我來說很令人興奮,我們剛剛推出了這個,它很優雅,我沒有創造它,所以我可以這麼說。因此,Ranger分析一起提供了基於聲明性策略的訪問控製。正如我所說,Privacera擴展了Ranger,它最初隻能通過插件和代理在Hadoop中工作。我們使用的一個關鍵的工具,當然是在這三個環境中都使用的數據庫。基本上我喜歡的是我們真的有一個護衛隊來統治所有的護衛隊阿特拉斯是他的小夥伴,因為他或她提供了標簽,為我們的訪問控製提供了真正的動力。
芭芭拉·埃克曼:這又是一個圖表。我們有一個門戶,我們為我們的自助服務應用程序和用戶標簽,帶有標簽的元數據,比如這是PII,這是一個視頻域,諸如此類的東西。它進入Atlas,標簽和元數據關聯與Ranger同步,基於它的策略。那麼,誰得到CPI?誰能看到視頻域數據?這些都是同步和兌現的插件範圍。然後當用戶調用應用程序時,無論是Databricks中的雲應用程序,還是on-prem應用程序,應用程序都會問Ranger,“這個用戶是否有權限對這些數據做他們要求做的事情?”如果答案是肯定的,而且非常快,因為這些是插件。如果答案是肯定的,他們就能進入。
芭芭拉·埃克曼:如果沒有,那麼他們會得到一個錯誤消息,我們也可以屏蔽和顯示數據,如果有人可以訪問許多列,但不是所有的列,我會說一個粘合表,我們可以屏蔽那些他們沒有訪問的數據,仍然給他們允許看到的數據。最近我們真的需要酸的依從性。所以,傳統的大數據湖是寫一次,讀多次。有線電視世界的機頂盒裏有數據流,這些不是事務性的,不是事務性的數據。這是我們所習慣的,但是現在我們越來越多地發現我們需要從parquet文件或其他文件中刪除特定的記錄。我們可以在Spark中做到這一點,但它的性能非常糟糕。這當然是可以做到的,但事實證明三角洲湖做得更好。
芭芭拉·埃克曼:刪除的性能更好,你可以看到過去數據湖狀態的快照,這真的非常棒。所以,我們真的在朝著,我喜歡這個詞,一個湖屋能夠做,寫一次,讀很多,酸都在一個地方。這在很大程度上要歸功於數據湖。這就是我。如果你願意,請給我發電子郵件。如果你們有任何問題,我很樂意在現場回答。非常感謝大家的聆聽。
山姆·斯泰尼:謝謝你參加這次活動,芭芭拉。太棒了。很高興聽到康卡斯特的故事。好了,讓我們來回答一些問題。我們將進入現場問答環節。所以,請把你的問題加到問答中。