国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

聊聊分布式 SQL 數(shù)據(jù)庫(kù)Doris(三)

這篇具有很好參考價(jià)值的文章主要介紹了聊聊分布式 SQL 數(shù)據(jù)庫(kù)Doris(三)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

在 Doris 的存儲(chǔ)引擎規(guī)則:

  • 表的數(shù)據(jù)是以分區(qū)為單位存儲(chǔ)的,不指定分區(qū)創(chuàng)建時(shí),默認(rèn)就一個(gè)分區(qū).
  • 用戶數(shù)據(jù)首先被劃分成若干個(gè)分區(qū)(Partition),劃分的規(guī)則通常是按照用戶指定的分區(qū)列進(jìn)行范圍劃分,比如按時(shí)間劃分。
  • 在每個(gè)分區(qū)內(nèi),數(shù)據(jù)被進(jìn)一步的按照Hash的方式分桶,分桶的規(guī)則是要找用戶指定的分桶列的值進(jìn)行Hash后分桶。每個(gè)分桶就是一個(gè)數(shù)據(jù)分片(Tablet),也是數(shù)據(jù)劃分的最小邏輯單元。
  • Partition 可以視為是邏輯上最小的管理單元。數(shù)據(jù)的導(dǎo)入與刪除,都可以或僅能針對(duì)一個(gè) Partition 進(jìn)行。
  • Tablet直接的數(shù)據(jù)是沒(méi)有交集的,獨(dú)立存儲(chǔ)的。Tablet也是數(shù)據(jù)移動(dòng)、復(fù)制等操作的最小物理存儲(chǔ)單元。

Table (邏輯描述) -- > Partition(分區(qū):管理單元) --> Bucket/Tablet(分桶:存儲(chǔ),每個(gè)分桶就是一個(gè)數(shù)據(jù)分片:Tablet,數(shù)據(jù)劃分的最小邏輯單元。稱(chēng)為子表) --> segment(Tablet會(huì)按照一定大?。?56M)拆分為多個(gè)segment文件) ,如下圖:

Doris的存儲(chǔ)結(jié)構(gòu)類(lèi)似LSM,從存儲(chǔ)結(jié)構(gòu)展開(kāi)來(lái)看兩者的比對(duì):
Doris MemTable --> LSM MemTable; Doris Rowset --> LSM SST;
Doris中的Segment是對(duì)Rowset文件的拆分。多個(gè)Segment組成Rowset。

Doris中的數(shù)據(jù)被組織成一個(gè)個(gè) segment,這是數(shù)據(jù)寫(xiě)入和查詢的基本單元。每個(gè) segment 包含了數(shù)據(jù)頁(yè)(page),而數(shù)據(jù)頁(yè)是數(shù)據(jù)讀取的最小單元。

語(yǔ)法與示例

語(yǔ)法:

-- 該表記錄了某個(gè)時(shí)間點(diǎn),在某個(gè)站點(diǎn)上各個(gè)用戶的pv數(shù)據(jù)
CREATE TABLE demo.test_tbl(
    sdate      DATE,  -- 日期
    site       INT,  -- 站點(diǎn)id
    city       VARCHAR(64),  -- 城市
    user       VARCHAR(32)  DEFAULT '', -- 用戶名
    pv         BIGINT -- pv量
) ENGINE=olap DUPLICATE KEY(sdate, site, city)
[PARTITION_DESC]
[BUCKET_DESC]
PROPERTIES ("replication_num" = "1");

[PARTITION_DESC] 表示創(chuàng)建分區(qū)的詳細(xì)語(yǔ)句,[BUCKET_DESC] 表示創(chuàng)建分桶的語(yǔ)句.

動(dòng)態(tài)分區(qū):

PARTITION BY RANGE(sdate)()

