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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于Delta lake、Hudi格式的湖仓一体方案

發布時間:2024/9/3 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于Delta lake、Hudi格式的湖仓一体方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
簡介:Delta Lake 和 Hudi 是流行的開放格式的存儲層,為數據湖同時提供流式和批處理的操作,這允許我們在數據湖上直接運行 BI 等應用,讓數據分析師可以即時查詢新的實時數據,從而對您的業務產生即時的洞察。MaxCompute 在湖倉一體架構中,通過支持 Delta Lake 和 Hudi 在數據湖中提供數據倉庫性能。

本文作者 孟碩 阿里云智能 產品專家


直播視頻請點擊 直播觀看


一、最佳實踐背景

整個最佳實踐是基于MaxCompute的湖倉一體架構,模擬公司使用場景。比如公司 A 使用云上關系型數據庫 RDS 作為自己的業務庫,同時使用阿里云 EMR 系統做日志數據采集。將數據匯集到云上對象存儲 OSS 上,引入了數據湖常會用的存儲機制 Delta Lake 和 Hudi 為數據湖提供流處理、批處理能力。通過 MaxCompute 查詢到實時數據,即時洞察業務數據變化。 整個場景demo的架構是,云上EMR產生的實時變化的數據,包括在線數據庫RDS,通過數據入湖,然后實時的把數據變化體現在歸檔的OSS 上。同時MaxCompute跟其他引擎一起分析OSS上的數據。

湖倉一體架構:異構數據平臺融合

因為企業內部會有很多業務線,不同的部門,因為本身業務的需求及員工的技術棧幾個方面的原因,導致采用的數據架構不一樣,數據平臺也不一樣。技術架構有Hadoop技術體系,也有云上全托管架構,所以造成不同的部門對技術架構,使用的技術平臺不一樣,也造成了數據割裂的情況。湖倉一體就是幫助企業把異構數據平臺做一個打通,底層數據可以相互訪問,中間元數據層也可以做到互相透視,數據可以做到自由流動。數據湖部分不只是支持EMR,也支持ESC Hadoop和云下IDC Hadoop。其中MaxCompute數據倉庫也可以和數據湖EMR做一個數據打通,在用MaxCompute跟聯播數據源做一個聯播查詢,這樣可以把所有的數據在MaxCompute中做一個匯總。比如有三張表,在RDS和Hive中,同事MaxCompute里有大量事實表,如果需求是對這個三個表做一個聯合查詢,通過這個架構,可以很方便的做到這一點。

更快的業務洞察

  • DataWorks 自助開通湖倉一體:5分鐘打通異構數據平臺(Hadoop/ DLF+OSS )

更廣泛的生態對接

  • 支持對接阿里云云原生數據湖構建(DLF)
  • 支持查詢 DeltaLake、Hudi 格式
  • 支持對接更多外部聯邦數據源 Hologres (RDS、HBaseUpcoming! )


更高的性能

  • 智能 Cache 實現 OSS/ HDFS 數據訪問加速
  • 湖數據查詢加速


更好的綜合數據開發與治理

  • 跨引擎開發和調度
  • 統一湖/倉數據開發體驗
  • 統一湖/倉全局資產管理

湖倉一體的架構

首先看右側部分,是跟OSS和DLF側的打通,因為在OSS 上我們歸檔大量的半結構化和結構化的數據。有關系型數據庫,有nosql數據庫,可以通過DLF組件把OSS上的元數據爬取出來。相比于在MaxCompute上創建OSS外表訪問OSS數據,現在通過DLF統一自動識別OSS schema,MaxCompute直接映射這種方式,會更方便一些。一些數據的更新,schema的變更,DLF也可以自動識別到。同時DLF里面有用戶權限管理,后續會陸續上線。也就是說對于OSS對接的引擎,統一的數據訪問權限會收斂到DLF里。


左側是對Hadoop生態系統的打通,Hadoop包括阿里云半托管的EMR,開源的on ECS和IDC Hadoop,也包含主流的發行版CDH,也都可以做打通。下方再加上聯邦數據源。通過MaxCompute可以連接到各種各樣的云上數據源,通過上傳DataWorks做統一的開發和管理,以及數據治理。 這樣就有一個全域數據資產視圖,開發工作數據也能聯通,元數據也能投射到DataWorks之上。這就是整個湖倉一體的架構。

二、相關產品介紹

數據湖構建DataLakeForamtion

DLF主要是針對OSS數據,做一個托管,上層對接其他引擎如EMR、Databricks、Datalnsight、PAI、MaxCompute、Hologres。這些引擎可以共享一份元數據在DLF上。后續企業可以根據不同部門,不同業務場景隨意切換引擎。后期我們也會逐漸完善訪問控制,以及一些企業級能力,比如安全,包括數據分層等。

數據入湖

  • 支持多種數據源入湖,MySQL、SLS、OTS、Kafka等
  • 離線/實時入湖,支持Delta/Hudi等多種數據湖格式
  • 數據入湖預處理,支持字段mapping/轉換/自定義udf操作

元數據管理

  • 統一元數據管理,解決元數據多引擎一致性問題
  • 兼容開源生態API
  • 自動生成元數據,降低使用成本

