最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Apache Hudi 在袋鼠云數(shù)據(jù)湖平臺的設(shè)計與實踐

2023-05-24 14:29 作者:袋鼠云  | 我要投稿

在大數(shù)據(jù)處理中,實時數(shù)據(jù)分析是一個重要的需求。隨著數(shù)據(jù)量的不斷增長,對于實時分析的挑戰(zhàn)也在不斷加大,傳統(tǒng)的批處理方式已經(jīng)不能滿足實時數(shù)據(jù)處理的需求,需要一種更加高效的技術(shù)來解決這個問題。Apache Hudi(Hadoop Upserts Deletes and Incremental Processing)就是這樣一種技術(shù),提供了高效的實時數(shù)據(jù)倉庫管理功能。

本文將介紹袋鼠云基于 Hudi 構(gòu)建數(shù)據(jù)湖的整體方案架構(gòu)及其在實時數(shù)據(jù)倉庫處理方面的特點,并且為大家展示一個使用 Apache Hudi 的簡單示例,便于新手上路。

Apache Hudi 介紹

Apache Hudi 是一個開源的數(shù)據(jù)湖存儲系統(tǒng),可以在 Hadoop 生態(tài)系統(tǒng)中提供實時數(shù)據(jù)倉庫處理功能。Hudi 最早由 Uber 開發(fā),后來成為 Apache 頂級項目。

Hudi 主要特性

· 支持快速插入和更新操作,以便在數(shù)據(jù)倉庫中實時處理數(shù)據(jù);

· 提供增量查詢功能,可有效提高數(shù)據(jù)分析效率;

· 支持時間點查詢,以便查看數(shù)據(jù)在某一時刻的狀態(tài);

· 與 Apache Spark、Hive 等大數(shù)據(jù)分析工具兼容。

Hudi 架構(gòu)

Apache Hudi 的架構(gòu)包括以下幾個主要組件:

· Hudi 數(shù)據(jù)存儲:Hudi 數(shù)據(jù)存儲是 Hudi 的核心組件,負責(zé)存儲數(shù)據(jù),數(shù)據(jù)存儲有兩種類型:Copy-On-Write(COW)和 Merge-On-Read(MOR);

· Copy-On-Write:COW 存儲類型會在對數(shù)據(jù)進行更新時,創(chuàng)建一個新的數(shù)據(jù)文件副本,將更新的數(shù)據(jù)寫入副本中,之后,新的數(shù)據(jù)文件副本會替換原始數(shù)據(jù)文件;

· Merge-On-Read:MOR 存儲類型會在查詢時,將更新的數(shù)據(jù)與原始數(shù)據(jù)進行合并,這種方式可以減少數(shù)據(jù)存儲的寫入延遲,但會增加查詢的計算量;

· Hudi 索引:Hudi 索引用于維護數(shù)據(jù)記錄的位置信息,索引有兩種類型:內(nèi)置索引(如 Bloom 過濾器)和外部索引(如 HBase 索引);

· Hudi 查詢引擎:Hudi 查詢引擎負責(zé)處理查詢請求,Hudi 支持多種查詢引擎,如 Spark SQL、Hive、Presto 等。

Hudi 的使用場景

Apache Hudi 可以幫助企業(yè)和組織實現(xiàn)實時數(shù)據(jù)處理和分析。實時數(shù)據(jù)處理需要快速地處理和查詢數(shù)據(jù),同時還需要保證數(shù)據(jù)的一致性和可靠性。

Apache Hudi 的增量數(shù)據(jù)處理、ACID 事務(wù)性保證、寫時合并等技術(shù)特性可以幫助企業(yè)更好地實現(xiàn)實時數(shù)據(jù)處理和分析,基于 Hudi 的特性可以在一定程度上在實時數(shù)倉的構(gòu)建過程中承擔(dān)上下游數(shù)據(jù)鏈路的對接(類似 Kafka 的角色)。既能實現(xiàn)增量的數(shù)據(jù)處理,也能為批流一體的處理提供存儲基礎(chǔ)。

Hudi 的優(yōu)勢和劣勢

● 優(yōu)勢

· 高效處理大規(guī)模數(shù)據(jù)集;

· 支持實時數(shù)據(jù)更新和查詢;

· 實現(xiàn)了增量寫入機制,提高了數(shù)據(jù)訪問效率;

· Hudi 可以與流處理管道集成;

· Hudi 提供了時間旅行功能,允許回溯數(shù)據(jù)的歷史版本。

● 劣勢

· 在讀寫數(shù)據(jù)時需要付出額外的代價;

· 操作比較復(fù)雜,需要使用專業(yè)的編程語言和工具。

