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

Apache Doris入門,下一代實(shí)時(shí)數(shù)據(jù)倉庫

大數(shù)據(jù) 數(shù)據(jù)倉庫
層級(jí)存儲(chǔ)的主要目的是節(jié)省成本。層級(jí)存儲(chǔ)將熱數(shù)據(jù)和冷數(shù)據(jù)分開存儲(chǔ),熱數(shù)據(jù)是經(jīng)常訪問的數(shù)據(jù),而冷數(shù)據(jù)則不是。它允許用戶將熱數(shù)據(jù)放入快速但昂貴的磁盤(如 SSD 和 HDD),將冷數(shù)據(jù)放入對(duì)象存儲(chǔ)中。

1 Apache Doris

Apache Doris是一個(gè)開源的實(shí)時(shí)數(shù)據(jù)倉庫,可以從各種數(shù)據(jù)源收集數(shù)據(jù),包括關(guān)系型數(shù)據(jù)庫(MySQL、PostgreSQL、SQL Server、Oracle等)、日志和來自物聯(lián)網(wǎng)設(shè)備的時(shí)間序列數(shù)據(jù)。Apache Doris支持報(bào)表、即席分析、聯(lián)合查詢和日志分析等功能,因此可以用于支持儀表盤、自助式商業(yè)智能、A/B測(cè)試和用戶行為分析等應(yīng)用。

Apache Doris支持批量導(dǎo)入和流式寫入,可以與Apache Spark、Apache Hive、Apache Flink、Airbyte、DBT和Fivetran等工具很好地集成。Apache Doris還可以連接到Apache Hive、Apache Hudi、Apache Iceberg、Delta Lake和Apache Paimon等數(shù)據(jù)湖。

圖片圖片

2 性能

作為實(shí)時(shí)OLAP引擎,Apache Doris在查詢速度上具有競(jìng)爭(zhēng)優(yōu)勢(shì)。根據(jù)TPC-H和SSB-Flat基準(zhǔn)測(cè)試結(jié)果,Doris的性能遠(yuǎn)遠(yuǎn)超過了Presto、Greenplum和ClickHouse。

在自我演進(jìn)方面,過去兩年中,Doris在復(fù)雜查詢和平面表分析方面的查詢速度提高了10倍以上。

圖片圖片

3 架構(gòu)設(shè)計(jì)

Apache Doris之所以能夠?qū)崿F(xiàn)如此快速的速度,是因?yàn)槠浔澈蟮募軜?gòu)設(shè)計(jì)、特性和機(jī)制對(duì)Doris的性能起到了貢獻(xiàn)。

首先,Apache Doris擁有一個(gè)基于成本的優(yōu)化器(CBO),可以找出復(fù)雜大查詢的最高效執(zhí)行計(jì)劃。它擁有完全向量化的執(zhí)行引擎,因此可以減少虛擬函數(shù)調(diào)用和緩存未命中。Apache Doris是基于MPP(Massively Parallel Processing)的,可以充分發(fā)揮用戶的計(jì)算機(jī)和核心的作用。在Doris中,查詢執(zhí)行是數(shù)據(jù)驅(qū)動(dòng)的,這意味著查詢是否執(zhí)行取決于其相關(guān)數(shù)據(jù)是否準(zhǔn)備就緒,這樣可以更高效地利用CPU。

4 基于列的數(shù)據(jù)庫的快速點(diǎn)查詢

Apache Doris是一種面向列的數(shù)據(jù)庫,因此可以更輕松、更快速地進(jìn)行數(shù)據(jù)壓縮和數(shù)據(jù)分片。但是,在面向客戶服務(wù)等場(chǎng)景中,這種存儲(chǔ)方式可能不太適用。在這些情況下,數(shù)據(jù)平臺(tái)需要同時(shí)處理大量用戶的請(qǐng)求(稱為“高并發(fā)點(diǎn)查詢”),而列存儲(chǔ)引擎會(huì)增加每秒I/O操作的數(shù)量,特別是在數(shù)據(jù)以平面表的形式排列時(shí)。

為了解決這個(gè)問題,Apache Doris實(shí)現(xiàn)了混合存儲(chǔ),即同時(shí)使用行存儲(chǔ)和列存儲(chǔ)。

圖片圖片

