日日碰狠狠躁久久躁96avv-97久久超碰国产精品最新-婷婷丁香五月天在线播放,狠狠色噜噜色狠狠狠综合久久 ,爱做久久久久久,高h喷水荡肉爽文np肉色学校

睿治

智能數(shù)據(jù)治理平臺(tái)

睿治作為國(guó)內(nèi)功能最全的數(shù)據(jù)治理產(chǎn)品之一,入選IDC企業(yè)數(shù)據(jù)治理實(shí)施部署指南。同時(shí),在IDC發(fā)布的《中國(guó)數(shù)據(jù)治理市場(chǎng)份額》報(bào)告中,連續(xù)四年蟬聯(lián)數(shù)據(jù)治理解決方案市場(chǎng)份額第一。

胡爭(zhēng):如何基于Flink和Iceberg構(gòu)建云原生數(shù)據(jù)湖?

時(shí)間:2022-03-01來(lái)源:Chowhound瀏覽數(shù):1001

導(dǎo)讀:今天的分享主要介紹阿里云云原生數(shù)據(jù)湖Iceberg產(chǎn)品實(shí)現(xiàn)方案和對(duì)數(shù)據(jù)湖技術(shù)的一些思考。今天的分享圍繞下幾點(diǎn)展開(kāi):

數(shù)據(jù)湖背景介紹

上云面臨的挑戰(zhàn)

Iceberg解決方案

總結(jié)

01、數(shù)據(jù)湖背景介紹

數(shù)據(jù)湖和數(shù)據(jù)庫(kù)、數(shù)據(jù)倉(cāng)庫(kù)的區(qū)別在哪里?這些系統(tǒng)的特點(diǎn)分別是什么?

常用的數(shù)據(jù)庫(kù)如MySQL、HBase、Redis和Neo4j圖數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)的特點(diǎn)是QPS吞吐高,單機(jī)QPS幾千到上萬(wàn)。請(qǐng)求延遲低,一般是毫秒級(jí)延遲,單次請(qǐng)求數(shù)據(jù)集比較小。OLTP數(shù)據(jù)庫(kù)在大數(shù)據(jù)集的掃描和聚合性能表現(xiàn)不如OLAP數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)對(duì)宕機(jī)的容忍度低,一般如果MySQL或Redis服務(wù)出現(xiàn)異常,業(yè)務(wù)方會(huì)第一時(shí)間找到基礎(chǔ)服務(wù)測(cè)催促恢復(fù)服務(wù),需要在分鐘級(jí)時(shí)間段內(nèi)恢復(fù)服務(wù)。

數(shù)據(jù)庫(kù)使用B-Tree、LSMTree等索引,目的是優(yōu)化請(qǐng)求延遲,其存儲(chǔ)成本較高。數(shù)據(jù)類型方面的話,交易數(shù)據(jù)、在線的數(shù)據(jù)偏多。數(shù)據(jù)庫(kù)的計(jì)算模型相對(duì)簡(jiǎn)單、固定,MySQL是SQL模型,Redis、HBase等KV數(shù)據(jù)庫(kù)支持點(diǎn)查,圖數(shù)據(jù)庫(kù)使用圖的方式查詢數(shù)據(jù)庫(kù)。

數(shù)據(jù)倉(cāng)庫(kù)領(lǐng)域內(nèi)成熟的產(chǎn)品如Hive、ClickHouse、Snowflake。Hive常用于離線數(shù)倉(cāng),ClickHouse常用于秒級(jí)和分鐘級(jí)別的純實(shí)時(shí)數(shù)據(jù)的存儲(chǔ),Snowflake是云上數(shù)據(jù)倉(cāng)庫(kù)。數(shù)據(jù)倉(cāng)庫(kù)單次查詢的數(shù)據(jù)集大,單次請(qǐng)求響應(yīng)延遲一般在秒級(jí)、分鐘級(jí)甚至小時(shí)級(jí)。數(shù)據(jù)倉(cāng)庫(kù)對(duì)可用性的容忍程度稍高一些,例如當(dāng)數(shù)倉(cāng)服務(wù)發(fā)生故障時(shí),可在數(shù)倉(cāng)服務(wù)恢復(fù)后,重啟數(shù)倉(cāng)的離線作業(yè)繼續(xù)執(zhí)行計(jì)算任務(wù)。數(shù)倉(cāng)存儲(chǔ)的數(shù)據(jù)量大,存儲(chǔ)成本高,ClickHouse會(huì)建立更復(fù)雜的索引進(jìn)行查詢加速、優(yōu)化;存儲(chǔ)的數(shù)據(jù)類型也會(huì)是經(jīng)過(guò)數(shù)倉(cāng)加工后的數(shù)據(jù)類型。數(shù)倉(cāng)的計(jì)算場(chǎng)景比較固定,以SQL查詢?yōu)橹鳎瑢?duì)于圖、機(jī)器學(xué)習(xí)等計(jì)算,還需要把數(shù)倉(cāng)中存儲(chǔ)的數(shù)據(jù)導(dǎo)出到對(duì)應(yīng)的數(shù)據(jù)庫(kù)中進(jìn)行進(jìn)一步分析。