訪問控制

  • 集中數據訪問權限控制,多引擎統一集中式賦權
  • 數據訪問日志審計,統計數據訪問信息


三、最佳實踐Demo

整體架構

企業構建和應用數據湖一般需要經歷數據入湖、數據湖存儲與管理、數據探索與分析等幾個過程。主要介紹基于阿里云 MaxCompute、數據湖構建(DLF)+ 對象存儲(OSS)構建一站式的數據入湖與分析實戰。其主要數據鏈路如下:

第一步:RDS數據準備

RDS 數據準備,在 RDS 中創建數據庫 academy_db。在賬戶中心創建能夠讀取 employees 數據庫的用戶賬號。通過DMS登錄數據庫,運行一下語句創建 anti_fraud_result 表,及插入少量數據。

CREATE TABLE `anti_fraud_result` ( `transactionid` varchar(32) NOT NULL, `uid` varchar(32) DEFAULT NULL, `card` varchar(32) DEFAULT NULL, `longitude` double(12,8) DEFAULT '12.00000000', `latitude` double(12,8) DEFAULT '12.00000000', PRIMARY KEY (`transactionid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ; INSERT INTO `anti_fraud_result` values ("12489571","82005","123123",3.14592040,101.12315432); INSERT INTO `anti_fraud_result` values ("12489572","82005","123123",3.14592040,101.12315432); INSERT INTO `anti_fraud_result` values ("12489573","82005","123123",3.14592040,101.12315432); INSERT INTO `anti_fraud_result` values ("12489574","82005","123123",3.14592040,101.12315432);

第二部:DLF數據入湖

  • 進入DLF控制臺界面:https://dlf.console.aliyun.com/cn-hangzhou/home,點擊菜單 數據入湖 -> 數據源管理-> 新建數據源。輸入數據庫相關連接信息

填寫 RDS 實例、登錄信息以及網絡和安全組信息后,點擊“連接測試”

  • 在 OSS 中新建 Bucket 和目錄,如 bucket: rtcompute,目錄:oss://rtcompute/csvfile/
  • 在 DLF 控制臺界面點擊左側菜單“元數據管理”->“元數據庫”,點擊“新建元數據庫”。填寫名稱 covid-19,新建目錄并選擇。

  • 創建入湖任務:

a. DLF 控制臺中點擊菜單“數據入湖”->“入戶任務管理”,點擊“新建入湖任務” -> 選擇“關系數據庫實時入湖”,按照下圖的信息填寫數據源、目標數據湖、任務配置等信息。并保存。

如果是 Hudi 格式,在“存儲格式”中可以選擇 Hudi:

b. 下一步輸入任務實例名稱,RAM角色以及最大資源使用量,點擊下一步確認信息

c. 在 DLF 控制臺“入戶任務管理” 界面中,找到剛創建的入湖任務列表,點擊“運行”啟動入湖作業;該數據入湖任務,屬于全量+增量入湖,大約3至5分鐘后,全量數據會完成導入,隨后自動進入實時監聽狀態。如果有數據更新,則會自動更新至 Delta Lake 或 Hudi 數據格式中。

第三步:MaxCompute中查詢數據

開通 DataWorks 與 MaxCompute (快速啟動請參考 文檔),并進入 DataWorks 臨時查詢界面(請參考文檔)

  • 創建 MaxCompute 外部 Project 映射 DLF 元數據:
create externalproject -source dlf -name ext_dlf_delta -ref ms_proj1 -comment "DLF" -region "cn-shanghai" -db covid_19 -endpoint "dlf-share.cn-shanghai.aliyuncs.com" -ossEndpoint "oss-cn-shanghai-internal.aliyuncs.com"; -- 顯示映射表信息 show tables in ext_dlf_delta;

  • 查詢數據:
set odps.sql.hive.compatible=true; set odps.sql.split.hive.bridge=true; select * from ext_dlf_delta.sh_rds;

第四部:RDS中新增數據

INSERT INTO `anti_fraud_result` values ("12489575","82005","123123",3.14592040,101.12315432); INSERT INTO `anti_fraud_result` values ("12489576","82005","123123",3.14592040,101.12315432); INSERT INTO `anti_fraud_result` values ("12489577","82005","123123",3.14592040,101.12315432); INSERT INTO `anti_fraud_result` values ("12489578","82005","123123",3.14592040,101.12315432); INSERT INTO `anti_fraud_result` values ("12489579","82005","123123",3.14592040,101.12315432);

MaxCompute中校驗數據

set odps.sql.hive.compatible=true; set odps.sql.split.hive.bridge=true; select * from ext_dlf_delta.sh_rds;

在1分鐘之內,在 MaxCompute 中查看數據已更新:

原文鏈接:https://developer.aliyun.com/article/792312?

版權聲明:本文內容由阿里云實名注冊用戶自發貢獻,版權歸原作者所有,阿里云開發者社區不擁有其著作權,亦不承擔相應法律責任。具體規則請查看《阿里云開發者社區用戶服務協議》和《阿里云開發者社區知識產權保護指引》。如果您發現本社區中有涉嫌抄襲的內容,填寫侵權投訴表單進行舉報,一經查實,本社區將立刻刪除涉嫌侵權內容。

總結

以上是生活随笔為你收集整理的基于Delta lake、Hudi格式的湖仓一体方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。