您好,登錄后才能下訂單哦!
這篇文章主要介紹Delta Lake 0.5.0有什么特性,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
Delta Lake 0.5.0 于2019年12月13日正式發布,正式版本可以到 https://github.com/delta-io/delta/releases/tag/v0.5.0?spm=a2c6h.12873639.0.0.23ea24406RkWrF&file=v0.5.0 下載使用。這個版本支持多種查詢引擎查詢 Delta Lake 的數據,比如常見的 Hive、Presto 查詢引擎。并發操作得到改進。當然,這個版本還是不支持直接使用 SQL 去增刪改查 Delta Lake 的數據,這個可能得等到明年1月的 Apache Spark 3.0.0 的發布。
在之前版本的 Delta Lake,只支持使用 Spark 去查詢 Delta Lake 的數據,使得它的使用場景有點限制。但是通過引入了 manifest 文件(參見 #76,https://github.com/delta-io/delta/issues/76?spm=a2c6h.12873639.0.0.152d2440UP8orM),我們可以使用 Presto/Amazon Athena 等查詢引擎去查詢 Delta Lake 的數據。Amazon Athena 是一種交互式查詢服務,讓您能夠輕松使用標準 SQL 直接分析 Amazon S3 中的數據,其內部是使用 Presto 實現的。
manifest 文件的生成可以使用 Scala, Java, Python 以及 SQL 去實現,具體可以參見 Delta Lake 的最新文檔:Presto and Athena to Delta Lake Integration,https://docs.delta.io/0.5.0/presto-integration.html?spm=a2c6h.12873639.0.0.152d2440FjP2qK
除了支持 Presto/Amazon Athena,還支持 Redshift Spectrum(Amazon Redshift 是一種快速、完全托管的 PB 級數據倉庫服務,它使得用現有商業智能工具對您的所有數據進行高效分析變得簡單而實惠,Amazon Redshift 不能直接分析 S3 上的數據,他需要將 S3 上的數據拷貝到 Amazon Redshift 才行;而 Redshift Spectrum 是 Amazon Redshift 的一項新功能,它支持直接分析 S3 上的數據。)、Snowflake(這個是美國的一家公司的數據湖產品,支持分析 S3 上的數據) 以及 Hive(只支持查 Delta Lake 的數據,不支持 metastore)。
但是畢竟不是通過 manifest 文件實現的,所以有一些 Delta Lake 原生的功能暫不支持,比如數據一致性可能不能保證,底層的模式發生變化上層查詢引擎會不感知,得重新建立。具體可以參見 limitations,
https://docs.delta.io/0.5.0/presto-integration.html?spm=a2c6h.12873639.0.0.152d24401m0KhO#limitations
現在我們可以同時運行更多的 Delta Lake 操作。這個實現是通過將 Delta Lake 樂觀并發控制的沖突檢測變得更細粒度解決的。這使得我們可以在 Delta Lake 表上運行更加復雜的工作流:
在添加新分區時,同時刪除舊分區;
在不相交的分區上并發地運行更新(updates)和合并(merges);
在數據壓縮的時候同時對 Delta Lake 添加數據。
具體參見 并發控制,https://docs.delta.io/0.5.0/concurrency-control.html。
在壓縮數據的時候現在可以通過DataFrameWriter的選項 dataChange 設置為 false 來重新編寫文件。通過這個選項允許壓縮操作與其他批處理和流操作并發運行。關于如何使用可以參見 壓縮文件,
https://docs.delta.io/0.5.0/best-practices.html?spm=a2c6h.12873639.0.0.23ea2440hRtZny#compact-files。
Delta Lake 現在為只有插入子句而沒有更新子句的合并操作提供了更優化的性能。此外,Delta Lake 確保這種 insert-only merge 操作只會向表中追加(append)新數據。舉個例子,常見的 ETL 操作將收集到的數據追加到 Delta Lake 表中,然而,這些源常常會生成重復的日志記錄,需要下端來刪除這些重復的數據,而有了這個功能,我們可以避免插入重復的記錄。具體可以參見 https://docs.delta.io/0.5.0/delta-update.html?spm=a2c6h.12873639.0.0.152d2440yuXqE9#-merge-in-dedup。
在 Delta Lake 0.4.0 版本,已經支持使用 Scala, Java 以及 Python 來實現這個目的。為了使用更加方便,Delta Lake 0.5.0 版本支持直接通過 SQL 將 Parquet 表轉換成 Delta Lake 表,具體如下:
Convert unpartitioned parquet table at path 'path/to/table'
CONVERT TO DELTA parquet.`path/to/table`
Convert partitioned parquet table at path 'path/to/table' and partitioned by integer column named 'part'
CONVERT TO DELTA parquet.`path/to/table` PARTITIONED BY (part int)
以上是“Delta Lake 0.5.0有什么特性”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。