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

基于Doris ,打造快速、安全、高可靠的實時數(shù)據(jù)倉庫

開發(fā) 前端
分區(qū)和桶化的思想是將數(shù)據(jù)“切割”成較小的部分,以增加數(shù)據(jù)處理速度。關(guān)鍵是設(shè)置適當數(shù)量的數(shù)據(jù)分區(qū)和桶。根據(jù)使用情況,根據(jù)每個表自定義桶化字段和桶的數(shù)量。

在當今數(shù)據(jù)驅(qū)動的時代,構(gòu)建一個快速、安全和高可靠的實時數(shù)據(jù)倉庫對于企業(yè)來說至關(guān)重要。Apache Doris作為一個強大的開源數(shù)據(jù)倉庫解決方案,提供了實現(xiàn)這一目標的理想選擇。通過利用Doris的強大功能和特性,可以構(gòu)建一個高度可擴展且具備優(yōu)異性能的實時數(shù)據(jù)倉庫,以滿足數(shù)據(jù)處理和分析的需求。本文介紹如何基于Doris打造這樣一個數(shù)據(jù)倉庫,以實現(xiàn)數(shù)據(jù)驅(qū)動。

1 使用Apache Doris構(gòu)建實時數(shù)據(jù)倉庫

1.1 數(shù)據(jù)模型選擇

Apache Doris使用三種數(shù)據(jù)模型來組織數(shù)據(jù),這些模型之間的主要區(qū)別在于是否以及如何聚合數(shù)據(jù)。

  • Duplicate Key模型:用于詳細數(shù)據(jù)查詢。支持任意維度的即席查詢。
  • Unique Key模型:用于存在數(shù)據(jù)唯一性約束的用例。支持精確去重、多流Upsert和部分列更新。
  • Aggregate Key模型:用于數(shù)據(jù)報表。通過預聚合數(shù)據(jù),加速數(shù)據(jù)報表生成。

金融用戶在不同的數(shù)據(jù)倉庫層中采用不同的數(shù)據(jù)模型:

  • ODS(原始數(shù)據(jù)層)- Duplicate Key模型:作為支付服務(wù)提供商,用戶每天收到一百萬筆結(jié)算數(shù)據(jù)。由于結(jié)算周期可能跨越一整年,相關(guān)數(shù)據(jù)需要保存一年。因此,合適的方式是將其放入Duplicate Key模型,該模型不執(zhí)行任何數(shù)據(jù)聚合。唯一的例外是一些容易變動的數(shù)據(jù),比如來自零售商的訂單狀態(tài)。這些數(shù)據(jù)應(yīng)該放入Unique Key模型,以便同一零售商ID或訂單ID的新記錄始終替換舊記錄。
  • DWD(數(shù)據(jù)倉庫層)和DWS(數(shù)據(jù)服務(wù)層)- Unique Key模型:DWD和DWS層的數(shù)據(jù)進一步抽象,但仍然放在Unique Key模型中,以便結(jié)算數(shù)據(jù)可以自動更新。
  • ADS(分析數(shù)據(jù)層)- Aggregate Key模型:該層中的數(shù)據(jù)高度抽象。通過預聚合數(shù)據(jù),減輕下游分析的計算負載。

1.2 分區(qū)和桶化策略

分區(qū)和桶化的思想是將數(shù)據(jù)“切割”成較小的部分,以增加數(shù)據(jù)處理速度。關(guān)鍵是設(shè)置適當數(shù)量的數(shù)據(jù)分區(qū)和桶。根據(jù)使用情況,根據(jù)每個表自定義桶化字段和桶的數(shù)量。例如,經(jīng)常需要從零售商扁平表查詢不同零售商的維度數(shù)據(jù),因此可以將零售商ID列指定為桶化字段,并列出各種數(shù)據(jù)大小的推薦桶數(shù)量。

圖片圖片

2 多源數(shù)據(jù)遷移

在采用Apache Doris時,需要將所有分支機構(gòu)的本地數(shù)據(jù)遷移到Doris中,但會發(fā)現(xiàn)分支機構(gòu)使用了不同的數(shù)據(jù)庫,并且具有非常不同的數(shù)據(jù)文件格式,所以遷移可能會很混亂。

