Hudi 索引總結 - Parquet布隆過濾器寫入過程

前言

上篇文章 提到 :索引的邏輯主要是根據 parquet 文件中保存的索引信息,判斷記錄是否存在,如果不存在,代表是新增數據,如果記錄存在則代表是更新數據,需要找到并設置 currentLocation。對于布隆索引來說,這里的索引信息其實是布隆過濾器,本篇文章主要是先總結布隆過濾器是如何保存到 parquet 文件中的(主要是源碼調用邏輯)。

我們新寫一個表的時候,最開始是沒有parquet文件的,所以順序應該是先將布隆過濾器寫到 parquet 文件中,下次寫數據的時候,先讀取 parquet 文件中的布隆過濾器來驗證表中是否存在該記錄,有助于實現高效的更新和刪除操作。

索引

索引是一個關鍵的步驟,它驗證表中是否存在記錄,并有助于實現高效的更新和刪除操作。請注意本文中涵蓋的索引是為寫入端準備的,這與讀取端索引不同。

對于有的索引類型是不涉及將索引信息保存到文件中的,比如 簡單索引(simple index),而對于Bloom索引(Bloom Index)則需要將布隆過濾器以及最大值最小值等信息寫到 parquet 文件中的元數據中。

Bloom索引(Bloom Index)

Bloom Index 最大限度地減少了用于查找的鍵和文件的數量,同時保持了較低的讀取成本。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/43027.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/43027.shtml
英文地址,請注明出處:http://en.pswp.cn/web/43027.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【機器學習】主成分分析(PCA):數據降維的藝術

🌈個人主頁: 鑫寶Code 🔥熱門專欄: 閑話雜談| 炫酷HTML | JavaScript基礎 ?💫個人格言: "如無必要,勿增實體" 文章目錄 主成分分析(PCA):數據降維的藝術引言PCA的基…

技術成神之路:設計模式(四)工廠方法模式

1.定義 工廠方法模式(Factory Method Pattern)是一種創建型設計模式,它提供了一種創建對象的接口,而不是通過具體類來實例化對象。工廠方法模式的主要作用是讓子類決定實例化哪一個類,從而實現對象創建的延遲到具體子類…

2024年6月國產數據庫大事記-墨天輪

本文為墨天輪社區整理的2024年6月國產數據庫大事件和重要產品發布消息。 目錄 2024年6月國產數據庫大事記 TOP102024年6月國產數據庫大事記(時間線)產品/版本發布兼容認證代表廠商大事記廠商活動相關資料 2024年6月國產數據庫大事記 TOP10 2024年6月國…

最優雅的PHP框架 Laravel

Laravel 之所以被稱為最優雅的 PHP 框架,是因為它在設計和功能上做了很多獨特的創新,極大地提高了開發效率和代碼的可維護性。以下是 Laravel 受歡迎的主要原因: 良好的文檔和社區支持 Laravel 有詳盡的官方文檔,涵蓋了框架的所有功能和用法。此外,Laravel 社區非常活躍…

【Python】已解決:SyntaxError invalid syntax

文章目錄 一、分析問題背景二、可能出錯的原因三、錯誤代碼示例四、正確代碼示例五、注意事項 已解決:SyntaxError invalid syntax 一、分析問題背景 在Python編程中,SyntaxError: invalid syntax是一個常見的錯誤,它通常表示代碼中存在語法…

.net開發:NPOI生成excel文件到磁盤

源碼實測可用 使用.net工具包NPOI,生成excel文件到本地磁盤。 實際項目中可以指定路徑到服務器,把生成的文件存放到服務器指定目錄。 controller層 [HttpPost("ExportExcel")]public void ExportExcel(){_TestService.ExportToExcel();} serv…

redis中的事務和mysql中的事務有什么區別?

Redis和MySQL的事務在概念和特性上存在一些顯著的區別: 1. 原子性(Atomicity): - MySQL:事務具有原子性,即事務中的所有操作要么全部成功,要么全部失敗,如果中途出現錯誤,整個事…

Linux內核 -- 虛擬化之virtqueue結構

Linux Kernel中的Virtqueue Virtqueue是Linux Kernel中用于實現Virtio設備的一個關鍵數據結構。Virtio是一種虛擬I/O設備標準,旨在簡化虛擬化環境中虛擬設備與虛擬機之間的通信。Virtqueue則是實現這種通信的核心機制。以下是Virtqueue的一些關鍵點: V…

主流I/O模型總結(Linux Windows)