數(shù)據(jù)湖常見(jiàn)的是Delta Lake、Iceberg、Hudi。數(shù)據(jù)湖的一些場(chǎng)景和特性與數(shù)據(jù)倉(cāng)庫(kù)類似,但數(shù)據(jù)湖直接構(gòu)建在列存文件之上,省去了為數(shù)據(jù)建立復(fù)雜索引的操作,存儲(chǔ)成本更低。數(shù)據(jù)湖存儲(chǔ)的數(shù)據(jù)一般是原始數(shù)據(jù)集。數(shù)據(jù)湖的計(jì)算模式比數(shù)據(jù)倉(cāng)庫(kù)更豐富,它規(guī)定了入湖的數(shù)據(jù)格式,對(duì)上層計(jì)算模型沒(méi)有綁定,SQL、圖、機(jī)器學(xué)習(xí)訓(xùn)練都可以支持。數(shù)據(jù)湖定義了數(shù)據(jù)格式,上層可以選擇任意的模式進(jìn)行數(shù)據(jù)計(jì)算。

常見(jiàn)的數(shù)據(jù)湖架構(gòu)如下圖所示,上層可以是Spark、Flink、Hive,甚至是機(jī)器學(xué)習(xí)計(jì)算引擎,第二層是數(shù)據(jù)湖對(duì)Table Format的定義,其下層是存儲(chǔ)系統(tǒng)。存儲(chǔ)系統(tǒng)分為兩部分,一部分是數(shù)據(jù)文件實(shí)際存儲(chǔ)的位置,可以是對(duì)象存儲(chǔ)、HDFS等;另一部分是數(shù)據(jù)緩存,作用是加速數(shù)據(jù)訪問(wèn)。在存儲(chǔ)計(jì)算分離的場(chǎng)景下每一次數(shù)據(jù)訪問(wèn)都需要通過(guò)網(wǎng)絡(luò)做數(shù)據(jù)查詢,太多數(shù)據(jù)網(wǎng)絡(luò)數(shù)據(jù)查詢會(huì)影響整體系統(tǒng)性能。如果對(duì)最近訪問(wèn)的熱點(diǎn)數(shù)據(jù)做本地緩存,則可以大大加速查詢性能。

02、上云面臨的挑戰(zhàn)

1. 為何上云?

有一些用戶使用了Hadoop和HDFS,在傳統(tǒng)的環(huán)境下已經(jīng)可以做到很流暢地?cái)U(kuò)容,那么云可以為這類用戶帶來(lái)什么?

云提供了彈性。在非云環(huán)境中部署的HDFS,遇到容量不夠的問(wèn)題時(shí)擴(kuò)容操作復(fù)雜、時(shí)間長(zhǎng),對(duì)突發(fā)的流量高峰響應(yīng)不及時(shí)、擴(kuò)容后流量高峰已過(guò)資源被浪費(fèi)。云上的對(duì)象存儲(chǔ)可以認(rèn)為存儲(chǔ)容量是無(wú)限大的,但HDFS需要用戶時(shí)刻關(guān)心HDFS存儲(chǔ)容量是否已經(jīng)用完、是否需要進(jìn)行存儲(chǔ)擴(kuò)容操作。

OSS和S3的存儲(chǔ)成本比HDFS低很多,這是由于云廠商的存儲(chǔ)做了EC優(yōu)化、云存儲(chǔ)有硬件加速和協(xié)議棧優(yōu)化等。云廠商的規(guī)模效應(yīng)讓所有客戶都可以享受到云平臺(tái)對(duì)存儲(chǔ)組件優(yōu)化帶來(lái)的紅利,云廠商對(duì)用戶需求也能夠做到專業(yè)且及時(shí)的響應(yīng)。

