什麼是三角洲湖?
三角洲湖是一個開源存儲層這為數據湖帶來了可靠性。Delta Lake提供ACID事務、可伸縮元數據處理,並統一流數據和批數據處理。Delta Lake運行在現有的數據湖之上,與Apache Spark api完全兼容。Databricks上的Delta Lake允許您基於您的工作負載模式配置Delta Lake。
Databricks為Delta Lake添加了優化的布局和索引,以實現快速交互查詢。
本指南提供了介紹性概述、快速入門和在Databricks上使用Delta Lake的指導。
具體來說,三角洲湖提供:
ACID事務在Spark上:序列化隔離級別確保讀取器永遠不會看到不一致的數據。
可擴展的元數據處理:利用Spark分布式處理能力輕鬆處理數十億文件的pb級表的所有元數據。
流媒體而且批處理統一:Delta Lake中的表既是一個批處理表,也是一個流源和流彙。流數據攝入,批量曆史回填,交互式查詢都是開箱即用的。
模式實施:自動處理模式變化,以防止在攝入過程中插入壞記錄。
時間旅行:數據版本控製支持回滾、完整的曆史審計跟蹤和可重複的機器學習實驗。
插入而且刪除:支持合並、更新和刪除操作,以支持複雜的用例,如更改數據捕獲、緩慢更改維度(SCD)操作、流upserts等。
許多Databricks運行時優化需要Delta Lake。Delta Lake操作具有很高的性能,支持從大規模ETL處理到特別的交互式查詢的各種工作負載。有關Databricks上優化的信息,請參見關於Databricks的優化和性能建議.
關鍵任務
下麵的列表提供了常見Delta Lake任務的文檔鏈接。
創建一個Delta表:快速啟動,作為批處理數據任務的一部分
在Delta Lake表中加載和寫入數據:
合並數據更新和插入(upserts):作為表更新的一部分
從Delta表中讀取數據:快速啟動,作為批處理數據任務的一部分,作為流媒體的一部分
優化Delta表:快速啟動,作為垃圾箱包裝的一部分,作為z順序的一部分,作為文件大小調優的一部分
顯示一個Delta表的曆史:快速啟動,作為數據實用程序的一部分
清理Delta表快照(真空):快速啟動,作為數據實用程序的一部分
使用Delta表列:
使用Delta表版本:
查詢Delta表的早期版本(時間旅行):快速啟動,作為批處理數據任務的一部分
使用Delta表元數據:
三角洲湖api
對於Delta表上的大多數讀和寫操作,您可以使用火花SQL或Apache火花DataFrameapi。
有關Delta lake特定的SQL語句,請參見三角洲湖語句.
Databricks確保在Databricks運行時與Delta Lake api的二進製兼容性。若要查看每個Databricks Runtime版本中打包的Delta Lake API版本,請參見Delta Lake API兼容性矩陣.Delta Lake api適用於Python、Scala和Java:
資源
有關常見問題的答案,請參見常見問題(FAQ).
有關Delta Lake SQL命令的參考信息,請參見三角洲湖語句.
Delta Lake事務日誌具有定義良好的開放協議,任何係統都可以使用該協議讀取日誌。看到Delta事務日誌協議.