為什麼Databricks Delta Lake表格式開源很重要?
早在2019年,Databricks就推出了Delta,通過Parquet資料表格式為Spark雲工作負載提供事務完整性。隨著時間的推移,Delta演變成自己的表格式,也變得更加開放,但關鍵元素仍然是專有的。但是現在,正如Delta的創造者上週在資料+人工智慧峰會上所說,Delta表格式的全部內容將被開源。
在Delta之前,資料湖和資料倉儲是兩個不同的世界,Databricks軟體工程師Michael Armbrust解釋說,他是Delta Lake、Spark SQL和Spark Structured Streaming的創造者。
“Delta是為了統一這兩個世界而建立的。”Armbrust在Moscone中心的主題演講中說,“它為資料湖帶來了ACID事務。它帶來了速度和索引,並且不犧牲可擴充套件性和彈性。這是實現Lakehouse的關鍵所在。”
該產品最初的名稱是Databricks Delta,它通過保持Parquet檔案的沿襲變化,增強了該公司基於Apache spark的雲服務。Parquet檔案是一種壓縮列式資料格式,在Hadoop叢集中脫穎而出,至今仍是現代雲中大資料系統的核心主力。
Armbrust說,雖然Parquet“很酷”,但它仍然有一堆問題。“它是資料庫的一部分,”他說。“[但]事實證明,大量的檔案集合並不是資料庫。”
Armbrust不斷地處理來自使用者的錯誤報告,他們抱怨Spark被破壞。但問題不在Spark。相反,問題的根源比這更深。Armbrust說,因為沒有事務,Spark使用者由此正在破壞他們自己的Parquet表。
“當他們的工作因為機器丟失且沒有自行清理而失敗時,許多人將寫入一個表中並破壞它,”這位前谷歌博士後研究員說。“沒有強制執行模式,所以如果你把任何模式的資料丟到資料夾裡,它就會使它無法被讀取。在雲端計算方面有很多複雜的工作。Hadoop檔案系統並不是專門為它構建的。我相信在座的各位都記得設定直接輸出提交器,如果設定錯了,就會出問題。而且,即使只是處理大表也很慢。僅僅列出所有的檔案可能就需要一個小時。”
Armbrust在2017年Spark峰會(資料+AI峰會的前身)上與使用者討論了這個問題,並認為一定有更好的方法。這就是Databricks Delta的起源,Armbrust在2018年的會議上介紹了它。
“這是第一批完全事務性的儲存系統之一,可以保留雲的所有最好部分。”他說,“而且更棒的是,它經過了我們數百名使用者大規模地實戰測試。”
但Delta “太好,不能被Databricks獨享”,Armbrust說。“所以在2019年,我們回來了,宣佈開放了Delta的原始碼。我們不僅僅是開源了協議,描述了不同的人如何連線在系統中進行交易。我們實際上也開放了我們經過實戰測試的Spark參考實現,把所有的程式碼放在GitHub上。”
Delta的工作繼續進行。該公司開發了優化等命令,它可以自動獲取微小的檔案,並以事務一致的方式將它們壓縮成一個更大的檔案,從而提供更好的效能。
“我們在它旁邊建立了這個非常酷的命令,叫做優化Zorder,它實際上是把你的資料對映到一個多維空間填充曲線上,這樣你就可以在多個維度上高效地過濾,”Armburst說。“這與基於統計學的做資料跳過的這一很酷的技巧配合得非常好。它基本上就像一個粗粒度的雲端索引。我們增加了從多個叢集寫入這些表的能力,還有一大堆其他我沒有時間談論的東西。”
然而,所有這些額外的東西並不是Databricks貢獻給開源技術的一部分。現在,Databricks在展會上宣佈的Delta Lake 2.0已經改變了這種情況。隨著這一產品的推出,所有這些功能現在都被賦予給任何想要使用它們的人。
Databricks公司執行長Ali Ghodsi說,這種以專有方式開發軟體,然後再將其開源的做法確保了軟體的質量更高。
“我們發現我們可以更快地發展,構建專有版本,然後在經過實戰測試後,再將其開源,就像我們對Delta所做的那樣。”Ghodsi在上週一的新聞釋出會上說,“這樣我們可以走得更快。我們可以與客戶快速迭代,在開源之前讓它達到成熟狀態。”
開源Delta Lake 2.0的舉動也讓Databricks重新回到開放資料生態系統的討論中。Databricks軟體開發實踐的專有性質受到了Dremio等分析查詢工具供應商的批評,Dremio已經轉向使用Apache Iceberg,這是另一種表資料格式,可以解決Databricks使用Delta格式解決的許多相同問題。
Dremio技術長Tomer Shiran曾懷疑Databricks是否試圖通過保持格式的專有性來鎖定客戶。現在這種猜測已經沒有意義了,因為Delta Lake已經開源了。
展望未來,我們將拭目以待Delta和Apache Iceberg如何在開放資料生態系統中爭奪支持者。在以一致的方式管理雲中的大資料方面,Iceberg搶佔了先機,成為了一個新標準,並在Hadoop時代引發的大資料混亂中佔據了主導地位。
Databricks的許多競爭對手,包括Snowflake和AWS(也是Databricks的合作伙伴)都採用了Iceberg。Iceberg在2018年出現,以解決Apache Hive表中圍繞資料正確性和一致性的長期問題。鑑於Delta的開源,Iceberg是否能保持這種領先優勢,誰也說不準。
作者:Alex Woodie
來自 “ https://www.datanami.com/2022/06/29/why-the-open-s ”,原文連結:http://blog.itpub.net/69925873/viewspace-2904102/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Databricks決定開源其Delta Lake資料湖
- 資料湖表格式比較(Iceberg、Hudi 和 Delta Lake)
- 資料湖揭祕—Delta Lake
- 通過 Apache Zeppelin深入瞭解Delta LakeApache
- Delta Lake 資料湖原理和實戰
- 資料庫圈周盤點:達夢擬科創板IPO;Delta Lake 2.0開源資料庫
- 為什麼資源隔離對HTAP至關重要?
- 關於Delta Lake的ACID事務機制簡介
- 資料湖倉比較:Apache Hudi、Delta Lake、Apache IcebergApache
- 為什麼工時表對中小企業很重要?
- 為什麼GOPROXY對Golang開發如此重要Golang
- Databricks說的Lakehouse是什麼?
- ITAM是什麼?為什麼它很重要?
- Python開發中,為什麼Django框架很重要?PythonDjango框架
- 為什麼要貢獻開源
- 為什麼有些公司的IT很亂?
- 為什麼DNS安全很重要DNS
- 為什麼凸優化這麼重要?優化
- 為什麼這麼多人覺得前端開發很難做下去?前端
- 什麼情況!華為開源JDK!JDK
- 為什麼去中心化很重要?中心化
- 為什麼Web3如此重要?Web
- 什麼是客戶分析,為什麼它很重要?
- 為什麼凸最佳化這麼重要?
- 為什麼資料備份那麼重要?
- 為什麼BI對企業這麼重要?
- 【Learning eBPF-1】什麼是 eBPF?為什麼它很吊?eBPF
- 趣說開源|為什麼要參與到開源社群中?
- 我們為什麼很難堅持下去
- 為什麼要雲mes?SAAS很重要
- 為什麼代理伺服器很重要?伺服器
- 為什麼區塊鏈橋很重要?區塊鏈
- iOS應用加固為什麼也那麼重要?iOS
- 為什麼Scrum變得不那麼重要了? - LogRocketScrum
- 雲同步: 什麼是雲同步以及為什麼它是如此重要?
- 為什麼我變成了開源主義者
- python為什麼要字串格式化Python字串格式化
- 為什麼許可權授權很難?- osohq