欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Apache Iceberg 底層數(shù)據(jù)查詢原理解析

 更新時(shí)間:2024年09月27日 16:11:01   作者:喻師傅  
Apache Iceberg是一個開源表格格式,用于大型分析數(shù)據(jù)集,本文主要介紹了如何通過快照、Manifest文件和元數(shù)據(jù)文件查詢Iceberg表的數(shù)據(jù),通過解析元數(shù)據(jù)文件獲取當(dāng)前表的快照ID,進(jìn)而讀取對應(yīng)的Avro文件和Manifest文件中的Parquet數(shù)據(jù)文件,感興趣的朋友一起看看吧

Apache Iceberg 概述-鏈接

Apache Iceberg 底層數(shù)據(jù)存儲

Iceberg 數(shù)據(jù)組織圖(HDFS): 5個SnapShot對應(yīng)5個manifest list清單列表。

1.查詢最新快照數(shù)據(jù)

獲取最新元數(shù)據(jù)
獲取 Iceberg 表的最新元數(shù)據(jù)文件,eg:00000-ec504.metadata.json。

解析元數(shù)據(jù)
從元數(shù)據(jù)文件中提取以下信息:

  • 當(dāng)前表的快照 ID:949358624197301886
  • 所有快照信息:在 JSON 中的 snapshots 數(shù)組。

獲取快照文件信息
根據(jù)快照 ID,找到對應(yīng)的 Avro 文件信息,eg:snap--32800.avro。

在該快照文件中,提取 Manifest File清單文件信息:

  • *32800-m0.avro
  • *2abba-m0.avro
  • *d33de-m0.avro
  • *748bf-m0.avro
  • *b946e-m0.avro

讀取最新數(shù)據(jù)
讀取以上 Manifest File清單文件中描述的 Parquet 數(shù)據(jù)文件(Data files)。

分析 Snap 文件
snap--32800.avro 文件中,可以找到以下屬性:

  • deleted data files count
  • added data files count
  • existing data files count

判斷數(shù)據(jù)文件狀態(tài)
Iceberg 根據(jù) deleted data files count 判斷是否存在被刪除的數(shù)據(jù):

如果該值大于 0,表示對應(yīng)的 Manifest 文件中有已刪除的數(shù)據(jù)。讀取數(shù)據(jù)時(shí),無需讀取這些被刪除的文件。

Manifest 清單文件分析
根據(jù) Manifest 清單文件,找到對應(yīng)的 Parquet 文件存儲位置。
每個 Manifest 文件中有 status 屬性:

1:代表對應(yīng)的 Parquet 文件為新增文件,需要讀取。

2:代表 Parquet 文件被刪除。

2.查詢指定快照(歷史快照)數(shù)據(jù)

Apache Iceberg 支持查詢歷史上任何時(shí)刻的快照。

要查詢特定快照,需要指定 snapshot-id 屬性,可以通過 Spark 或 Flink 實(shí)現(xiàn)。

在 Spark 中查詢指定快照的數(shù)據(jù):

spark.read
  .option("snapshot-id", 6155488348798912701L)
  .format("iceberg")
  .load("path")

查詢某個快照數(shù)據(jù)的原理:

指定快照 ID
在讀取數(shù)據(jù)時(shí),通過 snapshot-id 指定要查詢的快照。

查找快照信息
Iceberg 會根據(jù)指定的快照 ID 檢索相關(guān)的元數(shù)據(jù)(如下metadata里面的snapshots數(shù)組),包括快照中包含的數(shù)據(jù)文件和 Manifest 文件。

3.根據(jù)時(shí)間戳查詢某個快照數(shù)據(jù)

Apache Iceberg 支持通過 as-of-timestamp 參數(shù)讀取特定時(shí)間戳的快照數(shù)據(jù),通常也是通過 Spark 或 Flink 實(shí)現(xiàn)。

在 Spark 中根據(jù)時(shí)間戳查詢數(shù)據(jù):

spark.read
  .option("as-of-timestamp", "時(shí)間戳")
  .format("iceberg")
  .load("path")

指定時(shí)間戳
使用 as-of-timestamp 指定要查詢的時(shí)間點(diǎn)。

查找快照信息
Iceberg 將查找與時(shí)間戳對應(yīng)的快照,利用 *.metadata.json 文件中的信息。

屬性解析
在元數(shù)據(jù)文件中,除了 current-snapshot-idsnapshots 屬性外,還有一個 snapshot-log 屬性,該屬性記錄了快照的歷史信息。

到此這篇關(guān)于Apache Iceberg - 底層數(shù)據(jù)查詢原理的文章就介紹到這了,更多相關(guān)Apache Iceberg原理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Linux配置和使用i3窗口管理器的教程

    Linux配置和使用i3窗口管理器的教程

    今天小編就為大家分享一篇關(guān)于Linux配置和使用i3窗口管理器的教程,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • 詳解Linux下掛載新硬盤方法

    詳解Linux下掛載新硬盤方法

    這篇文章主要介紹了詳解Linux下掛載新硬盤方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • 你需要知道的16個Linux服務(wù)器監(jiān)控命令

    你需要知道的16個Linux服務(wù)器監(jiān)控命令

    如果你想知道你的服務(wù)器正在做干什么,你就需要了解一些基本的命令,一旦你精通了這些命令,那你就是一個 專業(yè)的 Linux 系統(tǒng)管理員
    2012-03-03
  • Linux cut 命令詳解

    Linux cut 命令詳解

    我們可以使用 cut 命令從一行字符串中于以字節(jié),字符,字段(分隔符)等單位截取一部分內(nèi)容出來。這篇文章主要介紹了Linux cut 命令的相關(guān)知識,需要的朋友可以參考下
    2020-07-07
  • linux命令實(shí)現(xiàn)音頻格式轉(zhuǎn)換和拼接的方法

    linux命令實(shí)現(xiàn)音頻格式轉(zhuǎn)換和拼接的方法

    今天小編就為大家分享一篇linux命令實(shí)現(xiàn)音頻格式轉(zhuǎn)換和拼接的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • linux跨服務(wù)器復(fù)制文件方式(scp含腳本批量復(fù)制)

    linux跨服務(wù)器復(fù)制文件方式(scp含腳本批量復(fù)制)

    這篇文章主要介紹了linux跨服務(wù)器復(fù)制文件方式(scp含腳本批量復(fù)制),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • linux壓縮解壓命令使用方式(無廢話版)

    linux壓縮解壓命令使用方式(無廢話版)

    本文介紹了gzip、bzip2、tar和zip四種常用的文件壓縮和打包工具的使用方法,包括它們的功能、壓縮比率、使用場景以及基本命令示例
    2024-11-11
  • 詳解Linux LVM邏輯卷配置過程(創(chuàng)建,增加,減少,刪除,卸載)

    詳解Linux LVM邏輯卷配置過程(創(chuàng)建,增加,減少,刪除,卸載)

    這篇文章主要介紹了詳解Linux LVM邏輯卷配置過程(創(chuàng)建,增加,減少,刪除,卸載),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Linux命令unzip詳解

    Linux命令unzip詳解

    這篇文章介紹了Linux命令unzip,Linux unzip命令用于解壓縮zip文件,文中詳細(xì)列出了unzip命令選項(xiàng)和選項(xiàng)描述。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • Linux命令之firewalld的用法

    Linux命令之firewalld的用法

    這篇文章主要介紹了Linux命令之firewalld的用法,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04

最新評論