-- 剩余參數(shù)需要在PARTITION進(jìn)行配置:
PROPERTIES (
  "dynamic_partition.enable" = "true",
  "dynamic_partition.time_unit" = "DAY",
  "dynamic_partition.start" = "-30",
  "dynamic_partition.end" = "3",
  "dynamic_partition.prefix" = "p",
  "dynamic_partition.create_history_partition"="true",
  "replication_num" = "1"
);

分桶:

DISTRIBUTED BY HASH(site) BUCKETS 20

此時(shí)指定以 site 列的哈希值作為分桶,并且分桶個(gè)數(shù)設(shè)置為 20 個(gè).

官方示例:

CREATE TABLE tbl1
(
    k1 DATE,
    -- ...
)
PARTITION BY RANGE(k1) ()
DISTRIBUTED BY HASH(k1)
PROPERTIES
(
    "dynamic_partition.enable" = "true",
    "dynamic_partition.time_unit" = "DAY",
    "dynamic_partition.start" = "-7",
    "dynamic_partition.end" = "3",
    "dynamic_partition.prefix" = "p",
    "dynamic_partition.buckets" = "32"
);

批量分區(qū)與自動(dòng)分桶

批量分區(qū)使得用戶能夠批量操作表的分區(qū)結(jié)構(gòu),一次性創(chuàng)建多個(gè)分區(qū),而不是逐個(gè)單獨(dú)創(chuàng)建。

-- 當(dāng)然,分區(qū)創(chuàng)建個(gè)數(shù)受到max_multi_partition_num參數(shù)控制,該值默認(rèn)為4096,有需求可以修改
PARTITION BY RANGE(sdate)
(
   FROM ("2013-01-01") TO ("2023-01-01") INTERVAL 1 DAY
)
-- 從這個(gè) case 來(lái)看,批量分區(qū)功能的語(yǔ)法更為簡(jiǎn)潔,但該功能的易用性和靈活性遠(yuǎn)不止于此。

自動(dòng)分桶是基于表中某個(gè)列(或在創(chuàng)建表時(shí)指定咧)的值范圍進(jìn)行的。系統(tǒng)會(huì)根據(jù)該列的數(shù)據(jù)分布情況,將數(shù)據(jù)劃分到不同的數(shù)據(jù)桶中。

-- 舊版本指定分桶個(gè)數(shù)的創(chuàng)建語(yǔ)法
DISTRIBUTED BY HASH(site) BUCKETS 20

-- 新版本使用自動(dòng)分桶推算的創(chuàng)建語(yǔ)法
DISTRIBUTED BY HASH(site) BUCKETS AUTO
properties("estimate_partition_size" = "100G")

關(guān)鍵邏輯

查詢路由

一個(gè)分區(qū)的數(shù)據(jù)不會(huì)跨多個(gè)不同的BE節(jié)點(diǎn)存儲(chǔ).

在 Apache Doris 中,當(dāng)請(qǐng)求到來(lái)時(shí),查詢某個(gè)分區(qū)的數(shù)據(jù)時(shí),Doris 使用以下的過(guò)程來(lái)定位到相應(yīng)的 Backend(BE)節(jié)點(diǎn):

  1. 分區(qū)鍵(Partition Key): 在 Doris 中,表的分區(qū)是按照某一列的值范圍進(jìn)行劃分的,這個(gè)列通常被稱(chēng)為分區(qū)鍵。用戶在創(chuàng)建表時(shí)可以選擇分區(qū)鍵。

  2. 查詢請(qǐng)求中的分區(qū)鍵值: 當(dāng)查詢請(qǐng)求到達(dá) Doris 時(shí),請(qǐng)求中通常包含了要查詢的分區(qū)鍵值。

  3. 分區(qū)鍵值與分區(qū)映射關(guān)系: Doris 通過(guò)分區(qū)鍵值與分區(qū)的映射關(guān)系,確定具體的分區(qū)。這個(gè)映射關(guān)系通常存儲(chǔ)在系統(tǒng)的元數(shù)據(jù)中,其中包括每個(gè)分區(qū)所在的 BE 節(jié)點(diǎn)信息。

  4. BE 節(jié)點(diǎn)負(fù)責(zé)的分區(qū): 根據(jù)分區(qū)鍵值的映射關(guān)系,Doris 確定了負(fù)責(zé)該分區(qū)的 BE 節(jié)點(diǎn)。

  5. 查詢計(jì)劃的生成和執(zhí)行: Doris 生成查詢計(jì)劃,其中包含了具體的查詢操作。該計(jì)劃會(huì)被發(fā)送到負(fù)責(zé)該分區(qū)的 BE 節(jié)點(diǎn)上執(zhí)行。

