chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Hudi系列:Hudi核心概念之索引(Indexs)

京東云 ? 來源:jf_75140285 ? 作者:jf_75140285 ? 2025-10-21 09:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Hudi系列:Hudi核心概念(版本1.0)

?Hudi架構(gòu)

?一. 時(shí)間軸(TimeLine)s

?1.1 時(shí)間軸(TimeLine)概念

?1.2 Hudi的時(shí)間線由組成

?1.3 時(shí)間線上的Instant action操作類型

?1.4 時(shí)間線上State狀態(tài)類型

?1.5 時(shí)間線官網(wǎng)實(shí)例

?二. 文件布局

?三. 索引

3.1 簡(jiǎn)介

3.2 對(duì)比其它(Hive)沒有索引的區(qū)別

3.2 多態(tài)索引

布隆過濾器

記錄索引

表達(dá)索引

二級(jí)索引

3.3寫入端的索引類型

3.4 全局索引與非全局索引

四. 表類型

4.1 COW:(Copy on Write)寫時(shí)復(fù)制表

4.1.1 概念

4.1.2 COW工作原理

4.1.3 COW表對(duì)表的管理方式改進(jìn)點(diǎn)

4.2 MOR:(Merge on Read)讀時(shí)復(fù)制表

4.2.1 概念

4.2.2 MOR表工作原理

4.3 總結(jié)了兩種表類型之間的權(quán)衡

五. 查詢類型

5.1 Snapshot Queries

5.2 Incremental Queries

5.3 Read Optimized Query

簡(jiǎn)介

Hudi 中最基礎(chǔ)的索引機(jī)制會(huì)一致地跟蹤從給定鍵(記錄鍵 + 可選分區(qū)路徑)到文件 ID 的映射。其他類型的索引(如二級(jí)索引)都以此為基礎(chǔ)構(gòu)建。一旦將記錄的第一個(gè)版本寫入文件組,記錄鍵和文件組/文件 ID 之間的映射就很少會(huì)發(fā)生變化。只有以刪除 + 插入形式實(shí)現(xiàn)的集群或跨分區(qū)更新才會(huì)將記錄鍵重新映射到不同的文件組。即便如此,給定的記錄鍵在時(shí)間線上的任何完成時(shí)刻都只與一個(gè)文件組相關(guān)聯(lián)。

對(duì)比其它(Hive)沒有索引的區(qū)別

對(duì)于 Copy-On-Write表,索引可實(shí)現(xiàn)快速的插入/刪除操作,因?yàn)闊o需與整個(gè)數(shù)據(jù)集連接來確定要重寫哪些文件。對(duì)于Merge-On-Read 表,索引允許 Hudi 限制需要合并任何給定基礎(chǔ)文件的更改記錄數(shù)量。具體而言,給定基礎(chǔ)文件僅需與屬于該基礎(chǔ)文件的記錄的更新合并。相反,沒有索引組件的Hive ACID需要將所有的基本文件與所有傳入的更新/刪除記錄合并。

wKgZO2jx0K-AAXmcAAPYfGKjO6A673.png

多態(tài)索引

Hudi 通過增強(qiáng)元數(shù)據(jù)表以合并新類型索引的能力來支持多模式索引,并輔以索引構(gòu)建的異步機(jī)制。此增強(qiáng)功能支持元數(shù)據(jù)表中的一系列索引,從而顯著提高了寫入和讀取表的效率。

wKgZPGjx0LCAQd0CAAapIckMPFE733.png

?

布隆過濾器Bloom Filters

Bloom filter 索引作為元數(shù)據(jù)表中的 bloom_filter 分區(qū)。此索引采用基于范圍的修剪來修剪記錄鍵的最小值和最大值,并采用基于 bloom 過濾器的查找來標(biāo)記傳入的記錄。對(duì)于大型表,這涉及讀取所有匹配數(shù)據(jù)文件的頁腳以查找 bloom 過濾器,這在整個(gè)數(shù)據(jù)集隨機(jī)更新的情況下成本可能很高。此索引集中存儲(chǔ)所有數(shù)據(jù)文件的 bloom 過濾器,以避免直接從所有數(shù)據(jù)文件掃描頁腳。