Hudi 在袋鼠云數(shù)據(jù)湖平臺上的實踐

Hudi 在袋鼠云數(shù)據(jù)湖的技術(shù)架構(gòu)

Hudi 在袋鼠云的數(shù)據(jù)湖平臺上主要對數(shù)據(jù)湖管理提供助力:

· 元數(shù)據(jù)的接入,讓用戶可以快速的對表進行管理;

· 數(shù)據(jù)快速接入,包括對符合條件的原有表數(shù)據(jù)進行轉(zhuǎn)換,快速搭建數(shù)據(jù)湖能力;

· 湖表的管理,監(jiān)控小文件定期進行合并,提升表的查詢性能,內(nèi)在豐富的表操作功能,包括 time travel ,孤兒文件清理,過期快照清理等;

· 索引構(gòu)建,提供多種索引包括 bloom filter,zorder 等,提升計算引擎的查詢性能。

Hudi 使用示例

在介紹了 Hudi 的基本信息和袋鼠云數(shù)據(jù)湖平臺的結(jié)構(gòu)之后,我們來看一個使用示例,替換 Flink 在內(nèi)存中的 join 過程。

在 Flink 中對多流 join 往往是比較頭疼的場景,需要考慮 state ttl 時間設(shè)置,設(shè)置太小數(shù)據(jù)經(jīng)常關(guān)聯(lián)不上,設(shè)置太大內(nèi)存又需要很高才能保留,我們通過 Hudi 的方式來換個思路實現(xiàn)。

● 構(gòu)建 catalog

● 創(chuàng)建 hudi 表

● 更新 hudi 表的 flink_db.test_hudi_flink_join_2 的 id, name, age, dt 列

01 從 kafka 中讀取 topic1

02 從 kafka 中讀取 topic2

● 執(zhí)行插入邏輯1

● 通過 spark 查詢數(shù)據(jù)

20230323090605515 20230323090605515_1_186 45 1 c990a618-896c-4627-8243-baace65c7ad6-0_0-21-26_20230331101342388.parquet 45 xc 45 NULL 1

20230323090605515 20230323090605515_1_179 30 1 c990a618-896c-4627-8243-baace65c7ad6-0_0-21-26_20230331101342388.parquet 30 xc 30 NULL 1

● 執(zhí)行插入邏輯2

● 運行成功

運行成功后在 spark 中查詢對應(yīng)的表數(shù)據(jù):

20230323090605515 20230323090605515_1_186 45 1 c990a618-896c-4627-8243-baace65c7ad6-0_0-21-26_20230331101342388.parquet 45 xc 45 xc:address45 1

20230323090605515 20230323090605515_1_179 30 1 c990a618-896c-4627-8243-baace65c7ad6-0_0-21-26_20230331101342388.parquet 30 xc 30 xc:address30 1

可以發(fā)現(xiàn)在第二次數(shù)據(jù)運行之后,表數(shù)據(jù)的對應(yīng)字段 address 已經(jīng)更新,達到了類似在 Flink 中直接執(zhí)行 join 的效果。

《數(shù)據(jù)治理行業(yè)實踐白皮書》下載地址:https://fs80.cn/l134d5?

《數(shù)棧V6.0產(chǎn)品白皮書》下載地址:https://fs80.cn/cw0iw1

想了解或咨詢更多有關(guān)袋鼠云大數(shù)據(jù)產(chǎn)品、行業(yè)解決方案、客戶案例的朋友,瀏覽袋鼠云官網(wǎng):https://www.dtstack.com/?src=szbzhan

同時,歡迎對大數(shù)據(jù)開源項目有興趣的同學(xué)加入「袋鼠云開源框架釘釘技術(shù) qun」,交流最新開源技術(shù)信息,qun 號碼:30537511,項目地址:https://github.com/DTStack


Apache Hudi 在袋鼠云數(shù)據(jù)湖平臺的設(shè)計與實踐的評論 (共 條)

分享到微博請遵守國家法律
南宁市| 罗定市| 靖西县| 友谊县| 长海县| 新河县| 苏州市| 喀喇| 临桂县| 临西县| 广南县| 米脂县| 京山县| 青阳县| 南澳县| 神池县| 盐亭县| 丹东市| 嘉兴市| 息烽县| 乌兰察布市| 汤原县| 盐边县| 南皮县| 阳谷县| 陇西县| 泰宁县| 峨眉山市| 赤城县| 五莲县| 砚山县| 太原市| 桃源县| 镇安县| SHOW| 分宜县| 北流市| 甘德县| 阜新| 得荣县| 德江县|