使用云服務(wù),不再需要自己維護(hù)基礎(chǔ)組建,使用云廠商提供的服務(wù)減少了用戶自己維護(hù)基礎(chǔ)存儲(chǔ)組件的麻煩,能夠更專注地做業(yè)務(wù)。

2. 以Hive為例,數(shù)倉(cāng)上云

Netflix的所有基礎(chǔ)設(shè)施都是基于AWS的云服務(wù),做過(guò)Hive上云的嘗試。在Hive上云的過(guò)程中發(fā)現(xiàn)了一些問(wèn)題:

數(shù)據(jù)變更和回溯困難:由于Hive系統(tǒng)設(shè)計(jì)問(wèn)題,很難做到ACID語(yǔ)義的保證,當(dāng)數(shù)據(jù)有變更時(shí)很難做到讀寫(xiě)影響相互隔離,如數(shù)據(jù)改動(dòng)會(huì)影響分析任務(wù)。Hive也無(wú)法解決多個(gè)數(shù)據(jù)改動(dòng)者同時(shí)寫(xiě)入造成的數(shù)據(jù)沖突。Hive無(wú)法有效回溯歷史版本。

存儲(chǔ)替換HDFS為S3困難:Hive數(shù)據(jù)訪問(wèn)接口直接依賴HDFS API。S3在文件操作的語(yǔ)義上支持并不完善,Hive使用rename完成原子性寫(xiě)文件的操作,這在S3等對(duì)象存儲(chǔ)上無(wú)法實(shí)現(xiàn)相同的語(yǔ)義。Hive大量依賴文件目錄list接口,而對(duì)象存儲(chǔ)的文件list操作效率低。

太多細(xì)節(jié)問(wèn)題:Schema變更時(shí),不同文件格式行為不一致。不同 FileFormat 甚至連數(shù)據(jù)類型的支持都不一致,如Timestamp在不同數(shù)據(jù)格式上的精度不同,需要在開(kāi)發(fā)過(guò)程中時(shí)刻關(guān)心數(shù)據(jù)精度,對(duì)業(yè)務(wù)開(kāi)發(fā)造成了很大負(fù)擔(dān)。Hive Metastore僅維護(hù)partition級(jí)別的統(tǒng)計(jì)信息,在擴(kuò)容metastore時(shí)甚至需要搭建分布式MySQL集群,維護(hù)困難、難以擴(kuò)展。非partition字段不能做partition prune,對(duì)開(kāi)發(fā)人員不友好。

3. 數(shù)據(jù)湖上云的挑戰(zhàn)

統(tǒng)一的元數(shù)據(jù)中心:數(shù)據(jù)湖需要對(duì)數(shù)據(jù)做標(biāo)準(zhǔn)化的定義,數(shù)據(jù)源數(shù)量多的情況下如何管理來(lái)自異構(gòu)存儲(chǔ)的數(shù)據(jù)源是一個(gè)大問(wèn)題。另一個(gè)問(wèn)題是如何讓數(shù)據(jù)湖與其他上層系統(tǒng)無(wú)縫對(duì)接,能讓閉源和開(kāi)源的計(jì)算服務(wù)訪問(wèn)到數(shù)據(jù)。在數(shù)據(jù)源多的情況下元數(shù)據(jù)信息多,如何保障元數(shù)據(jù)中心服務(wù)的可擴(kuò)展性也是需要面對(duì)的問(wèn)題。

多源實(shí)時(shí)數(shù)據(jù)入湖方案:數(shù)據(jù)入湖直接把Kafka的數(shù)據(jù)導(dǎo)入就好了,考慮多源實(shí)時(shí)入湖有意義嗎?為不同的客戶接入數(shù)據(jù)時(shí)數(shù)據(jù)入湖有很多需要考慮的細(xì)節(jié)。數(shù)據(jù)入湖需要隔離寫(xiě)入對(duì)分析的影響,例如需要考慮增加字段后,數(shù)據(jù)流如何不斷開(kāi)、分析作業(yè)能不崩潰。如何保證穩(wěn)定可靠的端到端數(shù)據(jù)變更。數(shù)據(jù)實(shí)時(shí)入湖對(duì)系統(tǒng)的壓力,如元數(shù)據(jù)激增、數(shù)據(jù)文件數(shù)量增長(zhǎng),如何保障數(shù)據(jù)分析性能。數(shù)據(jù)實(shí)時(shí)入湖和分析CDC數(shù)據(jù)如何做。