此外,由于點(diǎn)查詢都是簡(jiǎn)單查詢,調(diào)用查詢計(jì)劃器將是不必要和浪費(fèi)的,所以Doris對(duì)它們執(zhí)行了短路計(jì)劃,以減少開銷。

在高并發(fā)點(diǎn)查詢中,另一個(gè)開銷較大的來源是SQL解析。為此,Doris引入了預(yù)編譯語句的概念。其思想是預(yù)先計(jì)算SQL語句并緩存它們,以便在類似查詢中重復(fù)使用。

圖片圖片

5 數(shù)據(jù)采集

Apache Doris提供了多種數(shù)據(jù)導(dǎo)入方法。

實(shí)時(shí)流寫入:

  • Stream Load:通過該方法,可以通過HTTP編寫本地文件或數(shù)據(jù)流。在某些情況下,它具有線性可擴(kuò)展性,并且可以達(dá)到每秒1000萬條記錄的吞吐量。
  • Flink-Doris-Connector:該連接器內(nèi)置Flink CDC,可以將數(shù)據(jù)從OLTP數(shù)據(jù)庫導(dǎo)入Doris。到目前為止,我們已經(jīng)實(shí)現(xiàn)了從MySQL和Oracle到Doris的數(shù)據(jù)自動(dòng)同步。
  • Routine Load:通過該方法,可以從Kafka消息隊(duì)列訂閱數(shù)據(jù)。
  • Insert Into:當(dāng)嘗試在Doris內(nèi)部進(jìn)行ETL時(shí),例如從一個(gè)Doris表寫入另一個(gè)Doris表時(shí),可以使用此方法。

批量寫入:

  • Spark Load:使用該方法,您可以利用Spark資源在寫入Doris之前對(duì)HDFS和對(duì)象存儲(chǔ)中的數(shù)據(jù)進(jìn)行預(yù)處理。
  • Broker Load:支持HDFS和S3協(xié)議。
  • insert into <internal table> select from <external table>:這個(gè)簡(jiǎn)單的語句允許您將Doris連接到各種存儲(chǔ)系統(tǒng)、數(shù)據(jù)湖和數(shù)據(jù)庫。

6 數(shù)據(jù)更新

對(duì)于數(shù)據(jù)更新,Apache Doris提供的是對(duì)Merge on Read和Merge on Write的支持。前者用于低頻批量更新,后者用于實(shí)時(shí)寫入。通過Merge on Write,最新的數(shù)據(jù)將在執(zhí)行查詢時(shí)準(zhǔn)備就緒,這就是為什么與Merge on Read相比,它可以將查詢速度提高5到10倍的原因。

從實(shí)現(xiàn)的角度來看,以下是一些常見的數(shù)據(jù)更新操作,Doris都支持:

  • Upsert:替換或更新整行數(shù)據(jù)
  • 部分列更新:更新行中的幾個(gè)列
  • 條件更新:通過組合幾個(gè)條件來過濾出一些數(shù)據(jù),以進(jìn)行替換或刪除
  • Insert Overwrite:重寫表或分區(qū)

在某些情況下,數(shù)據(jù)更新是并發(fā)發(fā)生的,這意味著有大量新數(shù)據(jù)進(jìn)來并試圖修改現(xiàn)有的數(shù)據(jù)記錄,因此更新的順序非常重要。這就是為什么Doris允許您決定順序,可以根據(jù)事務(wù)提交的順序或序列列(在表中提前指定)來決定順序。Doris還支持基于指定謂詞的數(shù)據(jù)刪除,這就是條件更新的實(shí)現(xiàn)方式。

7 服務(wù)可用性和數(shù)據(jù)可靠性

除了在查詢和數(shù)據(jù)采集方面具有快速性能外,Apache Doris還提供了服務(wù)可用性保證,具體如下:

從架構(gòu)上來說,Doris有兩個(gè)進(jìn)程:前端和后端。它們都可以輕松擴(kuò)展。前端節(jié)點(diǎn)管理集群、元數(shù)據(jù)并處理用戶請(qǐng)求;后端節(jié)點(diǎn)執(zhí)行查詢,并具備自動(dòng)數(shù)據(jù)平衡和自動(dòng)恢復(fù)的能力。它支持集群升級(jí)和擴(kuò)展,以避免服務(wù)中斷。

圖片圖片

8 跨集群復(fù)制

