<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Hudi 版本 | Apache Hudi 0.11.0版本重磅發(fā)布

          共 5057字,需瀏覽 11分鐘

           ·

          2022-05-10 02:17


          0.11 版本包含了來自61個貢獻者的638個commits!

          多模式索引

          在 0.11.0 中,我們默認為 Spark writer 啟用具有同步更新的元數(shù)據(jù)表和基于元數(shù)據(jù)表的file listing,以提高在大型 Hudi 表上的分區(qū)和文件 listing 的性能。在reader方面,用戶需要將其設(shè)置為?hoodie.metadata.enable = true?以從中受益。元數(shù)據(jù)表和相關(guān)文件listing 仍然可以通過設(shè)置hoodie.metadata.enable=false來關(guān)閉此功能。因此,使用異步表服務(wù)部署 Hudi 的用戶需要配置鎖服務(wù)。如果無需使用此功能,可以通過額外設(shè)置這個配置?hoodie.metadata.enable = false?像以前一樣使用 Hudi。

          我們在元數(shù)據(jù)表中引入了多模式索引,以顯著提高文件索引中的查找性能和數(shù)據(jù)跳過的查詢延遲。元數(shù)據(jù)表中添加了兩個新索引

          1. 1. 布隆過濾器索引包含文件級布隆過濾器,以便在進行writer更新插入期間將主鍵查找和文件裁剪作為布隆索引的一部分。

          2. 2. 列統(tǒng)計索引包含所有/感興趣的列的統(tǒng)計信息,以改進基于寫入器和讀取器中的鍵和列值范圍的文件裁剪,例如在 Spark 的查詢計劃中。

          默認情況下它們被禁用。您可以通過分別設(shè)置hoodie.metadata.index.bloom.filter.enable?和hoodie.metadata.index.column.stats.enable?為true來啟用它們。

          有關(guān)升級和部署的詳細說明[1],請參閱元數(shù)據(jù)表指南。

          使用元數(shù)據(jù)表進行data skipping

          隨著在元數(shù)據(jù)表中增加了對列統(tǒng)計的支持,數(shù)據(jù)跳過現(xiàn)在依賴于元數(shù)據(jù)表的列統(tǒng)計索引 (CSI),而不是其自己的定制索引實現(xiàn)(與 0.10.0 中添加的空間曲線相比),允許利用數(shù)據(jù)跳過對于所有數(shù)據(jù)集,無論它們是否執(zhí)行布局優(yōu)化程序(如聚類)。要從數(shù)據(jù)跳過中受益,請確保同時為寫入器和讀取器設(shè)置hoodie.enable.data.skipping=true,并在元數(shù)據(jù)表中啟用元數(shù)據(jù)表和列統(tǒng)計索引。

          數(shù)據(jù)跳過支持標準函數(shù)(以及一些常用表達式),允許您將常用標準轉(zhuǎn)換應(yīng)用于查詢過濾器中列的原始數(shù)據(jù)。例如,如果您有將時間戳存儲為字符串的列“ts”,您現(xiàn)在可以在謂詞中使用人類可讀的日期來查詢它,如下所示date_format(ts, "MM/dd/yyyy" ) < "04/01/2022"。

          注意:目前僅在COW 表和讀優(yōu)化模式下的MOR 表中支持 Data Skipping。在HUDI-3866中跟蹤了對 MOR 表的全面支持的工作

          有關(guān)更多信息,請參閱性能指南[2]

          異步索引器

          在 0.11.0 中,我們添加了一個新的異步服務(wù),用于索引我們豐富的表服務(wù)集。它允許用戶在元數(shù)據(jù)表中創(chuàng)建不同類型的索引(例如,文件、布隆過濾器和列統(tǒng)計信息),而不會阻塞攝取。索引器在時間線上添加一個名為“indexing”的新action。雖然索引過程本身是異步的并且對寫入者來說是非阻塞的,但需要配置鎖提供程序以安全地協(xié)調(diào)運行中的寫入者進程。

          有關(guān)詳細信息,請參閱索引指南[3]

          Spark 數(shù)據(jù)源改進

          Hudi 的 Spark 低層次集成進行了相當(dāng)大的改進,整合了通用流程以共享基礎(chǔ)架構(gòu),并在查詢數(shù)據(jù)時提高了計算和數(shù)據(jù)吞吐量效率。

          • ??沒有日志文件的 MOR 查詢(增量查詢除外)表現(xiàn)為在讀取數(shù)據(jù)時利用矢量化 Parquet 讀取器,這意味著 Parquet 讀取器現(xiàn)在能夠利用現(xiàn)代處理器矢量化指令來進一步加快數(shù)據(jù)解碼速度。默認啟用。

          • ??當(dāng)使用標準 Record Payload 實現(xiàn)時(例如,OverwriteWithLatestAvroPayload),MOR 表只會在查詢引用的列之上獲取嚴格必要的列(主鍵、預(yù)合并鍵),從而大大減少對數(shù)據(jù)吞吐量的浪費以及用于解壓縮的計算并對數(shù)據(jù)進行解碼。例如,這對于具有 1000 列的“寬”MOR 表非常有利。

          有關(guān)相關(guān)配置更新,請參閱遷移指南[4]

          基于 Spark 的 Schema-on-read

          在 0.11.0 中,用戶現(xiàn)在可以輕松更改 Hudi 表的當(dāng)前Schema,以適應(yīng)不斷變化的數(shù)據(jù)Schema變化。通過ALTER TABLE語法為 Spark 3.1.x 和 Spark 3.2.1 添加了 Spark SQL DDL 支持(實驗性) 。

          有關(guān)更多詳細信息,請參閱模式演變指南[5]

          Spark SQL改進

          • ??用戶可以使用非主鍵字段更新或刪除 Hudi 表中的記錄。

          • ??現(xiàn)在通過timestamp as of語法支持時間旅行查詢。(僅限 Spark 3.2+)

          • ??添加CALL命令以支持在 Hudi 表上調(diào)用更多操作。

          有關(guān)更多詳細信息和示例,請參閱快速入門 - Spark 指南[6]

          Spark 版本和Bundle包

          增加了 Spark 3.2 支持;使用 Spark 3.2 的用戶可以使用hudi-spark3.2-bundle或hudi-spark3-bundle(舊包名稱)。

          • ??Spark 3.1 將繼續(xù)以hudi-spark3.1-bundle得到支持.

          • ? Spark 2.4 將繼續(xù)通過hudi-spark2.4-bundleor hudi-spark-bundle(legacy bundle name) 得到支持。

          有關(guān)使用更新,請參閱遷移指南[7]

          瘦身的Utilities包

          在 0.11.0 中,hudi-utilities-slim-bundle添加了一個新項以排除可能導(dǎo)致與其他框架(如 Spark)發(fā)生沖突和兼容性問題的依賴項。

          • ? hudi-utilities-slim-bundle適用于 Spark 3.1 和 2.4。

          • ? hudi-utilities-bundle繼續(xù)使用 Spark 3.1,就像在 Hudi 0.10.x 中一樣。

          Flink 集成改進

          • ??在 0.11.0 中,同時支持 Flink 1.13.x 和 1.14.x。

          • ??支持復(fù)雜的數(shù)據(jù)類型,例如Map和Array。復(fù)雜數(shù)據(jù)類型可以嵌套在另一個組合數(shù)據(jù)類型中。

          • ??添加了一個基于 DFS 的 Flink Catalog,catalog標識符為hudi. 您可以直接通過 API 實例化目錄,也可以使用CREATE CATALOG語法創(chuàng)建catalog。

          • ??Flink在正常UPSERT和BULK_INSERT操作中都支持Bucket Index[8]?。與默認的 Flink 基于狀態(tài)的索引不同,桶索引是在恒定數(shù)量的桶中。指定 SQL 選項 index.type 為 BUCKET 以啟用它。

          Google BigQuery集成

          在 0.11.0 中,Hudi 表可以作為外部表從 BigQuery 中查詢。用戶可以設(shè)置org.apache.hudi.gcp.bigquery.BigQuerySyncTool為HoodieDeltaStreamer的同步工具實現(xiàn),并使目標 Hudi 表在 BigQuery 中可發(fā)現(xiàn)。請參閱?BigQuery 集成指南頁面[9]了解更多詳情。

          注意:這是一項實驗性功能,僅適用于 hive 樣式分區(qū)的 Copy-On-Write 表。

          AWS Glue Meta 同步

          在 0.11.0 中,Hudi 表可以直接通過 AWS 開發(fā)工具包同步到 AWS Glue Data Catalog。用戶可以設(shè)置org.apache.hudi.aws.sync.AwsGlueCatalogSyncTool為HoodieDeltaStreamer的同步工具實現(xiàn),并使目標 Hudi 表在 Glue Catalog中可發(fā)現(xiàn)。有關(guān)更多詳細信息,請參閱同步到 AWS Glue Data Catalog指南頁面[10]

          注意:這是一個實驗性功能。

          DataHub Meta 同步

          在 0.11.0 中,Hudi 表的元數(shù)據(jù)(特別是模式和上次同步提交時間)可以同步到DataHub[11]。用戶可以將目標表設(shè)置org.apache.hudi.sync.datahub.DataHubSyncTool為HoodieDeltaStreamer的同步工具實現(xiàn),并將目標表同步為DataHub中的Dataset。有關(guān)詳細信息,請參閱同步到 DataHub指南頁面[12]

          注意:這是一個實驗性功能。

          加密

          在 0.11.0 中,添加了對 Spark 3.2 的支持,并附帶了 Parquet 1.12,它為 Hudi(COW表)帶來了加密功能。有關(guān)詳細信息,請參閱加密指南頁面[13]

          Bucket 索引

          0.11.0增加了一種高效、輕量級的索引類型Bucket index。它使用基于記錄鍵的散列函數(shù)將記錄分配到存儲桶,其中每個存儲桶對應(yīng)于單個文件組。要使用此索引,請將索引類型設(shè)置為BUCKET并設(shè)置hoodie.storage.layout.partitioner.classorg.apache.hudi.table.action.commit.SparkBucketIndexPartitioner。對于 Flink,設(shè)置index.type=BUCKET.

          更多詳情請在配置頁面中參考hoodie.bucket.index.*

          保存點和恢復(fù)

          災(zāi)難恢復(fù)是任何生產(chǎn)部署中的關(guān)鍵特性。尤其是在涉及存儲數(shù)據(jù)的系統(tǒng)中。Hudi 從一開始就為 COW 表提供了保存點和恢復(fù)功能。在 0.11.0 中,我們添加了對 MOR 表的支持。

          有關(guān)此功能的更多信息,請參閱災(zāi)難恢復(fù)[14]

          Pulsar 寫提交回調(diào)

          Hudi 用戶可以使用org.apache.hudi.callback.HoodieWriteCommitCallback在成功提交時調(diào)用回調(diào)函數(shù)。在 0.11.0中,除了現(xiàn)有的 HTTP 回調(diào)和 Kafka 回調(diào)之外,我們還添加了這些HoodieWriteCommitPulsarCallback回調(diào)。詳細設(shè)置請參考配置頁面[15]

          HiveSchemaProvider

          在 0.11.0 中,添加了org.apache.hudi.utilities.schema.HiveSchemaProvider用于從用戶定義的Hive表中獲取Schema。這在HoodieDeltaStreamer拖尾 Hive 表而不是提供 avro 模式文件時很有用。

          遷移指南

          Bundle使用更新

          不再正式支持 3.0.x 的 Spark Bundle包。鼓勵用戶升級到 Spark 3.2 或 3.1。

          鼓勵用戶使用名稱中帶有特定 Spark 版本的包 ( hudi-sparkX.Y-bundle) 并遠離舊包 (hudi-spark-bundle和hudi-spark3-bundle)。

          Spark 或 Utilities 包在運行時不再需要額外spark-avro的包;可以刪除--package org.apache.spark:spark-avro_2.1*:*選項。

          配置更新

          對于 MOR 表,hoodie.datasource.write.precombine.field寫入和讀取都需要。

          僅在使用BigQuery 集成[16]時設(shè)置hoodie.datasource.write.drop.partition.columns=true

          對于依賴提取物理分區(qū)路徑的 Spark reader,設(shè)置hoodie.datasource.read.extract.partition.values.from.path=true為與現(xiàn)有行為保持兼容。

          Spark 的默認索引類型從?BLOOM?更改為SIMPLE(?HUDI-3091[17]?)。如果您當(dāng)前依賴默認BLOOM 索引類型,請相應(yīng)地更新您的配置。

          原始發(fā)行說明可在此處獲得:https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12322822&version=12350673

          感謝

          感謝參與0.10.0版本的所有貢獻者,歡迎廣大數(shù)據(jù)湖愛好者加入Apache Hudi社區(qū),歡迎star & fork https://github.com/apache/hudi

          瀏覽 94
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  A∨免费在线 | 日本黄免费观看 | 一级a一级a爰免费免免高潮 | 狠狠操网 | 天天射天天干天天 |