在 Apache Doris 中,一個(gè)表的多個(gè)分區(qū)數(shù)據(jù)通常會(huì)存儲(chǔ)在不同的 Backend(BE)節(jié)點(diǎn)上,以實(shí)現(xiàn)分布式存儲(chǔ)和查詢的優(yōu)勢(shì)。每個(gè)分區(qū)的數(shù)據(jù)都會(huì)被劃分并存儲(chǔ)在負(fù)責(zé)該分區(qū)的一個(gè) BE 節(jié)點(diǎn)上。具體來(lái)說(shuō):

  1. 表的分區(qū): Doris 中的表通常根據(jù)某一列的值范圍進(jìn)行分區(qū)。每個(gè)分區(qū)是表的邏輯組織單元,用于提高查詢性能、管理數(shù)據(jù)、支持按范圍刪除等操作。

  2. 分布式存儲(chǔ): Doris 的設(shè)計(jì)目標(biāo)之一是分布式存儲(chǔ)和查詢。因此,一個(gè)表的多個(gè)分區(qū)數(shù)據(jù)會(huì)被分布存儲(chǔ)在不同的 BE 節(jié)點(diǎn)上。這樣的設(shè)計(jì)有助于提高系統(tǒng)的橫向擴(kuò)展性,允許系統(tǒng)有效地處理大規(guī)模數(shù)據(jù)和高并發(fā)的查詢請(qǐng)求。

  3. 負(fù)責(zé)分區(qū)的 BE 節(jié)點(diǎn): Doris 通過(guò)元數(shù)據(jù)信息記錄每個(gè)分區(qū)所在的 BE 節(jié)點(diǎn)。當(dāng)執(zhí)行查詢請(qǐng)求時(shí),Doris 會(huì)根據(jù)查詢涉及的分區(qū),確定負(fù)責(zé)這些分區(qū)的 BE 節(jié)點(diǎn)。每個(gè) BE 節(jié)點(diǎn)負(fù)責(zé)存儲(chǔ)和管理分配給它的分區(qū)數(shù)據(jù)。

  4. 分布式計(jì)算: 查詢請(qǐng)求在涉及多個(gè)分區(qū)時(shí),Doris 可以通過(guò)分布式計(jì)算的方式,在多個(gè) BE 節(jié)點(diǎn)上并行執(zhí)行查詢計(jì)劃,以提高查詢性能。

分桶算法

暫時(shí)只支持HASH.

分區(qū)算法

暫時(shí)只支持List, RANGE. 常用的有四種: (a) Round-Robin、(b) Range、(c) List、(d) Hash .

參考:

Doris-BE-存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)解析

Doris數(shù)據(jù)分布

Apache Doris 分區(qū)分桶新功能

數(shù)據(jù)劃分

Doris全面解析: 存儲(chǔ)層設(shè)計(jì)介紹文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-746660.html