企業(yè)級(jí)的數(shù)據(jù)安全保證:私有化的大數(shù)據(jù)系統(tǒng)對(duì)數(shù)據(jù)加密和權(quán)限隔離天然地具有數(shù)據(jù)隔離的特點(diǎn),但作為云上的數(shù)據(jù)湖服務(wù)提供商,就必須要提供嚴(yán)格的數(shù)據(jù)正確性、端到端數(shù)據(jù)加密、租戶之間的權(quán)限隔離。例如用戶向Iceberg內(nèi)寫(xiě)數(shù)據(jù),其他用戶是否可以通過(guò)S3拿到數(shù)據(jù)?數(shù)據(jù)的安全性在公有云服務(wù)上是必須要保障的。

03、Iceberg解決方案

接下來(lái)我們?cè)敿?xì)介紹阿里云的Iceberg云原生數(shù)據(jù)湖解決方案。

1. Apache Iceberg核心特性

Iceberg是向通用化的方向設(shè)計(jì),既不會(huì)特別面向某個(gè)存儲(chǔ)設(shè)計(jì)、也不會(huì)特別面向哪個(gè)計(jì)算引擎設(shè)計(jì),有利于設(shè)立Table Format的標(biāo)準(zhǔn)。

2. Apache Iceberg存儲(chǔ)結(jié)構(gòu)

Iceberg的data和metadata都是存儲(chǔ)在文件系統(tǒng)中的。

3. Apache Iceberg Snapshot視圖

從存儲(chǔ)視角上看Iceberg分為三層。最底層是具體的文件,中間是每次transaction提交時(shí)生成的manifest對(duì)象,最上層是快照??煺罩傅氖敲總€(gè)時(shí)間點(diǎn)看到的整個(gè)表全局?jǐn)?shù)據(jù)。下面幾張圖有助于快速理解數(shù)據(jù)存儲(chǔ)和快照:

第一次Transaction時(shí)候?qū)懥岁幱安糠值奈募x取也是讀取陰影部分的數(shù)據(jù)。

第二次Transaction寫(xiě)入數(shù)據(jù)后,讀到的數(shù)據(jù)是新的陰影部分?jǐn)?shù)據(jù)。

第三次Transaction時(shí)候讀取的是下圖的陰影數(shù)據(jù)。

第四次Transaction時(shí)讀取的是下圖的陰影數(shù)據(jù)。

Iceberg寫(xiě)入的流程在Table Format的設(shè)計(jì)上考慮了流和批的兩種場(chǎng)景。Iceberg把流和批的場(chǎng)景進(jìn)行了融合,可以高效地做批量讀取、流式增量讀取、歷史版本回溯,能做到較好的近實(shí)時(shí)處理。

4. 選擇Apache Iceberg的公司數(shù)量眾多

Netflix、阿里云、網(wǎng)易等公司都在不同場(chǎng)合分享過(guò)Iceberg的使用。

5. 阿里云如何解決Iceberg數(shù)據(jù)庫(kù)上云的挑戰(zhàn)?

在阿里云的Iceberg數(shù)據(jù)湖產(chǎn)品中,Iceberg作為Table Fomat位于一個(gè)中間核心位置,數(shù)據(jù)通過(guò)Flink寫(xiě)入阿里云OSS。數(shù)據(jù)湖的訪問(wèn)分為兩部分,一部分是“入湖”,是不同數(shù)據(jù)源寫(xiě)入數(shù)據(jù)到數(shù)據(jù)湖中;另一部分是“出湖”,使用流分析、批分析甚至機(jī)器學(xué)習(xí)的方式分析數(shù)據(jù),此時(shí)需要根據(jù)業(yè)務(wù)場(chǎng)景選擇計(jì)算框架,如Hive、Presto、Spark等。

(1) 統(tǒng)一的元數(shù)據(jù)中心——DLF

