自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

StarRocks 數(shù)據(jù)湖查詢和遷移實(shí)踐

大數(shù)據(jù) 數(shù)據(jù)湖
本次將從實(shí)戰(zhàn)的角度分享 StarRocks 數(shù)據(jù)湖查詢和遷移的能力與解決方案。早期都是離線數(shù)倉(cāng),為了應(yīng)對(duì)現(xiàn)在數(shù)據(jù)分析中越來(lái)越多的實(shí)時(shí)性場(chǎng)景,以及對(duì) ACID、事物性隔離越來(lái)越高的要求,數(shù)據(jù)湖技術(shù)應(yīng)運(yùn)而生。

一、StarRocks 和 Paimon 湖能力的介紹

1. 為什么需要數(shù)據(jù)湖架構(gòu)

圖片

為什么需要數(shù)據(jù)湖?與其它技術(shù)一樣,數(shù)據(jù)湖本身也是由需求而生的。早期都是離線數(shù)倉(cāng),為了應(yīng)對(duì)現(xiàn)在數(shù)據(jù)分析中越來(lái)越多的實(shí)時(shí)性場(chǎng)景,以及對(duì) ACID、事物性隔離越來(lái)越高的要求,數(shù)據(jù)湖技術(shù)應(yīng)運(yùn)而生。傳統(tǒng)的數(shù)據(jù)湖三劍客為 Iceberg、Hudi 和 Delta lake,從去年開(kāi)始,開(kāi)源的 Apache Paimon 這個(gè)正在蓬勃發(fā)展的數(shù)據(jù)湖格式,已成為一顆冉冉升起的新星。

數(shù)據(jù)湖架構(gòu)的主要優(yōu)點(diǎn)有三大方面:

  • 首先是湖倉(cāng)一體的管理能力。它具有完整的ACID 事務(wù)能力,Schema Evolution 以及擴(kuò)展性強(qiáng),且很適應(yīng)大規(guī)模數(shù)據(jù)的處理,同時(shí)它也有具有完整的版本管理以及 Time Travel。
  • 第二大優(yōu)點(diǎn)就是開(kāi)源開(kāi)放統(tǒng)一存儲(chǔ),不像一些閉源的軟件,格式都是其自己的,很容易 Lock in 到某些廠商去。在實(shí)際應(yīng)用中,Apache Paimon 作為一個(gè)開(kāi)源格式,與其它所有開(kāi)源格式一樣可以使用不同的底層存儲(chǔ),也可以適配不同的計(jì)算引擎,比如可以使用Flink 做流計(jì)算,Spark 做批計(jì)算,OLAP 做實(shí)時(shí)分析等等。
  • 第三大優(yōu)點(diǎn)就是成本和性能之間的平衡。如果在云上,可以構(gòu)建在低廉的對(duì)象存儲(chǔ)上,與流的結(jié)合還可以更好地提升時(shí)效性。另外,它還支持豐富的索引,從而提升查詢性能。

這些優(yōu)勢(shì)正是我們選擇數(shù)據(jù)湖架構(gòu)的理由。

2. Paimon 概述

圖片

Paimon 是一個(gè)新興的湖格式,它可以很好地結(jié)合 Flink 和 Spark 構(gòu)建實(shí)時(shí)數(shù)據(jù)湖,用于流式和批處理操作。起初它只是 Flink 內(nèi)置的 Table Store 的一個(gè)格式,之后經(jīng)過(guò)漫長(zhǎng)的發(fā)展,成為了一個(gè)獨(dú)立完整的項(xiàng)目,今年從 ASF 孵化出來(lái),成為一個(gè)正式的頂級(jí)項(xiàng)目。Paimon 可以完整地支持批處理和流處理,它創(chuàng)新性地將 LSM Tree 與湖格式相結(jié)合,具有更高效的實(shí)時(shí)更新能力。與其它湖格式相比,有著更優(yōu)的讀寫性能,以及更高的 compaction 效率。

3. Paimon 優(yōu)勢(shì)

圖片

