日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Apache Hudi的写时复制和读时合并

發(fā)布時(shí)間:2023/11/27 生活经验 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Apache Hudi的写时复制和读时合并 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Apache Hudi

http://hudi.apache.org/

http://hudi.apache.org/docs/quick-start-guide.html

Hudi是什么

Hudi將流處理帶到大數(shù)據(jù),提供新數(shù)據(jù),同時(shí)比傳統(tǒng)批處理效率高一個(gè)數(shù)量級(jí)。

Hudi可以幫助你構(gòu)建高效的數(shù)據(jù)湖,解決一些最復(fù)雜的底層存儲(chǔ)管理問題,同時(shí)將數(shù)據(jù)更快地交給數(shù)據(jù)分析師,工程師和科學(xué)家。

Hudi不是什么

Hudi不是針對(duì)任何OLTP案例而設(shè)計(jì)的,在這些情況下,通常你使用的是現(xiàn)有的NoSQL / RDBMS數(shù)據(jù)存儲(chǔ)。Hudi無法替代你的內(nèi)存分析數(shù)據(jù)庫(至少現(xiàn)在還沒有!)。Hudi支持在幾分鐘內(nèi)實(shí)現(xiàn)近乎實(shí)時(shí)的攝取,從而權(quán)衡了延遲以進(jìn)行有效的批處理。

增量處理

增量處理僅是指以流處理方式編寫微型批處理程序。典型的批處理作業(yè)每隔幾個(gè)小時(shí)就會(huì)消費(fèi)所有輸入并重新計(jì)算所有輸出。典型的流處理作業(yè)會(huì)連續(xù)/每隔幾秒鐘消費(fèi)一些新的輸入并重新計(jì)算新的/更改以輸出。盡管以批處理方式重新計(jì)算所有輸出可能會(huì)更簡單,但這很浪費(fèi)并且耗費(fèi)昂貴的資源。Hudi具有以流方式編寫相同批處理管道的能力,每隔幾分鐘運(yùn)行一次。

雖然可將其稱為流處理,但我們更愿意稱其為增量處理,以區(qū)別于使用Apache Flink,Apache Apex或Apache Kafka Streams構(gòu)建的純流處理管道。

?

Hudi基于MVCC設(shè)計(jì)

將數(shù)據(jù)寫入parquet/基本文件以及包含對(duì)基本文件所做更改的日志文件的不同版本。

存儲(chǔ)類型和視圖

Hudi存儲(chǔ)類型定義了如何在DFS上對(duì)數(shù)據(jù)進(jìn)行索引和布局以及如何在這種組織之上實(shí)現(xiàn)上述原語和時(shí)間軸活動(dòng)(即如何寫入數(shù)據(jù))。
反過來,視圖定義了基礎(chǔ)數(shù)據(jù)如何暴露給查詢(即如何讀取數(shù)據(jù))。

存儲(chǔ)類型支持的視圖
寫時(shí)復(fù)制讀優(yōu)化 + 增量
讀時(shí)合并讀優(yōu)化 + 增量 + 近實(shí)時(shí)

?

兩種存儲(chǔ)類型

寫時(shí)復(fù)制(copy on write):僅使用列式文件(parquet)存儲(chǔ)數(shù)據(jù)。在寫入/更新數(shù)據(jù)時(shí),直接同步合并原文件,生成新版本的基文件(需要重寫整個(gè)列數(shù)據(jù)文件,即使只有一個(gè)字節(jié)的新數(shù)據(jù)被提交)。此存儲(chǔ)類型下,寫入數(shù)據(jù)非常昂貴,而讀取的成本沒有增加,所以適合頻繁讀的工作負(fù)載,因?yàn)閿?shù)據(jù)集的最新版本在列式文件中始終可用,以進(jìn)行高效的查詢。

讀時(shí)合并(merge on read):使用列式(parquet)與行式(avro)文件組合,進(jìn)行數(shù)據(jù)存儲(chǔ)。在更新記錄時(shí),更新到增量文件中(avro),然后進(jìn)行異步(或同步)的compaction,創(chuàng)建列式文件(parquet)的新版本。此存儲(chǔ)類型適合頻繁寫的工作負(fù)載,因?yàn)樾掠涗浭且詀ppending 的模式寫入增量文件中。但是在讀取數(shù)據(jù)集時(shí),需要將增量文件與舊文件進(jìn)行合并,生成列式文件。

?

存儲(chǔ)數(shù)據(jù)的視圖(查詢模式):

讀優(yōu)化視圖(Read Optimized view):直接query 基文件(數(shù)據(jù)集的最新快照),也就是列式文件(如parquet)。相較于非Hudi列式數(shù)據(jù)集,有相同的列式查詢性能

增量視圖(Incremental View):僅query新寫入數(shù)據(jù)集的文件,也就是指定一個(gè)commit/compaction,query此之后的新數(shù)據(jù)。

實(shí)時(shí)視圖(Real-time View):query最新基文件與增量文件。此視圖通過將最新的基文件(parquet)與增量文件(avro)進(jìn)行動(dòng)態(tài)合并,然后進(jìn)行query。可以提供近實(shí)時(shí)的數(shù)據(jù)(會(huì)有幾分鐘的延遲)

?

寫時(shí)復(fù)制存儲(chǔ)

以下內(nèi)容說明了將數(shù)據(jù)寫入寫時(shí)復(fù)制存儲(chǔ)并在其上運(yùn)行兩個(gè)查詢時(shí),它是如何工作的:

讀時(shí)合并存儲(chǔ)

以下內(nèi)容說明了存儲(chǔ)的工作方式,并顯示了對(duì)近實(shí)時(shí)表和讀優(yōu)化表的查詢:

?

參考:

https://www.cnblogs.com/apachehudi/p/12014919.html

https://www.cnblogs.com/zackstang/p/11912994.html

總結(jié)

以上是生活随笔為你收集整理的Apache Hudi的写时复制和读时合并的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。