元數(shù)據(jù)分為兩部分,包括Database、Table和Table到location的映射關(guān)系;另一部分包含了Table內(nèi)的數(shù)據(jù)的信息,包括Table的Schema、partition、partition內(nèi)文件分布和文件內(nèi)的Schema信息。對(duì)于云原生數(shù)據(jù)湖架構(gòu),Table以上的元數(shù)據(jù)由DLF Catalog管理,該服務(wù)對(duì)的外名稱為阿里云數(shù)據(jù)湖構(gòu)建(Data Lake Formation,DLF)產(chǎn)品。Iceberg對(duì)Table一下的信息做了很好的抽象,管理元數(shù)據(jù)方便,因此Table以下的元數(shù)據(jù)由Iceberg進(jìn)行管理。

DLF做了統(tǒng)一的元數(shù)據(jù)管理,只要入湖,都可以在DLF中找到數(shù)據(jù)的表名、歸屬的Database和Catalog。有統(tǒng)一的元數(shù)據(jù)視圖后,數(shù)據(jù)不會(huì)特別混亂。元數(shù)據(jù)還可以用來(lái)追蹤數(shù)據(jù)的血緣關(guān)系,一份數(shù)據(jù)從A轉(zhuǎn)換到B后各數(shù)據(jù)之間的依賴關(guān)系可以通過(guò)元數(shù)據(jù)管理工具做到數(shù)據(jù)血緣關(guān)系的追蹤。

數(shù)據(jù)湖會(huì)和上游的計(jì)算框架、模型做對(duì)接,對(duì)接的入口就是DLF。例如Spark訪問(wèn)某一個(gè)表,表的Location對(duì)應(yīng)著文件系統(tǒng)上的位置,通過(guò)DLF可以拿到該位置。

關(guān)于權(quán)限和認(rèn)證問(wèn)題,由于數(shù)據(jù)湖是一個(gè)統(tǒng)一數(shù)據(jù)中心,公司內(nèi)部、不同組織的業(yè)務(wù)方做數(shù)據(jù)訪問(wèn)必須做數(shù)據(jù)隔離,否則機(jī)密數(shù)據(jù)可以被所有人訪問(wèn)會(huì)導(dǎo)致很多問(wèn)題。DFL作為數(shù)據(jù)的入口,也負(fù)責(zé)管理數(shù)據(jù)訪問(wèn)權(quán)限。

(2) 多源實(shí)時(shí)數(shù)據(jù)入湖方案

隔離寫(xiě)一半的數(shù)據(jù)對(duì)分析作業(yè)的影響

寫(xiě)入作業(yè)如何隔離和分析作業(yè)的影響?阿里云主推Flink配合Iceberg,隔離同時(shí)讀和寫(xiě)的影響。Flink可以很好地實(shí)現(xiàn)Exactly Once語(yǔ)義,在故障情況下也可以保障數(shù)據(jù)一致性的語(yǔ)義。Flink數(shù)據(jù)管道范圍內(nèi)可以保障數(shù)據(jù)不多一條、不少一條。Iceberg可以通過(guò)存儲(chǔ)的ACID特性隔離寫(xiě)入對(duì)數(shù)據(jù)分析作業(yè)的影響。當(dāng)不斷有數(shù)據(jù)寫(xiě)入數(shù)據(jù)湖時(shí),由于Iceberg的ACID特性,分析作業(yè)讀取數(shù)據(jù)湖的表時(shí)一直在讀Transaction內(nèi)的數(shù)據(jù),其他的寫(xiě)入任務(wù)不會(huì)影響讀取的數(shù)據(jù)。最終數(shù)據(jù)的計(jì)算結(jié)果是一致性的結(jié)果。

保證穩(wěn)定可靠的端到端數(shù)據(jù)變更

入湖容易遇到數(shù)據(jù)源、數(shù)據(jù)管道、數(shù)據(jù)湖之間的數(shù)據(jù)變更,最典型的場(chǎng)景是增加字段。如果要實(shí)現(xiàn)字段新增,舊的數(shù)據(jù)變更方案中,首先要在數(shù)據(jù)源中改掉字段;然后修改Flink任務(wù),使Flink可以識(shí)別該字段;最后在數(shù)據(jù)湖中把數(shù)據(jù)湖中所有的數(shù)據(jù)都加上該字段。這個(gè)流程冗長(zhǎng),成本和開(kāi)銷比較大,我們嘗試?yán)肍link配合Iceberg進(jìn)行優(yōu)化。