企業(yè)用戶,尤其是金融或電商領(lǐng)域的用戶,需要備份集群或整個(gè)數(shù)據(jù)中心,以防不測(cè)之需。因此,Doris 2.0提供了跨集群復(fù)制(CCR)。使用CCR,用戶可以實(shí)現(xiàn)以下功能:

  • 災(zāi)難恢復(fù):快速恢復(fù)數(shù)據(jù)服務(wù)
  • 讀寫分離:主集群+從集群;一個(gè)用于讀取,一個(gè)用于寫入
  • 集群的隔離升級(jí):對(duì)于集群擴(kuò)展,CCR允許用戶預(yù)先創(chuàng)建一個(gè)備份集群進(jìn)行試運(yùn)行,以便清除可能的不兼容問題和錯(cuò)誤。

測(cè)試表明,Doris CCR可以達(dá)到幾分鐘的數(shù)據(jù)延遲。在最佳情況下,它可以達(dá)到硬件環(huán)境的最高速度。

圖片圖片

9 多租戶管理

Apache Doris具有復(fù)雜的基于角色的訪問控制,并且可以對(duì)數(shù)據(jù)庫、表、行和列進(jìn)行細(xì)粒度的權(quán)限控制。

圖片圖片

為了資源隔離,Doris過去實(shí)施了硬隔離計(jì)劃,即將后端節(jié)點(diǎn)劃分為資源組,并將資源組分配給不同的工作負(fù)載。這是一個(gè)硬隔離計(jì)劃。它簡(jiǎn)單而整潔。但是有時(shí)用戶可以充分利用他們的計(jì)算資源,因?yàn)橐恍┵Y源組是空閑的。

圖片圖片

因此,Doris 2.0引入了工作負(fù)載組,而不是資源組。為工作負(fù)載組設(shè)置了軟限制,限制其可以使用的資源數(shù)量。當(dāng)達(dá)到軟限制時(shí),同時(shí)有一些空閑資源可用??臻e資源將在工作負(fù)載組之間共享。用戶還可以根據(jù)對(duì)空閑資源的訪問優(yōu)先級(jí)來對(duì)工作負(fù)載組進(jìn)行優(yōu)先級(jí)排序。

圖片圖片

10 易于使用

Apache Doris提供了許多功能,同時(shí)也非常易于使用。Apache Doris支持標(biāo)準(zhǔn)SQL,并兼容MySQL協(xié)議和市場(chǎng)上的大多多BI工具。

為了提高易用性,引入了一個(gè)名為輕量級(jí)模式更改(Light Schema Change)的功能。這意味著如果用戶需要在表中添加或刪除某些列,他們只需要在前端更新元數(shù)據(jù),而無需修改所有數(shù)據(jù)文件。輕量級(jí)模式更改可以在毫秒級(jí)內(nèi)完成。它還允許更改索引和列的數(shù)據(jù)類型。輕量級(jí)模式更改與Flink-Doris-Connector的結(jié)合意味著上游表格的同步可以在毫秒級(jí)內(nèi)完成。

11 半結(jié)構(gòu)化數(shù)據(jù)分析

半結(jié)構(gòu)化數(shù)據(jù)是常見的數(shù)據(jù)類型,其中包括日志、可觀測(cè)性數(shù)據(jù)和時(shí)間序列數(shù)據(jù)等。這些數(shù)據(jù)具有一定的結(jié)構(gòu),但不符合傳統(tǒng)的關(guān)系型數(shù)據(jù)庫的嚴(yán)格模式。處理這些數(shù)據(jù)時(shí),需要支持無模式的靈活性、低成本存儲(chǔ)以及多維分析和全文搜索等功能。

在文本分析中,使用LIKE運(yùn)算符是常見的操作。為了提高性能,我們進(jìn)行了大量的優(yōu)化工作。其中一項(xiàng)優(yōu)化是將LIKE運(yùn)算符下推到存儲(chǔ)層,以減少數(shù)據(jù)掃描的量。此外,我們還引入了NGram Bloomfilter、Hyperscan正則表達(dá)式匹配庫和Volnitsky算法等技術(shù),用于更高效地進(jìn)行子字符串匹配操作。這些優(yōu)化措施可以改善文本分析的性能和效率。

圖片圖片

這里還引入了倒排索引用于文本標(biāo)記化。它是模糊關(guān)鍵字搜索、全文搜索、等價(jià)查詢和范圍查詢的有力工具。