Paimon 的優(yōu)勢(shì)主要在以下四大方面:

  • 第一是實(shí)時(shí)更新。它支持流式更新,最低 1 分鐘的時(shí)效性,而且很靈活,可以支持部分列更新以及聚合更新,同時(shí)它也可以產(chǎn)生變更日志,給下游進(jìn)行流讀。
  • 第二是流寫流讀。Paimon 就是從 Flink 的內(nèi)置格式中誕生的,所以它與 Flink 的配合非常好,支持 Flink 流讀流寫。現(xiàn)在與 Spark 的結(jié)合很成熟,是 Spark 最佳的批計(jì)算組合。
  • 第三是高性能查詢。支持高性能 OLAP、提供點(diǎn)查以及豐富的索引。完備的索引支持是 Paimon 社區(qū)正在大力發(fā)展的特性之一,如 bitmap、布隆過(guò)濾器等。
  • 第四是大規(guī)模離線處理能力。Paimon 支持傳統(tǒng)的超大規(guī)模的數(shù)據(jù)量,并對(duì) Append 表提供了完整支持。

4. StarRocks+Paimon 極速數(shù)據(jù)湖分析

圖片

StarRocks+Paimon 的最大優(yōu)勢(shì)是查詢快,可以用來(lái)替代傳統(tǒng)的 OLAP 分析方案。

例如使用 Paimon 為底座的數(shù)據(jù)湖,假設(shè)用 Presto、Trino 或者 Impala 去查的速度作為基準(zhǔn),不做任何其它更改,僅是將查詢引擎換成 StarRocks,就可以帶來(lái)三倍的性能提升。這主要是由于 StarRocks 有著非常優(yōu)秀的 CBO 優(yōu)化器,以及完整的向量化執(zhí)行引擎,并且在讀取數(shù)據(jù)湖進(jìn)行 IO 操作的時(shí)候,做了非常細(xì)粒度的管理,比如 IO 合并以及延遲物化技術(shù)等。

如果想要更大的性能提升,只需要開(kāi)啟 StarRocks 的本地緩存功能 Data Cache,BE 端配置一下本地緩存的磁盤路徑,就可以使用了。在啟動(dòng)緩存之后,可以得到 6 倍的性能提升。

利用 StarRocks 外表的物化視圖功能,還可以得到更快的查詢速度。使用該功能,StarRocks 會(huì)把湖上的數(shù)據(jù)轉(zhuǎn)換成自己的格式存起來(lái),當(dāng)成是自己的內(nèi)表進(jìn)行存儲(chǔ)、索引構(gòu)建,這樣就可以得到 10 倍的性能提升。

同時(shí),Paimon 物化視圖可以支持多種查詢特性,比如透明加速,即查詢表的時(shí)候,用戶可以不感知物化視圖的存在,而是將其當(dāng)成 StarRocks 的一個(gè)外表就可以了,SQL 里是 StarRocks 的外表,但 StarRocks 會(huì)將查詢自動(dòng)路由到物化視圖,用物化視圖去加速查詢并返回?cái)?shù)據(jù)。

Paimon 物化視圖還支持查詢改寫,物化視圖的構(gòu)建很多時(shí)候是與查詢 pattern 緊密相關(guān)的。例如,查詢 pattern 是三個(gè)表的 join,對(duì)這三個(gè)表做了物化視圖之后,又想查其中兩個(gè)表的 join 結(jié)構(gòu),StarRocks 的查詢改寫可以不需要再重復(fù)建兩個(gè)表的物化視圖,支持自動(dòng)把這兩個(gè)表的 join 改寫到原來(lái)基于三個(gè)表的物化視圖上,達(dá)到查詢加速度的目的。

物化視圖也支持嵌套分層,在一個(gè)物化視圖在上面再加一層物化視圖,也就是可以起到數(shù)據(jù)建模的作用。