到了這里,關(guān)于聊聊分布式 SQL 數(shù)據(jù)庫(kù)Doris(三)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 聊聊分布式 SQL 數(shù)據(jù)庫(kù)Doris(六)

    此處的負(fù)載均衡指的是FE層的負(fù)載均衡. 當(dāng)部署多個(gè) FE 節(jié)點(diǎn)時(shí),用戶可以在多個(gè) FE 之上部署負(fù)載均衡層來(lái)實(shí)現(xiàn) Doris 的高可用。官方文檔描述: 負(fù)載均衡 。 實(shí)現(xiàn)方式 實(shí)現(xiàn)方式有多種,如下列舉。 開(kāi)發(fā)者在應(yīng)用層自己進(jìn)行重試與負(fù)載均衡。 JDBC Connector 發(fā)現(xiàn)一個(gè)連接掛掉,就自

    2024年02月05日
    瀏覽(25)
  • 聊聊分布式 SQL 數(shù)據(jù)庫(kù)Doris(七)

    Doris的存儲(chǔ)結(jié)構(gòu)是類(lèi)似LSM-Tree設(shè)計(jì)的,因此很多方面都是通用的,先閱讀了解LSM相關(guān)的知識(shí),再看Doris的底層存儲(chǔ)與讀取流程會(huì)清晰透徹很多,LSM基本知識(shí)如下: 原理:把各種數(shù)據(jù)先用log等形式組織在內(nèi)存中(該數(shù)據(jù)結(jié)構(gòu)稱(chēng)為MemTable,且有序);到達(dá)一定數(shù)據(jù)量后再批量merge寫(xiě)入磁

    2024年02月05日
    瀏覽(29)
  • 聊聊分布式 SQL 數(shù)據(jù)庫(kù)Doris(三)

    在 Doris 的存儲(chǔ)引擎規(guī)則: 表的數(shù)據(jù)是以分區(qū)為單位存儲(chǔ)的,不指定分區(qū)創(chuàng)建時(shí),默認(rèn)就一個(gè)分區(qū). 用戶數(shù)據(jù)首先被劃分成若干個(gè)分區(qū)(Partition),劃分的規(guī)則通常是按照用戶指定的分區(qū)列進(jìn)行范圍劃分,比如按時(shí)間劃分。 在每個(gè)分區(qū)內(nèi),數(shù)據(jù)被進(jìn)一步的按照Hash的方式分桶,分

    2024年02月05日
    瀏覽(17)
  • 聊聊分布式 SQL 數(shù)據(jù)庫(kù)Doris(四)

    聊聊分布式 SQL 數(shù)據(jù)庫(kù)Doris(四)

    FE層的架構(gòu)都能在網(wǎng)上找到說(shuō)明. 但BE層的架構(gòu)模式、一致性保障、與FE層之間的請(qǐng)求邏輯,數(shù)據(jù)傳輸邏輯等,我個(gè)人暫時(shí)沒(méi)有找到相應(yīng)的博客說(shuō)明這些的。當(dāng)然這些是我個(gè)人在學(xué)習(xí)與使用Doris過(guò)程中,對(duì)內(nèi)部交互邏輯與實(shí)現(xiàn)感興趣才有這些疑問(wèn). 還好現(xiàn)在有GPT這類(lèi)大模型,有了

    2024年02月05日
    瀏覽(30)
  • 分布式數(shù)據(jù)庫(kù)Apache Doris簡(jiǎn)易體驗(yàn)

    ???????????? 哈嘍!大家好,我是【IT邦德】,江湖人稱(chēng)jeames007,10余年DBA及大數(shù)據(jù)工作經(jīng)驗(yàn) 一位上進(jìn)心十足的【大數(shù)據(jù)領(lǐng)域博主】!?????? 中國(guó)DBA聯(lián)盟(ACDU)成員,目前服務(wù)于工業(yè)互聯(lián)網(wǎng) 擅長(zhǎng)主流Oracle、MySQL、PG、高斯及Greenplum運(yùn)維開(kāi)發(fā),備份恢復(fù),安裝遷移,性能優(yōu)

    2024年02月06日
    瀏覽(29)
  • 分布式數(shù)據(jù)庫(kù)Apache Doris HA集群部署

    ???????????? 哈嘍!大家好,我是【IT邦德】,江湖人稱(chēng)jeames007,10余年DBA及大數(shù)據(jù)工作經(jīng)驗(yàn) 一位上進(jìn)心十足的【大數(shù)據(jù)領(lǐng)域博主】!?????? 中國(guó)DBA聯(lián)盟(ACDU)成員,目前服務(wù)于工業(yè)互聯(lián)網(wǎng) 擅長(zhǎng)主流Oracle、MySQL、PG、高斯及Greenplum運(yùn)維開(kāi)發(fā),備份恢復(fù),安裝遷移,性能優(yōu)

    2024年02月06日
    瀏覽(23)
  • RisingWave分布式SQL流處理數(shù)據(jù)庫(kù)調(diào)研

    RisingWave是一款 分布式SQL流處理數(shù)據(jù)庫(kù) ,旨在幫助用戶降低實(shí)時(shí)應(yīng)用的的開(kāi)發(fā)成本。作為專(zhuān)為云上分布式流處理而設(shè)計(jì)的系統(tǒng),RisingWave為用戶提供了與PostgreSQL類(lèi)似的使用體驗(yàn),官方宣稱(chēng)具備比Flink高出10倍的性能(指throughput)以及更低的成本。RisingWave開(kāi)發(fā)只需要關(guān)注SQL開(kāi)發(fā)

    2024年02月21日
    瀏覽(25)
  • 解釋什么是分布式數(shù)據(jù)庫(kù),列舉幾種常見(jiàn)的分布式數(shù)據(jù)庫(kù)系統(tǒng)

    敏感信息和隱私保護(hù)是指在收集、存儲(chǔ)和使用個(gè)人數(shù)據(jù)時(shí),需要采取一系列措施來(lái)保護(hù)這些數(shù)據(jù)的安全和機(jī)密性,防止數(shù)據(jù)被未經(jīng)授權(quán)的第三方訪問(wèn)、使用或泄露。這些措施包括加密、訪問(wèn)控制、數(shù)據(jù)脫敏、數(shù)據(jù)加密、隱私政策等。 在隱私保護(hù)的技術(shù)手段方面,常用的技術(shù)包

    2024年02月08日
    瀏覽(32)
  • 分布式數(shù)據(jù)庫(kù)架構(gòu)

    分布式數(shù)據(jù)庫(kù)架構(gòu)

    對(duì)于mysql架構(gòu),一定會(huì)使用到讀寫(xiě)分離,在此基礎(chǔ)上有五種常見(jiàn)架構(gòu)設(shè)計(jì):一主一從或多從、主主復(fù)制、級(jí)聯(lián)復(fù)制、主主與級(jí)聯(lián)復(fù)制結(jié)合。 1.1、主從復(fù)制 這種架構(gòu)設(shè)計(jì)是使用的最多的。在讀寫(xiě)分離的基礎(chǔ)上,會(huì)存在一臺(tái)master作為寫(xiě)機(jī),一個(gè)或多個(gè)slave作為讀機(jī)。因?yàn)樵趯?shí)際的

    2024年02月10日
    瀏覽(32)
  • 分析型數(shù)據(jù)庫(kù):分布式分析型數(shù)據(jù)庫(kù)

    分析型數(shù)據(jù)庫(kù):分布式分析型數(shù)據(jù)庫(kù)

    分析型數(shù)據(jù)庫(kù)的另外一個(gè)發(fā)展方向就是以分布式技術(shù)來(lái)代替MPP的并行計(jì)算,一方面分布式技術(shù)比MPP有更好的可擴(kuò)展性,對(duì)底層的異構(gòu)軟硬件支持度更好,可以解決MPP數(shù)據(jù)庫(kù)的幾個(gè)關(guān)鍵架構(gòu)問(wèn)題。本文介紹分布式分析型數(shù)據(jù)庫(kù)。 — 背景介紹— 目前在分布式分析型數(shù)據(jù)庫(kù)領(lǐng)域,

    2023年04月14日
    瀏覽(52)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包