記錄索引Record Indexes

記錄索引作為元數(shù)據(jù)表中的 record_index 分區(qū)。包含記錄鍵到位置的映射。記錄索引是一個(gè)全局索引,在表的所有分區(qū)中強(qiáng)制鍵唯一性。此索引有助于比其他現(xiàn)有索引更快地定位記錄,并且可以在索引查找主導(dǎo)寫入延遲的大型部署中提供更快的加速。為了適應(yīng)非常高的規(guī)模,它利用基于哈希的鍵空間分片。此外,在讀取數(shù)據(jù)時(shí),索引允許點(diǎn)查找,從而顯著加快索引映射檢索過程。

表達(dá)式索引Expression Index

Expression Index是列函數(shù)的索引。如果查詢對(duì)列函數(shù)有謂詞,則可以使用表達(dá)式索引來加速查詢。表達(dá)式索引存儲(chǔ)在元數(shù)據(jù)表下的 expr_index_ 前綴分區(qū)中(每個(gè)表達(dá)式索引一個(gè))??梢允褂?SQL 語法創(chuàng)建表達(dá)式索引。請(qǐng)?jiān)诖颂幉榭?SQL DDL 文檔以了解更多詳細(xì)信息。

以下是控制在寫入器上啟用表達(dá)式索引構(gòu)建和維護(hù)的配置,后續(xù)會(huì)詳細(xì)講解,這個(gè)是1.0的新增的特性

wKgZO2jx0LKAIur7AAXvfROx-dk188.png

二級(jí)索引Secondary Index

Secondary Index允許用戶在 Hudi 表中不屬于記錄鍵列的列上創(chuàng)建索引(對(duì)于記錄鍵字段,Hudi 支持記錄級(jí)索引)。二級(jí)索引可用于加速對(duì)記錄鍵列以外的列使用謂詞的查詢。

以下是控制在寫入器上啟用二級(jí)索引構(gòu)建和維護(hù)的配置,后續(xù)會(huì)詳細(xì)講解,這個(gè)是1.0的新增的特性

wKgZPGjx0LOAb2lgAAM6hhjvXdQ330.png

附加寫入端索引 writer-side indexes

上面討論的所有索引都可通過與元數(shù)據(jù)表集成供讀取器/寫入器使用。存儲(chǔ)引擎還實(shí)現(xiàn)了索引機(jī)制,通過高效讀取/連接/處理傳入的輸入記錄,以對(duì)照存儲(chǔ)在基礎(chǔ)/日志文件本身中的信息(例如,存儲(chǔ)在 parquet 文件頁腳中的布隆過濾器)或智能數(shù)據(jù)布局(例如,存儲(chǔ)桶索引)。

目前,Hudi 支持以下索引類型。Spark 引擎上的默認(rèn)索引類型為 SIMPLE,F(xiàn)link 和 Java 引擎上的默認(rèn)索引類型為 INMEMORY。寫入器可以使用 hoodie.index.type 配置選項(xiàng)選擇其中一個(gè)選項(xiàng)。

?