Paimon 還具備冷熱分離的功能。業(yè)務(wù)的數(shù)據(jù)量是一直上漲的,很多離線加工任務(wù)積攢了多年的數(shù)據(jù),但實(shí)際 OLAP 查詢最多也就查近幾年、近幾個(gè)月或者近幾天的數(shù)據(jù)。StarRocks 冷熱分離功能,配置物化視圖只存近幾天的數(shù)據(jù),剩下的數(shù)據(jù)都在廉價(jià)對(duì)象存儲(chǔ)上。用戶只要寫一個(gè) SQL,不需要關(guān)心數(shù)據(jù)從哪來(lái),StarRocks 會(huì)自動(dòng)去解析這個(gè) SQL、做一些合理的 plan,自動(dòng)判斷哪些數(shù)據(jù)可以直接從物化視圖讀,哪些數(shù)據(jù)到湖格式上讀,然后把這兩個(gè)部分的結(jié)果 union 出來(lái),最后返回到最終結(jié)果里。冷熱分離的效果,相當(dāng)于熱數(shù)據(jù)查詢永遠(yuǎn)都很快,因?yàn)橹苯用形锘晥D,但冷數(shù)據(jù)依然可以保存在廉價(jià)存儲(chǔ)的外表里,達(dá)到降本增效的目的。

以上,就是 StarRocks+Paimon 的極速數(shù)據(jù)庫(kù)分析方案,以及在構(gòu)造一個(gè)湖分析方案時(shí)如何獲得更高的性能。

二、遷移 StarRocks 方案介紹

1. Trino/Presto 遷移

圖片

上文提到,Trino 直接換成 StarRocks 就有 3 倍的性能提升,但對(duì)于業(yè)務(wù)來(lái)說(shuō)直接遷移引擎不可避免地會(huì)帶來(lái)業(yè)務(wù)的改造和改 SQL 的情況,如果 SQL 很大很長(zhǎng),改起來(lái)會(huì)比較麻煩。接下來(lái)將分享如何減少業(yè)務(wù)遷移的痛點(diǎn)。

如果業(yè)務(wù)是從 Presto 或者 Trino 遷移到 StarRocks,這是最簡(jiǎn)單的,不需要任何改動(dòng),因?yàn)?StarRocks 已經(jīng)內(nèi)置了 Trino 的語(yǔ)法解析器。只要在 StarRocks 里設(shè)置 set sql_dialect=“Trino”,原來(lái) Trino 的 SQL 直接放進(jìn) StarRocks 就可以自動(dòng)完成解析,將 Trino 語(yǔ)法的 SQL 轉(zhuǎn)換成 StarRocks 自己的邏輯計(jì)劃以及物理執(zhí)行計(jì)劃,最后執(zhí)行返回。我們?cè)诙嗉铱蛻舻膶?shí)際案例中測(cè)試,對(duì) Trino 和 Presto 的兼容度基本在 90% 以上。剩下的就是一些 Corner Case,比如一些很少用到的地理計(jì)算函數(shù)或數(shù)學(xué)計(jì)算函數(shù)等,才會(huì)出現(xiàn)不兼容的情況。

2. Hive/Spark-SQL/Impala/Doris/Clickhouse 遷移

圖片

除了最常用的 Trino、Presto,大家還會(huì)用到一些其它的計(jì)算引擎,比如傳統(tǒng)的 Impala、Doris、ClickHouse、Hive、Spark SQL 等,如果想往 StarRocks 遷移,可以參考一個(gè)開(kāi)源項(xiàng)目——SQLGlot,它相當(dāng)于一個(gè) SQL 轉(zhuǎn)換器,支持各種 SQL 的轉(zhuǎn)換,使用特別簡(jiǎn)單,本質(zhì)上是一個(gè) python 程序,下載下來(lái)就可以直接用。

如上圖中所示,轉(zhuǎn)換方法就是填寫三個(gè)參數(shù),第一個(gè)參數(shù)是要轉(zhuǎn)換的 SQL,第二個(gè)參數(shù)是 read 參數(shù),告訴它這個(gè) SQL 是什么引擎的 SQL 語(yǔ)法,比如例子中的是“duckdb”,第三個(gè)參數(shù)是 write 參數(shù),告訴它要轉(zhuǎn)換成什么引擎的 SQL 語(yǔ)法,例子中的是“hive”。最后運(yùn)行一下,就可以完成 SQL 轉(zhuǎn)換。