目前我們?cè)谕七M(jìn)的新方案是:Flink可以直接捕捉到上游DDL變更事件、轉(zhuǎn)發(fā)變更事件到下游,下游收到事件后直接應(yīng)用到數(shù)據(jù)湖。Iceberg支持Schema變更的能力,利用該功能可以瞬間完成Schema同步。用戶不再需要感知到端到端數(shù)據(jù)變更,數(shù)據(jù)入湖的鏈路已經(jīng)自動(dòng)化地處理了Schema變更的問(wèn)題。解放了管理數(shù)據(jù)湖入湖流程的人力。

實(shí)時(shí)數(shù)據(jù)入湖的副作用與應(yīng)對(duì)方法

當(dāng)遇到數(shù)據(jù)從小時(shí)級(jí)別延遲縮短到分鐘級(jí)的改造需求時(shí)候,需要對(duì)數(shù)據(jù)入湖鏈路做實(shí)時(shí)化改造。實(shí)時(shí)化改造會(huì)遇到多種問(wèn)題:數(shù)據(jù)要盡可能快地提交到數(shù)倉(cāng)/數(shù)據(jù)湖,如果利用Hive做數(shù)據(jù)存儲(chǔ),Hive的元數(shù)據(jù)會(huì)快速增長(zhǎng),小文件數(shù)量很多、查詢效率會(huì)變慢、元數(shù)據(jù)存儲(chǔ)介質(zhì)也需要進(jìn)行響應(yīng)改造和升級(jí)。

在阿里云的云原生數(shù)據(jù)湖方案中,Iceberg很好地解決了元數(shù)據(jù)中心化的問(wèn)題。Iceberg的Table Format把Table內(nèi)的元信息托管到文件系統(tǒng)中,因此元數(shù)據(jù)的擴(kuò)展性與文件系統(tǒng)的擴(kuò)展性近似。統(tǒng)計(jì)信息存儲(chǔ)到對(duì)象存儲(chǔ)中,非常方便地實(shí)現(xiàn)了可擴(kuò)展性。

隨著小文件增多,查詢效率變低,有三種實(shí)現(xiàn)解決該問(wèn)題:第一種方式是在Flink寫(xiě)入數(shù)據(jù)時(shí)按照數(shù)據(jù)湖設(shè)定的Bucket來(lái)Shuffle方式進(jìn)行寫(xiě)入,一個(gè)Bucket的數(shù)據(jù)只有一個(gè)并發(fā)寫(xiě)入,寫(xiě)入時(shí)已經(jīng)減小了小文件生成的概率。第二種方式是使用批處理任務(wù),定期批量檢查、合并小文件。第三種方式是自動(dòng)增量合并小文件。Flink流式增量合并適合處理小量的增量合并,大規(guī)模合并會(huì)影響流作業(yè)的穩(wěn)定性、對(duì)資源的開(kāi)銷比較大。流式入湖合并適合做小范圍的文件合并,可以以較低的成本實(shí)現(xiàn)較好的性能,全表級(jí)別的小文件合并需要交給批作業(yè),減小資源消耗。

實(shí)時(shí)入湖并處理CDC數(shù)據(jù)

當(dāng)前市面上能夠處理更改數(shù)據(jù)捕獲(Change Data Capture,CDC)的存儲(chǔ)不多、而且各有缺陷。

Flink是一個(gè)實(shí)時(shí)性很好的Exactly once的流式計(jì)算引擎,適合作為MySQL CDC與數(shù)據(jù)湖之間的管道。Iceberg能很好地在云上存儲(chǔ)和分析CDC數(shù)據(jù),利用開(kāi)源的解決方案就可以做到CDC鏈路串通。

首先定義MySQL源表,再在Iceberg里定義Sink表,中間使用Flink作業(yè)即可利用Insert into語(yǔ)句從Mysql源表導(dǎo)入數(shù)據(jù)到Iceberg。生產(chǎn)環(huán)境中使用該方案依然可能遇到小文件多的問(wèn)題,需要進(jìn)行批量compaction;但批量compaction操作可能和流式入湖的任務(wù)有沖突,對(duì)語(yǔ)義有一定影響。在Iceberg社區(qū)對(duì)這個(gè)問(wèn)題已經(jīng)進(jìn)行了很好的討論,后續(xù)阿里云會(huì)把與此相關(guān)的優(yōu)化工作推到社區(qū)。

(3) 企業(yè)級(jí)的數(shù)據(jù)安全保證