index類型 描述
SIMPLE(Spark 引擎的默認(rèn)索引類型) 這是 Spark 引擎的標(biāo)準(zhǔn)索引類型。它執(zhí)行傳入記錄與從存儲(chǔ)在磁盤上的表中檢索到的鍵的有效連接。它要求鍵在分區(qū)級(jí)別上是唯一的,這樣它才能正常運(yùn)行。
RECORD_INDEX 使用上一節(jié)中的記錄索引作為寫入端索引。
BLOOM 用由記錄鍵生成的布隆過濾器,并可選擇根據(jù)記錄鍵的范圍進(jìn)一步縮小候選文件的范圍。它要求鍵在分區(qū)級(jí)別上是唯一的,這樣它才能正常工作。
GLOBAL_BLOOM 用由記錄鍵創(chuàng)建的布隆過濾器,還可以通過使用記錄鍵的范圍來優(yōu)化候選文件的選擇。它要求鍵在表/全局級(jí)別上是唯一的,這樣它才能正常工作。
GLOBAL_SIMPLE 對(duì)傳入記錄與從存儲(chǔ)表中提取的鍵執(zhí)行精益連接。它要求鍵在表/全局級(jí)別上是唯一的,這樣它才能正常工作。
HBASE 通過 Apache HBase 中的外部表管理索引映射。
INMEMORY(Flink 和 Java 的默認(rèn)設(shè)置) 使用 Spark 和 Java 引擎中的內(nèi)存哈希圖以及 Flink 中的 Flink 內(nèi)存狀態(tài)進(jìn)行索引。
BUCKET 利用 bucket hashing 來識(shí)別存放記錄的文件組,這在大規(guī)模情況下尤其有利。要選擇 bucket 引擎的類型(即創(chuàng)建 bucket 的方法),請(qǐng)使用 hoodie.index.bucket.engine 配置選項(xiàng)。
SIMPLE(默認(rèn)) 此索引為每個(gè)分區(qū)內(nèi)的文件組使用固定數(shù)量的 bucket,這些 bucket 無法減小或增大大小。它適用于 COW 和 MOR 表。由于 bucket 數(shù)量不可改變,并且設(shè)計(jì)原則是將每個(gè) bucket 映射到單個(gè)文件組,因此這種索引方法可能不適用于數(shù)據(jù)偏差較大的分區(qū)。
CONSISTENT_HASHING 此索引可容納動(dòng)態(tài)數(shù)量的 bucket,并具有調(diào)整 bucket 大小的功能,以確保每個(gè) bucket 的大小合適。通過允許動(dòng)態(tài)調(diào)整這些分區(qū)的大小,這解決了數(shù)據(jù)量大的分區(qū)中的數(shù)據(jù)偏差問題。因此,分區(qū)可以有多個(gè)大小合理的存儲(chǔ)桶,這與 SIMPLE 存儲(chǔ)桶引擎類型中每個(gè)分區(qū)的存儲(chǔ)桶數(shù)量固定不同。此功能僅與 MOR 表兼容。
自帶實(shí)現(xiàn) 您可以擴(kuò)展此公共 API 并使用 hoodie.index.class 提供 SparkHoodieIndex 的子類(用于 Apache Spark 編寫器)來實(shí)現(xiàn)自定義索引。

全局索引與非全局索引 Global and Non-Global Indexes

Bloom 和 simple index 都有全局選項(xiàng),Base 索引本質(zhì)上是一個(gè)全局索引

hoodie.index.type=GLOBAL_BLOOM

hoodie.index.type=GLOBAL_SIMPLE

1.全局索引:在全表的所有分區(qū)范圍下強(qiáng)制要求鍵保持唯一,即確保對(duì)給定的鍵有且只有一個(gè)對(duì)應(yīng)的記錄。

2.非全局索引:僅在表的某一個(gè)分區(qū)內(nèi)強(qiáng)制要求鍵保持唯一,它依靠寫入器為同一個(gè)記錄的更刪提供一致的分區(qū)路。

?

?

?

文獻(xiàn): https://hudi.apache.org/docs/overview