圖片圖片

幸運的是,Apache Doris支持豐富的數(shù)據(jù)集成方法,既支持實時數(shù)據(jù)流式處理,又支持離線數(shù)據(jù)導入。

  • 實時數(shù)據(jù)流處理:Apache Doris實時獲取MySQL Binlog。其中一部分通過Flink CDC直接寫入Doris,而高容量的數(shù)據(jù)則通過Kafka同步,然后通過Flink-Doris-Connector寫入Doris。
  • 離線數(shù)據(jù)導入:包括更多種類的數(shù)據(jù)源和數(shù)據(jù)格式。歷史數(shù)據(jù)和增量數(shù)據(jù)從S3和HDFS導入Doris使用經(jīng)紀人加載方法,來自Hive或JDBC的數(shù)據(jù)通過Insert Into方法同步到Doris,文件通過Flink-Doris-Connector和Flink FTP Connector加載到Doris。(FTP是用戶在系統(tǒng)之間傳輸文件的方式,所以他們開發(fā)了Flink-FTP-Connector以支持復雜的數(shù)據(jù)格式和多個換行符的數(shù)據(jù)。)

3 全量數(shù)據(jù)攝取和增量數(shù)據(jù)攝取

為了確保業(yè)務(wù)連續(xù)性和數(shù)據(jù)準確性,可用以下攝取全量數(shù)據(jù)和增量數(shù)據(jù)的方法:

  • 全量數(shù)據(jù)攝?。涸贒oris中創(chuàng)建目標模式的臨時表,將全量數(shù)據(jù)導入臨時表,然后使用ALTER TABLE t1 REPLACE WITH TABLE t2語句原子替換常規(guī)表為臨時表。這種方法可以避免對前面的查詢產(chǎn)生影響。
alter table ${DB_NAME}.${TBL_NAME} drop partition IF EXISTS p${P_DOWN_DATE};
ALTER TABLE ${DB_NAME}.${TBL_NAME} ADD PARTITION IF NOT EXISTS p${P_DOWN_DATE} VALUES[('${P_DOWN_DATE}'), ('${P_UP_DATE}'));

LOAD LABEL ${TBL_NAME}_${load_timestamp} ...
  • 增量數(shù)據(jù)導入:創(chuàng)建新的數(shù)據(jù)分區(qū)以容納增量數(shù)據(jù)。

4 離線數(shù)據(jù)處理

已經(jīng)將部分離線數(shù)據(jù)處理工作遷移到Apache Doris,并把執(zhí)行速度提高了5倍。

圖片圖片

  • 之前:舊的基于Hive的離線數(shù)據(jù)倉庫使用TEZ執(zhí)行引擎每天處理3000萬條新數(shù)據(jù)記錄。使用2TB計算資源,整個流程需要2.5小時。
  • 現(xiàn)在:Apache Doris在僅30分鐘內(nèi)完成相同的任務(wù),僅消耗1TB。腳本執(zhí)行僅需要10秒,而不是8分鐘。

5 面向金融機構(gòu)的企業(yè)功能

多租戶資源隔離

這是必需的,因為經(jīng)常會發(fā)生多個團隊或業(yè)務(wù)系統(tǒng)請求同一數(shù)據(jù)的情況。這些任務(wù)可能導致資源搶占,從而降低性能和系統(tǒng)的穩(wěn)定性。

5.1 不同工作負載的資源限制

這里把分析工作負載分為四類,并為每個類別設(shè)置了資源限制。特別是擁有四種不同類型的Doris賬戶,并為每種類型的賬戶設(shè)置了CPU和內(nèi)存資源的限制。

圖片圖片

通過這種方式,當一個租戶需要過多的資源時,它只會影響自己的效率,而不會影響其他租戶。

5.2 基于資源標簽的隔離