經(jīng)過(guò)上述的MySQL源、Flink數(shù)據(jù)管道,數(shù)據(jù)進(jìn)入數(shù)據(jù)湖,數(shù)據(jù)湖內(nèi)的數(shù)據(jù)再提供給各個(gè)計(jì)算引擎,每個(gè)系統(tǒng)之間的串聯(lián)比較復(fù)雜。如果發(fā)現(xiàn)數(shù)據(jù)有問(wèn)題,最常出問(wèn)題的點(diǎn)是數(shù)據(jù)入湖這一過(guò)程。數(shù)據(jù)一旦入湖,基本不會(huì)再對(duì)數(shù)據(jù)有進(jìn)一步操作,因此核心要保障數(shù)據(jù)入湖的服務(wù)穩(wěn)定、準(zhǔn)確。

為了保障服務(wù)穩(wěn)定性、數(shù)據(jù)正確性,我們專門為數(shù)據(jù)入湖出湖的整套流程設(shè)計(jì)了一套測(cè)試框架,對(duì)數(shù)據(jù)做了自動(dòng)化的、嚴(yán)謹(jǐn)?shù)亩说蕉蓑?yàn)證。我們會(huì)人為地產(chǎn)生一些數(shù)據(jù),使用Flink入湖,再通過(guò)多計(jì)算引擎(Flink / Spark / Hive / Presto)對(duì)比驗(yàn)證數(shù)據(jù)的一致性;使用Flink入湖,多種批處理引擎驗(yàn)證源數(shù)據(jù)和計(jì)算引擎框架計(jì)算結(jié)果。測(cè)試框架已經(jīng)應(yīng)用到研發(fā)過(guò)程中,主要檢查數(shù)據(jù)從源端到入湖的正確性,保障項(xiàng)目迭代過(guò)程中軟件的準(zhǔn)確性。

我們?yōu)榱吮U袭惓G闆r下的數(shù)據(jù)準(zhǔn)確性,測(cè)試框架也會(huì)模擬一些異常情況,注入異常并檢查數(shù)據(jù)正確性。我們注入的異常包括:JobManager重啟或掛掉,一個(gè)TaskManager重啟或掛掉,多個(gè)TaskManager重啟或掛掉,無(wú)法正常訪問(wèn)HDFS / OSS服務(wù),無(wú)法正常訪問(wèn)DLF / Hive-metastore服務(wù),機(jī)器負(fù)載高、某個(gè)CPU利用率長(zhǎng)期100%、某塊磁盤訪問(wèn)慢、網(wǎng)絡(luò)不可訪問(wèn)或丟包嚴(yán)重等錯(cuò)誤注入等。

04、總結(jié)

阿里云Iceberg云原生數(shù)據(jù)湖方案核心優(yōu)勢(shì)有以下四點(diǎn):

1. 數(shù)據(jù)格式開(kāi)放

完全兼容Iceberg Table Format格式。Parquet、ORC、Avro格式也可以很平滑地遷移到Iceberg。如果歷史數(shù)據(jù)存儲(chǔ)在OSS、HDFS,不需要做數(shù)據(jù)文件級(jí)別拷貝,只需要利用一個(gè)Spark或Flink作業(yè),為存量數(shù)據(jù)parquet文件重新生成一份Iceberg元數(shù)據(jù)即可完成入湖。對(duì)parquet格式的存量數(shù)據(jù)用戶也非常友好。

2.計(jì)算多樣性

數(shù)據(jù)湖核心優(yōu)勢(shì)之一是能支持不同計(jì)算場(chǎng)景、滿足用戶的需求。計(jì)算多樣性對(duì)業(yè)務(wù)場(chǎng)景的迭代和研發(fā)很靈活。

3. 資源彈性化

相對(duì)于自己部署的軟件,云原生的彈性擴(kuò)縮容特性實(shí)現(xiàn)了用戶按需付費(fèi)。

4. 服務(wù)專業(yè)性

阿里云每個(gè)細(xì)分產(chǎn)品都有幾十到上百人的團(tuán)隊(duì)進(jìn)行支持,用戶可以享受到專業(yè)性很強(qiáng)的服務(wù)。

(部分內(nèi)容來(lái)源網(wǎng)絡(luò),如有侵權(quán)請(qǐng)聯(lián)系刪除)
立即申請(qǐng)數(shù)據(jù)分析/數(shù)據(jù)治理產(chǎn)品免費(fèi)試用 我要試用
customer

在線咨詢

在線咨詢

點(diǎn)擊進(jìn)入在線咨詢