Doris框架
大規(guī)模并行處理的分析型數(shù)據(jù)庫(kù)產(chǎn)品。使用場(chǎng)景:一般先將原始數(shù)據(jù)經(jīng)過(guò)清洗過(guò)濾轉(zhuǎn)換后,再導(dǎo)入doris中使用。主要實(shí)現(xiàn)的功能有:
- 實(shí)時(shí)看板
- 面向企業(yè)內(nèi)部分析師和管理者的報(bào)表
- 面向用戶或者客戶的高并發(fā)報(bào)表分析
- 即席查詢
- 統(tǒng)一數(shù)倉(cāng)構(gòu)建:替換了原來(lái)由Spark, Hive,Kudu, Hbase等舊框架
- 數(shù)據(jù)湖聯(lián)邦查詢:通過(guò)外表的方式聯(lián)邦分析位于Hive,IceBerg,Hudi中的數(shù)據(jù)
Doris架構(gòu)
- 后端:C語(yǔ)言編寫的,用于數(shù)據(jù)查詢
- 前端:Leader, Follower, Oberserver
部署注意事項(xiàng)
- 磁盤空間按用戶總數(shù)據(jù)量x3副本計(jì)算,然后再預(yù)留額外40%的空間。
- 所有部署節(jié)點(diǎn)關(guān)閉swap
- FE節(jié)點(diǎn)數(shù)據(jù)至少為1。一個(gè)Follower和一個(gè)Observer時(shí),可以實(shí)現(xiàn)高可用
參數(shù)修改
- 最大同時(shí)打開文件個(gè)數(shù)
- 設(shè)置最大虛擬塊,sudo reboot重啟后生效
- 根據(jù)自己需求下載對(duì)應(yīng)的安裝包,如果是蘋果電腦下載arm包,否則選擇x64. https://doris.apache.org/download/
- 解壓安裝fe, be,以及其他依賴,也就是下載的安裝包里面的三個(gè)文件。
- 由于虛擬機(jī)有多張網(wǎng)卡,因此需要修改對(duì)應(yīng)的網(wǎng)段信息,和NAT模式里面的網(wǎng)段對(duì)應(yīng)。
- 如果參數(shù)配置錯(cuò)誤,導(dǎo)致無(wú)法成功啟動(dòng),直接刪掉已經(jīng)安裝的文件,直接重新解壓。
配置BE
- 修改web_server的端口號(hào),改為7040
- 修改網(wǎng)段地址為NAT的網(wǎng)段
- 添加單臺(tái)后端BE
ALTER SYSTEM ADD BACKEND "hadoop102:9050";
-
/opt/module/doris/be/bin/start_be.sh --daemon
啟動(dòng)后端 -
SHOW PROC '/backends'\G
查看后端狀態(tài)
BE后臺(tái)節(jié)點(diǎn)變更
- 建議直接分發(fā)BE壓縮包,因?yàn)镈oris解壓?jiǎn)?dòng)后就會(huì)產(chǎn)生底層數(shù)據(jù),直接使用新的壓縮包擴(kuò)容會(huì)更為方便。在MySQL客戶端,通過(guò)
ALTER SYSTEM ADD BACKEND
- 減少節(jié)點(diǎn)時(shí)需要先移動(dòng)數(shù)據(jù),然后再刪除。
ALTER SYSTEM DECOMMISSION BACKEND "be_host:be_heartbeat_service_port";
FE節(jié)點(diǎn)的變更
- 分發(fā)fe文件,注意刪除元數(shù)據(jù)。hadoop102 發(fā)過(guò)來(lái)的元數(shù)據(jù)
rm -rf /opt/module/doris/fe/doris-meta/*
- 啟動(dòng)FE:
/opt/module/doris/fe/bin/start_fe.sh --daemon --helper hadoop102:9010
- 查看FE狀態(tài):
show proc '/frontends';
- FE的縮容:
ALTER SYSTEM DROP FOLLOWER[OBSERVER] "fe_host:edit_log_port";
群?jiǎn)⑷宏P(guān)腳本
- 創(chuàng)建腳本為doris.sh
#!/bin/bash
case $1 in
"start")
for host in hadoop102 hadoop103 hadoop104 ; do
echo "========== 在 $host 上啟動(dòng) fe ========="
ssh $host "source /etc/profile; /opt/module/doris/fe/bin/start_fe.sh --daemon"
done
for host in hadoop102 hadoop103 hadoop104 ; do
echo "========== 在 $host 上啟動(dòng) be ========="
ssh $host "source /etc/profile; /opt/module/doris/be/bin/start_be.sh --daemon"
done
;;
"stop")
for host in hadoop102 hadoop103 hadoop104 ; do
echo "========== 在 $host 上停止 fe ========="
ssh $host "source /etc/profile; /opt/module/doris/fe/bin/stop_fe.sh "
done
for host in hadoop102 hadoop103 hadoop104 ; do
echo "========== 在 $host 上停止 be ========="
ssh $host "source /etc/profile; /opt/module/doris/be/bin/stop_be.sh "
done
;;
*)
echo "你啟動(dòng)的姿勢(shì)不對(duì)"
echo " start 啟動(dòng)doris集群"
echo " stop 停止stop集群"
;;
esac
- chmod +x doris.sh 添加腳本執(zhí)行權(quán)限
數(shù)據(jù)表設(shè)計(jì)
- row: 用戶的一行數(shù)據(jù)
- column:描述一行數(shù)據(jù)中的不同字段
- key: 維度列
- value:指標(biāo)列
- 分區(qū)分片
- Tablet:數(shù)據(jù)分片,數(shù)據(jù)劃分的最小邏輯單元
- Partition:最小的管理單元,數(shù)據(jù)的導(dǎo)入與刪除,都只能針對(duì)一個(gè)partition進(jìn)行
- 數(shù)據(jù)模型
- Aggregate聚合模型
- 一般用來(lái)存放事實(shí)表
- 副本數(shù)不能高于be的個(gè)數(shù)
- 沒有冪等性,如果sum求和,多次插入同樣數(shù)據(jù)時(shí),結(jié)果會(huì)加起來(lái)
- Unique唯一性模型
- 使用unique key(k1, k2)來(lái)保證key的唯一
- 底層其實(shí)也是使用聚合模型,非主鍵使用replace關(guān)鍵字
- Duplicate重復(fù)模型
- 一般用于收集日志
- 數(shù)據(jù)會(huì)自動(dòng)排序
- Aggregate聚合模型
建表語(yǔ)法
- olap是默認(rèn)引擎,字段可以設(shè)置引擎,如果是其他的引擎,就表示遠(yuǎn)程連接其他數(shù)據(jù)庫(kù)
- 盡量選擇整型類型,整型長(zhǎng)度遵循夠用即可
- 分區(qū)方式,如果不分區(qū)時(shí),會(huì)默認(rèn)創(chuàng)建一個(gè)跟表名一致的分區(qū)
- range分區(qū),一般按照天數(shù)劃分。一般使用value less than 的方式來(lái)指定上界,區(qū)間都是左閉右開的
- list分區(qū),一般按照城市劃分。使用value in(一般是城市名稱列表)
- 分桶:分桶字段一般是join時(shí)使用的關(guān)鍵字字段。建議桶的個(gè)數(shù)等于離線時(shí)劃分的個(gè)數(shù)。一般為10~20.
- propertities屬性
- 副本數(shù)
- 設(shè)定到期時(shí)間,到期后作為冷數(shù)據(jù)放到機(jī)械硬盤
動(dòng)態(tài)分區(qū)
動(dòng)態(tài)分區(qū)只支持Range分區(qū),動(dòng)態(tài)分區(qū)功能啟動(dòng)時(shí),F(xiàn)E會(huì)啟動(dòng)一個(gè)后臺(tái)進(jìn)程,根據(jù)用戶指定的規(guī)則創(chuàng)建或刪除分區(qū)。
- 查看分區(qū)詳情:
show partition from 表名
- 如果分區(qū)不存在,則無(wú)法插入數(shù)據(jù)。并且會(huì)報(bào)錯(cuò)
no partition for this tuple
上卷
- desc 表名 all :查詢表格的全部信息
- 上卷類似MR中的預(yù)聚合,提前創(chuàng)建好要查詢的指標(biāo)。后期查詢?cè)摂?shù)據(jù)時(shí),直接返回即可。也可以對(duì)于部分?jǐn)?shù)據(jù)做排序。
物化視圖
預(yù)先計(jì)算定義好的數(shù)據(jù)集,存儲(chǔ)在Doris中的一個(gè)特殊的表。加快對(duì)固定維度進(jìn)行分析查詢。
- 適用場(chǎng)景:
- 查詢僅涉及表中的很小一部分列或行
- 查詢包含一些耗時(shí)處理操作,比如,事件很久的聚合操作
- 查詢需要匹配不同的前綴索引
- 使用
-
創(chuàng)建物化視圖
-
檢查物化視圖是否構(gòu)建完成
desc sales_records all;
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-770222.html -
檢驗(yàn)當(dāng)前查詢是否匹配到了合適的物化視圖
EXPLAIN SELECT store_id, sum(sale_amt) FROM sales_records GROUP BY store_id;
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-770222.html
-
create materialized view store_amt as
select
store_id,
sum(sale_amt)
from sales_records
group by store_id;
到了這里,關(guān)于Flink實(shí)時(shí)電商數(shù)倉(cāng)之Doris框架(七)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!