I/O復用模型(EPOLL) 模型思想:向內核注冊需要監聽的文件描述符,操作系統負責保存監視對象文件描述符,當有事件發生時,epoll_wait僅返回有事件發生的文件描述符數組 優點: 1.無需編寫以監視狀態為目的的針對所有文件描述符的循環語…

案例|水上水下一體化測量,為九寨溝精準把脈

? 九寨溝,被譽為“人間仙境”,其湖群以獨特的地理位置和優美的自然景觀吸引著世界各地的游客,更是九寨溝生態系統中不可或缺的重要組成部分。因此,精準地掌握湖群的地形數據、水體分布及變化情況,能夠揭示水下生態系…

【數據結構與算法基礎】算法復雜度

歡迎光顧我的homepage 前言 算法就是定義良好的計算過程,它取一個活一組的值輸入,并產生出一個或一組值作為輸出。簡單來說,算法就是一系列的計算步驟,用來將輸入數據轉化成輸出結果。 一、算法效率 如何去衡量一個算法的好壞&am…

[C++]——同步異步日志系統(3)

同步異步日志系統 一、日志系統框架設計1.1模塊劃分1.1.1 日志等級模塊1.1.2 日志消息模塊1.1.3 日志消息格式化模塊1.1.4 日志落地模塊(日志落地的方向是工廠模式)1.1.5 日志器模塊(日志器的生成是建造者模式)1.1.6 異步線程模塊…

Android12上實現雙以太網卡共存同時訪問外網

具體實現如下: 修改main 表優先級到9999, 作用:eth0 eth1 訪問 不去teardown 低分數網線 diff --git a/service/src/com/android/server/ConnectivityService.java b/service/src/com/android/server/ConnectivityService.java index 418e…

Ubuntu 22.04 設置swap交換空間

經常爆內存,導致很多應用沒有辦法一直正常運行,可以通過設置swap來緩解一下,雖然和內存的速度無法媲美,但是能一定程度緩解一下問題。 一、查看當前分區 查看當前系統的swap大小 free -m 二、關閉現有的swap分區 將/etc/fstab…

CUDA Kernel調試與優化--背景知識掃盲(LLM生成)

CUDA Kernel調試與優化–背景知識掃盲(LLM生成) 對于使用CUDA進行調試與性能優化,官方提供了豐富的參考資料和工具。以下是一些關鍵資源,可以幫助你更好地調試和優化CUDA代碼: 官方文檔和指南 CUDA Toolkit Documentation URL: CUDA Toolk…

強化學習總結(有具體代碼實現)

文章目錄 第一部分 強化學習基礎第1章 強化學習概述1.1 強化學習概念1.2 強化學習的環境1.3 強化學習的目標1.4 強化學習的數據 第2章 多臂老虎機問題(MAB問題)2.1 問題描述2.1.1 問題定義2.1.2 形式化描述2.1.3 累積懊悔2.1.4 估計期望獎勵 2.2 解決方法…

CSS 【詳解】CSS 函數(含 calc,min,max,clamp,cubic-bezier,env,steps 等)

函數描述CSS 版本attr()返回選擇元素的屬性值。2calc()允許計算 CSS 的屬性值,比如動態計算長度值。3cubic-bezier()定義了一個貝塞爾曲線(Cubic Bezier)。3hsl()使用色相、飽和度、亮度來定義顏色。3hsla()使用色相、飽和度、亮度、透明度來定義顏色。3linear-grad…

Bert 變種, T5模型

NLP-預訓練模型-2019-NLU:DistilBERT【 BERT模型壓縮】【模型大小減小了40%(66M),推斷速度提升了60%,但性能只降低了約3%】_distillbert-CSDN博客 https://zhuanlan.zhihu.com/p/673535548 大語言模型系列-T5_t5模型…

【機器學習】必會數學知識:一文掌握數據科學核心數學知識點(上),值得收藏~

核心數學知識點 1、引言2、數據科學必會數學知識2.1 線性代數2.2 微積分2.3 概率論2.4 數理統計2.5 隨機過程2.6 數據分布2.7 貝葉斯統計2.8 線性回歸2.9 邏輯回歸2.10 矩陣分解2.11 主成分分析(PCA)2.12 奇異值分解(SVD) 3、總結…

【Git 入門】初始化配置與新建倉庫

文章目錄 前言配置git新建倉庫倉庫的概念創建倉庫命令總結前言 在現代軟件開發中,版本控制系統已經成為了不可或缺的工具。其中,Git 是最為廣泛使用的版本控制系統之一。Git 不僅可以幫助我們管理和跟蹤代碼的變化,還可以方便地與他人協作。本文將介紹 Git 的基礎知識,包括…