為了滿足母子公司層級的數(shù)據(jù)安全性,這里為子公司設(shè)置隔離的資源組。每個子公司的數(shù)據(jù)存儲在其自己的資源組中,并具有三個副本,而母公司的數(shù)據(jù)則存儲在四個副本中:三個在母公司資源組中,另一個在子公司資源組中。因此,當子公司的員工請求母公司的數(shù)據(jù)時,查詢只會在子公司資源組中執(zhí)行。具體而言,采取以下步驟:

圖片圖片

5.3 工作負載組

基于資源標簽的隔離方案確保了物理級別的隔離,但作為Apache Doris開發(fā)人員,希望進一步優(yōu)化資源利用率并追求更細粒度的資源隔離。為此,在Apache Doris 2.0中推出了工作負載組功能。

工作負載組機制將查詢與工作負載組相關(guān)聯(lián),限制了查詢可以使用的后端節(jié)點的CPU和內(nèi)存資源的共享。當集群資源短缺時,最大的查詢將停止執(zhí)行。相反,當集群資源充足且工作負載組需要的資源超過限制時,它將按比例分配空閑資源。

5.4 細粒度用戶權(quán)限管理

出于規(guī)章制度和合規(guī)性原因,有的提供商實施嚴格的權(quán)限控制,以確保每個人只能訪問他們應(yīng)該訪問的內(nèi)容。參考做法如下:

  • 用戶權(quán)限設(shè)置:不同子公司或具有不同業(yè)務(wù)需求的系統(tǒng)用戶被分配不同的數(shù)據(jù)訪問權(quán)限。
  • 對數(shù)據(jù)庫、表和行的權(quán)限控制:Apache Doris的ROW POLICY機制使這些操作變得容易。
  • 對列的權(quán)限控制:通過創(chuàng)建視圖來實現(xiàn)。

圖片圖片

6 集群穩(wěn)定性保證

  • 斷路器機制:偶爾,系統(tǒng)用戶可能輸入有誤的SQL,導致資源消耗過多。為此,設(shè)置了斷路器機制。它將及時停止這些消耗資源的查詢,防止對系統(tǒng)的干擾。
  • 數(shù)據(jù)攝取并發(fā)控制:例如經(jīng)常需要將歷史數(shù)據(jù)整合到數(shù)據(jù)平臺中。這涉及大量的數(shù)據(jù)修改任務(wù),可能會對集群造成壓力。為解決這個問題,可在唯一鍵模型中啟用寫入合并模式,啟用垂直壓縮和段壓縮,并調(diào)整數(shù)據(jù)壓縮參數(shù)以控制數(shù)據(jù)攝取并發(fā)性。
  • 網(wǎng)絡(luò)流量控制:若有在不同城市的兩個集群,可采用針對不同場景的服務(wù)質(zhì)量(QoS)策略,以實現(xiàn)精確的網(wǎng)絡(luò)隔離,確保網(wǎng)絡(luò)質(zhì)量和穩(wěn)定性。
  • 監(jiān)控和警報:將Doris與內(nèi)部監(jiān)控和警報平臺集成,任何檢測到的問題都將通過消息軟件和電子郵件及時通知。
責任編輯:武曉燕 來源: Java學研大本營
相關(guān)推薦

2024-10-18 08:17:09

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

2023-10-05 18:25:40

存儲分開存儲SSD

2020-02-05 15:09:38

數(shù)據(jù)倉庫數(shù)據(jù)中臺OPPO

2022-06-28 09:47:05

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

2025-02-06 08:54:54

2024-02-19 00:06:06

數(shù)據(jù)分析系統(tǒng)Doris

2022-03-16 10:20:57

數(shù)據(jù)智慧城市傳感器

2022-06-24 09:38:43

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

2023-11-17 18:02:19

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

2013-10-25 09:14:30

Teradata數(shù)據(jù)倉庫服務(wù)

2009-01-19 13:54:58

ERP數(shù)據(jù)倉庫應(yīng)用研究

2021-09-01 10:03:44

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

2017-02-28 09:21:56

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

2017-06-30 13:26:56

華為

2023-01-09 07:55:43

Rust開源數(shù)據(jù)倉庫

2022-07-06 08:00:00

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

2021-06-07 10:45:16

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

2020-09-17 14:32:18

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

2025-03-25 10:49:24

點贊
收藏

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