為什麼Databricks Delta Lake表格式開源很重要?

qing_yun發表於2022-07-04

早在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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章