這個(gè)項(xiàng)目除了 SQL 轉(zhuǎn)換,還有 SQL 優(yōu)化、SQL 格式化、SQL 語(yǔ)法檢查等功能。當(dāng)我們的客戶想把其它引擎遷移到 StarRocks 的時(shí)候,尤其是 Impala,我們經(jīng)常會(huì)推薦這個(gè)項(xiàng)目。

3. StarRocks 集群間遷移

圖片

下面介紹 StarRocks 集群間的遷移。假如現(xiàn)在已經(jīng)有了一個(gè) StarRocks 集群,但是版本非常老,想要升級(jí)到最新版本。最好的方案就是開(kāi)一個(gè)新集群,然后把數(shù)據(jù)復(fù)制過(guò)來(lái),等數(shù)據(jù)復(fù)制完成之后,業(yè)務(wù)直接切換過(guò)去即可。如果新的集群有問(wèn)題,還可以直接一鍵回滾。如果直接原地升級(jí),當(dāng)遇到遇到問(wèn)題的時(shí)候,還得做降級(jí),業(yè)務(wù)也得跟著中斷,這樣來(lái)回做一些反復(fù)的操作,對(duì)業(yè)務(wù)是有顯著影響的。

這里介紹一個(gè) StarRocks 集群間遷移的具體方法,除了做遷移,很多客戶也用這個(gè)工具做熱備和災(zāi)備。如上圖中所示,左右兩個(gè)框代表兩個(gè)集群,這個(gè)工具可以把原集群所有的數(shù)據(jù)自動(dòng)同步到新的目標(biāo)集群,實(shí)際上就是 copy 數(shù)據(jù),延遲大概在分鐘級(jí),可以做到準(zhǔn)實(shí)時(shí)。在數(shù)據(jù)同步中,原集群不用做任何修改,導(dǎo)數(shù)、刪表、加分區(qū)、刪分區(qū)等 DDL 操作、導(dǎo)入操作帶來(lái)的數(shù)據(jù)變更都會(huì)無(wú)縫地通過(guò)這個(gè)工具遷移到新集群去。這樣等新集群準(zhǔn)備好后,業(yè)務(wù)就可以直接切換了,或者干脆將其作為一個(gè)災(zāi)備系統(tǒng)也是可以的。

使用這個(gè)工具非常簡(jiǎn)單,下載好后,配置一些必要的參數(shù),如配置兩邊集群的 IP、用戶名密碼等,即可開(kāi)始使用。

4. 使用阿里云 EMR StarRocks 構(gòu)建基于 Paimon 極速實(shí)時(shí)湖倉(cāng)分析架構(gòu)

圖片

大家在使用 StarRocks 的時(shí)候,經(jīng)常會(huì)遇到一些運(yùn)維問(wèn)題,接下來(lái)介紹阿里云 StarRocks 基于 Paimon 的極速實(shí)時(shí)分析架構(gòu)。阿里云的 EMR Serverless StarRocks 分為三個(gè)版本,一個(gè)是存算一體,另外一個(gè)是存算分離,第三個(gè)是今天重點(diǎn)講的數(shù)據(jù)湖分析。

  • 存算一體就相當(dāng)于 StarRocks 內(nèi)表的一個(gè)版本,用 StarRocks 自己的格式去存數(shù)據(jù),用于高并發(fā)和實(shí)時(shí)數(shù)據(jù)分析查詢。
  • 存算分離版本,數(shù)據(jù)是存到 OSS 等對(duì)象存儲(chǔ)上,BE/CN 可以支持動(dòng)態(tài)伸縮,并支持多 Warehouse。存算分離集群支持資源硬隔離、讀寫分離、Cache 管理能力。
  • 數(shù)據(jù)湖分析版本,兼容 Trino/Presto 語(yǔ)法,適用于數(shù)據(jù)湖、數(shù)據(jù)倉(cāng)庫(kù)分析的場(chǎng)景,如果有外部數(shù)據(jù)存儲(chǔ)在 HDFS 或者 OSS 上,開(kāi)通之后就可以做即席查詢,無(wú)需任何配置。

圖片