12 數(shù)據(jù)湖倉庫

為了讓用戶構(gòu)建高性能的數(shù)據(jù)湖倉庫和統(tǒng)一的查詢網(wǎng)關(guān),Doris 可以映射、緩存和自動(dòng)刷新來自外部源的元數(shù)據(jù)。它支持 Hive Metastore 和幾乎所有開放的數(shù)據(jù)湖倉庫格式。您可以將其連接到關(guān)系型數(shù)據(jù)庫、Elasticsearch 和其他許多源。它還允許您重用自己的身份驗(yàn)證系統(tǒng),如 Kerberos 和 Apache Ranger,用于外部表。

基準(zhǔn)測(cè)試結(jié)果顯示,Apache Doris 在對(duì) Hive 表進(jìn)行查詢時(shí)比 Trino 快 3~5 倍。這是幾個(gè)特性的共同結(jié)果:

  • 高效的查詢引擎
  • 熱數(shù)據(jù)緩存機(jī)制
  • 計(jì)算節(jié)點(diǎn)
  • Doris 中的視圖

計(jì)算節(jié)點(diǎn)是版本 2.0 中針對(duì)數(shù)據(jù)湖倉庫引入的一種解決方案。與普通的后端節(jié)點(diǎn)不同,計(jì)算節(jié)點(diǎn)是無狀態(tài)的,不存儲(chǔ)任何數(shù)據(jù)。它們?cè)诩簲U(kuò)展期間不參與數(shù)據(jù)平衡。因此,在計(jì)算高峰時(shí),它們可以靈活而容易地加入集群。

此外,Doris 允許您將外部表的計(jì)算結(jié)果寫入 Doris 中以形成視圖。這與材料化視圖的思想類似:用空間換取速度。在執(zhí)行對(duì)外部表的查詢后,結(jié)果可以在 Doris 內(nèi)部存儲(chǔ)。當(dāng)出現(xiàn)類似的后續(xù)查詢時(shí),系統(tǒng)可以直接從 Doris 中讀取先前查詢的結(jié)果,從而提高速度。

13 層級(jí)存儲(chǔ)

層級(jí)存儲(chǔ)的主要目的是節(jié)省成本。層級(jí)存儲(chǔ)將熱數(shù)據(jù)和冷數(shù)據(jù)分開存儲(chǔ),熱數(shù)據(jù)是經(jīng)常訪問的數(shù)據(jù),而冷數(shù)據(jù)則不是。它允許用戶將熱數(shù)據(jù)放入快速但昂貴的磁盤(如 SSD 和 HDD),將冷數(shù)據(jù)放入對(duì)象存儲(chǔ)中。

圖片圖片

粗略地說,對(duì)于由 80% 冷數(shù)據(jù)組成的數(shù)據(jù)資產(chǎn),層級(jí)存儲(chǔ)將減少存儲(chǔ)成本約 70%。

責(zé)任編輯:武曉燕 來源: Java學(xué)研大本營(yíng)
相關(guān)推薦

2013-07-27 21:28:44

2024-10-18 08:17:09

Doris數(shù)據(jù)倉庫

2013-06-27 11:21:17

2016-11-14 18:17:42

Apache Beam大數(shù)據(jù)

2024-01-12 18:02:38

Doris數(shù)據(jù)平臺(tái)

2015-10-15 10:30:32

2020-09-27 17:27:58

邊緣計(jì)算云計(jì)算技術(shù)

2024-07-25 08:12:11

2025-01-03 09:24:10

模型架構(gòu)論文

2020-09-16 10:28:54

邊緣計(jì)算云計(jì)算數(shù)據(jù)中心

2016-01-26 11:58:12

2010-04-29 16:19:27

數(shù)據(jù)中心IT安全世紀(jì)互聯(lián)

2013-07-22 09:47:17

大數(shù)據(jù)IBM技術(shù)大會(huì)

2012-11-16 11:31:39

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

2012-07-31 14:12:56

數(shù)據(jù)中心布線布線數(shù)據(jù)中心

2018-09-25 07:00:50

2018-09-27 18:47:45

AIOpsDevOps

2009-01-11 10:13:39

Stripes開發(fā)框架JSP

2009-04-06 08:42:18

Firefox瀏覽器

2012-10-29 12:23:44

BYODIT
點(diǎn)贊
收藏

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