?審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 索引
    +關(guān)注

    關(guān)注

    0

    文章

    60

    瀏覽量

    10743
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Hudi基礎(chǔ)入門篇-07--Hudi 快速體驗(yàn)使用--編譯Hudi 源碼

    大數(shù)據(jù)
    電子學(xué)習(xí)
    發(fā)布于 :2023年01月07日 09:31:49

    Hudi基礎(chǔ)入門篇-05--學(xué)習(xí)Apache Hudi--Hudi 框架基本介紹

    大數(shù)據(jù)
    電子學(xué)習(xí)
    發(fā)布于 :2023年01月07日 09:35:31

    Hudi基礎(chǔ)入門篇-09--Hudi 快速體驗(yàn)使用--HDFS 安裝部署測(cè)試

    大數(shù)據(jù)
    電子學(xué)習(xí)
    發(fā)布于 :2023年01月07日 09:37:01

    Hudi基礎(chǔ)入門篇-06--為什么要學(xué)習(xí)Apache Hudi--Hudi 快速發(fā)展

    大數(shù)據(jù)
    電子學(xué)習(xí)
    發(fā)布于 :2023年01月07日 09:49:12

    Hudi基礎(chǔ)入門篇-02-為什么學(xué)習(xí)Apache Hudi-什么是數(shù)據(jù)湖DataLake

    大數(shù)據(jù)
    電子學(xué)習(xí)
    發(fā)布于 :2023年01月07日 09:52:37

    Hudi基礎(chǔ)入門篇-10--Hudi 快速體驗(yàn)使用--Spark 安裝部署測(cè)試

    大數(shù)據(jù)
    電子學(xué)習(xí)
    發(fā)布于 :2023年01月07日 09:54:56

    Hudi基礎(chǔ)入門篇-04--學(xué)習(xí)Apache Hudi--三大流式數(shù)據(jù)湖框架

    大數(shù)據(jù)
    電子學(xué)習(xí)
    發(fā)布于 :2023年01月07日 09:59:33

    Hudi基礎(chǔ)入門篇-08--Hudi 快速體驗(yàn)使用--大數(shù)據(jù)環(huán)境準(zhǔn)備概述

    大數(shù)據(jù)
    電子學(xué)習(xí)
    發(fā)布于 :2023年01月07日 10:00:06

    基于索引的SQL語句優(yōu)化降龍十八掌

    基于索引的SQL語句優(yōu)化降龍十八掌1 前言 22 總綱 23 降龍十八掌 3第一掌 避免
    發(fā)表于 09-25 13:24

    LV Nugget數(shù)組索引的妙用

    我們談?wù)剶?shù)組索引的用法,首先從一維數(shù)組談起。1、一維數(shù)組的首個(gè)元素對(duì)應(yīng)的索引值為0,也就是說索引從0開始,有些編程語言數(shù)組的索引是從1開始的,所以這點(diǎn)必須明確。2、
    發(fā)表于 11-16 13:50

    LabVIEW Nugget數(shù)組索引的妙用

    我們談?wù)剶?shù)組索引的用法,首先從一維數(shù)組談起。1、一維數(shù)組的首個(gè)元素對(duì)應(yīng)的索引值為0,也就是說索引從0開始,有些編程語言數(shù)組的索引是從1開始的,所以這點(diǎn)必須明確。2、
    發(fā)表于 12-18 15:02

    git的三個(gè)核心概念詳解

    git的三個(gè)核心概念(工作區(qū),版本庫stage,版本庫master)
    發(fā)表于 12-24 07:17

    Labview索引數(shù)組

    Labview索引數(shù)組,很好的Labview資料,快來下載學(xué)習(xí)吧。
    發(fā)表于 04-19 10:23 ?0次下載

    Labview自動(dòng)索引功能(二維數(shù)組--一維數(shù)組)

    Labview自動(dòng)索引功能(二維數(shù)組--一維數(shù)組),很好的Labview資料,快來下載學(xué)習(xí)吧。
    發(fā)表于 04-19 10:56 ?0次下載

    Hudi系列:Hudi核心概念文件布局(Storage Layouts)

    Hudi系列:Hudi核心概念(版本1.0) ?Hudi架構(gòu) ?一. 時(shí)間軸(TimeLine)
    的頭像 發(fā)表于 10-14 16:06 ?142次閱讀
    <b class='flag-5'>Hudi</b><b class='flag-5'>系列</b>:<b class='flag-5'>Hudi</b><b class='flag-5'>核心</b><b class='flag-5'>概念</b><b class='flag-5'>之</b>文件布局(Storage Layouts)