上面是用 StarRocks 做數(shù)據(jù)湖分析的一個(gè)截圖。主要包括兩步:第一步,以 Paimon為例建一個(gè) Catalog,CREATE EXTERNAL CATALOG paimon_fs_catalog,添加一個(gè)參數(shù)用來(lái)指定 paimon 數(shù)據(jù)所在對(duì)象存儲(chǔ)的位置,最后就可以直接查詢 Paimon 數(shù)據(jù)湖里的數(shù)據(jù)了。

關(guān)于前面介紹的數(shù)據(jù)加速的物化視圖部分,可以參考上圖中第二個(gè)紅框中的代碼,即 CREATE MATERIALIZED VIEW 語(yǔ)法創(chuàng)建物化視圖,指定好物化視圖的刷新頻率,比如例子中的刷新頻率是 1 分鐘,保存好之后,就可以直接查詢這個(gè)物化視圖了。

圖片

阿里云的 EMR Serverless StarRocks 包含了各種各樣運(yùn)維和管控能力,例如查詢分析,Profile 可視化,導(dǎo)入分析,用戶權(quán)限分析,數(shù)據(jù)血緣分析等。

三、StarRocks + Paimon 未來(lái)規(guī)劃

  • 第一部分是支持 Paimon 元數(shù)據(jù)緩存,這是目前最高優(yōu)、最重要的任務(wù)之一。為何特別重要,是因?yàn)?StarRocks 物化視圖刷新是支持按分區(qū)刷新的,按分區(qū)刷新需要感知外表哪些分區(qū)有更新,只刷新有更新的分區(qū)。感知分區(qū)刷新就是獲取元數(shù)據(jù)的過(guò)程,外表一般數(shù)據(jù)量都很大,獲取元數(shù)據(jù)的成本也比較高,而且把元數(shù)據(jù)都緩存下來(lái),也可以給后續(xù)查詢直接復(fù)用,提高整體查詢效率。
  • 第二部分是完善 Paimon 統(tǒng)計(jì)信息和索引支持。目前重點(diǎn)在索引支持,主要包含兩個(gè)方面:一個(gè)是布隆過(guò)濾器,另一個(gè)是 bitmap 索引。StarRocks 也需要能夠處理這些索引格式,在 reader 中高效地利用這些索引數(shù)據(jù)。
  • 第三部分是支持 Paimon 表格式的寫入,希望直接用 StarRocks 去寫 Paimon 的表格式。
  • 第四部分是大規(guī)模數(shù)據(jù)表的讀取性能優(yōu)化,這個(gè)主要是內(nèi)存優(yōu)化。內(nèi)存優(yōu)化主要是拉取元數(shù)據(jù)或者讀數(shù)據(jù)的時(shí)候可以盡量減少內(nèi)存的消耗。

以上就是本次分享的主要內(nèi)容。

責(zé)任編輯:姜華 來(lái)源: DataFunTalk
相關(guān)推薦

2024-09-11 14:47:00

2023-02-13 14:01:32

2018-09-30 15:05:38

數(shù)據(jù)湖數(shù)據(jù)倉(cāng)庫(kù)Hadoop

2024-06-04 07:29:13

2023-06-05 07:36:30

數(shù)據(jù)湖大數(shù)據(jù)架構(gòu)

2023-04-07 18:35:23

StarRocks貨品運(yùn)營(yíng)

2016-08-22 15:15:14

數(shù)據(jù)實(shí)踐

2023-10-13 07:25:50

2023-07-12 16:07:50

鏈路數(shù)據(jù)湖技術(shù)

2022-05-23 13:30:48

數(shù)據(jù)胡實(shí)踐

2024-02-27 07:44:20

2023-11-14 14:25:09

數(shù)據(jù)湖大數(shù)據(jù)

2021-06-07 10:45:16

大數(shù)據(jù)數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)湖

2023-05-16 07:24:25

數(shù)據(jù)湖快手

2024-11-13 08:43:47

2022-10-14 14:20:20

云原生數(shù)據(jù)倉(cāng)庫(kù)

2017-06-22 16:00:07

數(shù)據(jù)庫(kù)NoSQL遷移實(shí)踐

2022-12-15 15:34:50

數(shù)據(jù)中心云遷移

2020-08-04 14:20:20

數(shù)據(jù)湖Hadoop數(shù)據(jù)倉(cāng)庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)