成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Doris到底有多牛,為什么大廠都在使用它?

開發(fā) 架構(gòu)
Apache Doris源于百度2008年啟動的產(chǎn)品Palo在2018年捐獻給Apache基金會,是一個基于 MPP 架構(gòu)的高性能、實時的分析型數(shù)據(jù)庫,它非常簡單易用,而且性能還不錯,僅需亞秒級響應(yīng)時間即可獲得查詢結(jié)果,不僅支持高并發(fā)的查詢場景,也可以支持高吞吐的復(fù)雜分析場景,比如你可以基于它做用戶行為分析、日志檢索平臺、用戶畫像分析、訂單分析等應(yīng)用。

今天給各位分享一個非常牛的實時分析型數(shù)據(jù)庫Apache Doris,幾乎國內(nèi)的一二線大廠都在使用它做數(shù)據(jù)分析,如下圖,這只是一小部分

圖片圖片

同時我司也在使用它,它目前支撐了我們億級業(yè)務(wù)數(shù)據(jù)的多維實時查詢分析,而且性能很不錯

Doris 介紹

官方地址:https://doris.apache.org/

Apache Doris源于百度2008年啟動的產(chǎn)品Palo在2018年捐獻給Apache基金會,是一個基于 MPP 架構(gòu)的高性能、實時的分析型數(shù)據(jù)庫,它非常簡單易用,而且性能還不錯,僅需亞秒級響應(yīng)時間即可獲得查詢結(jié)果,不僅支持高并發(fā)的查詢場景,也可以支持高吞吐的復(fù)雜分析場景,比如你可以基于它做用戶行為分析、日志檢索平臺、用戶畫像分析、訂單分析等應(yīng)用。

Doris的架構(gòu)非常簡潔,易于運維,并且可以支持10PB以上的超大數(shù)據(jù)集

特性

圖片圖片

這里特性很多,但是如果沒接觸過大數(shù)據(jù)的同學(xué),可能不是特別了解,但是注意這個特性,支持SQL 語言,兼容MySQL,比如:通過Mybatis 寫好 sql,就可以調(diào)用查詢,而且它能支持億級數(shù)據(jù)檢索響應(yīng),以前想分庫分表,現(xiàn)在有了它可以考慮還有必要嗎,但是這里要注意下,它是一個 OLAP 引擎與 OLTP還是有點區(qū)別,如果業(yè)務(wù)場景,新增多后期更新少,同時查詢場景多,那么可以在 mysql 中保存一段時間的熱點數(shù)據(jù),來進行相關(guān)業(yè)務(wù)操作,而報表查詢都走Doris

這里可能有些人員不懂什么是 OLAP,下面是一個OLAP與OLTP對比圖

圖片圖片

架構(gòu)

Doirs只有兩個主進程模塊。一個是 Frontend(FE),另一個是Backend(BE)

圖片圖片

Frontend(FE)

主要負責(zé)用戶請求的接入、查詢計劃的解析、元數(shù)據(jù)的存儲和集群管理相關(guān)工作, Doris采用Paxos協(xié)議以及Memory + Checkpoint + Journal的機制來確保元數(shù)據(jù)的高性能及高可靠。

圖片圖片

Leader、follower和 observer它們?nèi)齻€構(gòu)成一個可靠的服務(wù),保證單節(jié)點宕機的情況下,元數(shù)據(jù)能夠?qū)崟r地在線恢復(fù),而不影響整個服務(wù),與zookeeper角色一樣。

Backend(BE)

BE主要負責(zé)數(shù)據(jù)存儲、查詢計劃的執(zhí)行。

  • BE管理tablet副本, tablet是table經(jīng)過分區(qū)分桶形成的子表, 采用列式存儲。
  • BE受FE指導(dǎo), 創(chuàng)建或刪除子表。
  • BE接收FE分發(fā)的物理執(zhí)行計劃與其他BE共同協(xié)作完成執(zhí)行。
  • BE讀本地的列存儲引擎, 獲取數(shù)據(jù), 通過索引和謂詞下沉快速過濾數(shù)據(jù)。
  • BE后臺執(zhí)行compact任務(wù), 減少查詢時的讀放大。

以上FE和 BE支持動態(tài)彈性擴容,而且在擴容過程中對應(yīng)用無影響,同時Doris 不依賴zk、hdfs等,所以架構(gòu)很簡單,這種架構(gòu)設(shè)計極大的簡化了運維成本,其實一個好的產(chǎn)品就應(yīng)該這樣,把復(fù)雜留給自己,把簡單留給用戶

OLAP對比

在我們解決大數(shù)據(jù)查詢分析時,也調(diào)研了比較知名的一些產(chǎn)品,下面是一個對比

圖片圖片

TIDB

TIDB 是一個非常優(yōu)秀的國產(chǎn)分布式數(shù)據(jù)庫,他的主要優(yōu)勢OLTP處理上,但是也支持OLAP,但是在我們調(diào)研過程中,抱著使用一個TIDB 完全替代掉Mysql 想法,我們進行了測試,我們使用的版本是v5.3.3,但是在測試過程中效果不理想,因為 TIDB 解析引擎會對SQL進行分析,來決定走 OLTP 還是OLAP,比如我們期望走OLAP 但是走了OLTP導(dǎo)致性能有所降低

ClickHouse

提到 Doris 不得不提ClickHouse,CK是由俄羅斯IT公司Yandex為Yandex.Metrica網(wǎng)絡(luò)分析服務(wù)開發(fā)的開發(fā)的實時數(shù)倉,以性能著稱,但是經(jīng)過測試,與 Doris在不同場景各有優(yōu)劣,  但是它的架構(gòu)復(fù)雜、運維成本高,同時對 sql 語法兼容性沒有Doris好,因此沒有選擇,不過國內(nèi)也有不少公司在使用

Doris

運維成本低、兼容Mysql 語法、架構(gòu)足夠簡單、社區(qū)支持性好(非常活躍),同時經(jīng)過百度內(nèi)部長達10 多年的大規(guī)模使用,成熟度不容置疑,沒有理由不選它

性能測試報告

Doris 版本:0.15.0,目前最新版本是:2.03

  • 1 FE + 3 BE 獨立部署
  • CPU:8core 16G Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz
  • 內(nèi)存:16GB
  • 硬盤:1塊機械硬盤
  • 網(wǎng)卡:萬兆網(wǎng)卡

測試1

圖片圖片

6億數(shù)據(jù)進行多表查詢,響應(yīng)1.98s

SELECT SUM(lo_revenue), d_year, p_brand FROM lineorder, date, part, supplier WHERE lo_orderdate = d_datekey AND lo_partkey = p_partkey AND lo_suppkey = s_suppkey AND p_category = 'MFGR#12' AND s_region = 'AMERICA' GROUP BY d_year, p_brand ORDER BY d_year, p_brand;

圖片圖片

測試2

ods_test_mysql_test_record_s數(shù)據(jù)量:148399619,67 個字段

ods_test_mysql_test_barrier_s數(shù)據(jù)量:1385,12個字段

執(zhí)行以下 sql,耗時:0.277s

SELECT
    i.a1 AS p_code,
    IFNULL(IFNULL(i.a56, b.a2), '0') AS gateway_no,
    1 AS inout_type,
    DATE_FORMAT(i.a2, '%Y-%m-%d') AS report_date,
    DATE_FORMAT(i.a2, '%Y') AS report_year,
    DATE_FORMAT(i.a2, '%c') AS report_month,
    1 AS total_num,
    (CASE WHEN i.a6 = 1 THEN 1 ELSE 0 END) AS big_car_num,
    (CASE WHEN i.a6 != 1 THEN 1 ELSE 0 END) AS small_car_num,
    (CASE WHEN i.a44 REGEXP '[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領(lǐng)A-Z]{1}[A-Z]{1}(([0-9]{5}[DABCEFGHJK])|([DABCEFGHJK][A-HJ-NP-Z0-9][0-9]{4}))$' THEN 1 ELSE 0 END) AS new_power_car_num,
    (CASE WHEN i.a61 = 2 OR i.a61 = 3 THEN 1 ELSE 0 END) AS reserve_num,
    (CASE WHEN i.a61 = 1 THEN 1 ELSE 0 END) AS white_list_num,
    (CASE WHEN i.a6 = 1 AND (i.a61 = 2 OR i.a61 = 3) THEN 1 ELSE 0 END) AS big_car_reserve_num,
    (CASE WHEN i.a6 = 1 AND i.a61 = 1 THEN 1 ELSE 0 END) AS big_car_white_list_num,
    (CASE WHEN i.a6 != 1 AND (i.a61 = 2 OR i.a61 = 3) THEN 1 ELSE 0 END) AS small_car_reserve_num,
    (CASE WHEN i.a6 != 1 AND i.a61 = 1 THEN 1 ELSE 0 END) AS small_car_white_list_num,
    (CASE WHEN (i.a61 = 2 OR i.a61 = 3) AND i.a44 REGEXP '[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領(lǐng)A-Z]{1}[A-Z]{1}(([0-9]{5}[DABCEFGHJK])|([DABCEFGHJK][A-HJ-NP-Z0-9][0-9]{4}))$' THEN 1 ELSE 0 END) AS new_power_reserve_num,
    (CASE WHEN i.a61 = 1 AND i.a44 REGEXP '[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領(lǐng)A-Z]{1}[A-Z]{1}(([0-9]{5}[DABCEFGHJK])|([DABCEFGHJK][A-HJ-NP-Z0-9][0-9]{4}))$' THEN 1 ELSE 0 END) AS new_power_white_list_num,
    CURRENT_TIMESTAMP() AS update_time
FROM
    ods_test_mysql_test_record_s i
    LEFT JOIN ods_test_mysql_test_barrier_s b ON i.a22 = b.a1
WHERE
    i.a67 = 0
    AND i.a1 = '100280023213'
    AND i.a2 < '2021-11-20 00:00:00'
    AND (
        i.a2 BETWEEN DATE_FORMAT(i.a2, '%Y-%m-%d 00:00:00') AND FROM_UNIXTIME(UNIX_TIMESTAMP(DATE_FORMAT(i.a2, '%Y-%m-%d 00:00:00')) + 90000, '%Y-%m-%d %H:%i:%s')
    )
LIMIT 1000;

圖片圖片

測試3

只查詢小于2022-12-30 00:00:00數(shù)據(jù),響應(yīng)時間:0.241s

SELECT
    i.a1 AS p_code,
    IFNULL(IFNULL(i.a56, b.a2), '0') AS gateway_no,
    1 AS inout_type,
    DATE_FORMAT(i.a2, '%Y-%m-%d') AS report_date,
    DATE_FORMAT(i.a2, '%Y') AS report_year,
    DATE_FORMAT(i.a2, '%c') AS report_month,
    1 AS total_num,
    (CASE WHEN i.a6 = 1 THEN 1 ELSE 0 END) AS big_car_num,
    (CASE WHEN i.a6 != 1 THEN 1 ELSE 0 END) AS small_car_num,
    (CASE WHEN i.a44 REGEXP '[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領(lǐng)A-Z]{1}[A-Z]{1}(([0-9]{5}[DABCEFGHJK])|([DABCEFGHJK][A-HJ-NP-Z0-9][0-9]{4}))$' THEN 1 ELSE 0 END) AS new_power_car_num,
    (CASE WHEN i.a61 = 2 OR i.a61 = 3 THEN 1 ELSE 0 END) AS reserve_num,
    (CASE WHEN i.a61 = 1 THEN 1 ELSE 0 END) AS white_list_num,
    (CASE WHEN i.a6 = 1 AND (i.a61 = 2 OR i.a61 = 3) THEN 1 ELSE 0 END) AS big_car_reserve_num,
    (CASE WHEN i.a6 = 1 AND i.a61 = 1 THEN 1 ELSE 0 END) AS big_car_white_list_num,
    (CASE WHEN i.a6 != 1 AND (i.a61 = 2 OR i.a61 = 3) THEN 1 ELSE 0 END) AS small_car_reserve_num,
    (CASE WHEN i.a6 != 1 AND i.a61 = 1 THEN 1 ELSE 0 END) AS small_car_white_list_num,
    (CASE WHEN (i.a61 = 2 OR i.a61 = 3) AND i.a44 REGEXP '[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領(lǐng)A-Z]{1}[A-Z]{1}(([0-9]{5}[DABCEFGHJK])|([DABCEFGHJK][A-HJ-NP-Z0-9][0-9]{4}))$' THEN 1 ELSE 0 END) AS new_power_reserve_num,
    (CASE WHEN i.a61 = 1 AND i.a44 REGEXP '[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領(lǐng)A-Z]{1}[A-Z]{1}(([0-9]{5}[DABCEFGHJK])|([DABCEFGHJK][A-HJ-NP-Z0-9][0-9]{4}))$' THEN 1 ELSE 0 END) AS new_power_white_list_num,
    CURRENT_TIMESTAMP() AS update_time
FROM
    ods_test_mysql_test_record_s i
    LEFT JOIN ods_test_mysql_test_barrier_s b ON i.a22 = b.a1
WHERE i.a2 < '2022-12-30 00:00:00' LIMIT 10000;

圖片圖片

測試 4

最新官方性能測試報告:https://doris.apache.org/zh-CN/docs/benchmark/ssb/

高可用測試

如下圖FE3臺組建一個高可用集群,分別為:

  • 172.17.0.3   FOLLOWER
  • 172.17.0.4  FOLLOWER
  • 172.17.0.5  MASTER

圖片圖片

下面對會對常見一些異常場景進行測試驗證,以下部分測試案例

MASTER下線測試

測試結(jié)果

成功,所有操作符合預(yù)期

測試過程

登錄172.17.0.5 服務(wù)器殺掉FE節(jié)點

圖片圖片

查看FE節(jié)點狀態(tài)是否正常, 登錄172.17.0.3服務(wù)器查看狀態(tài),執(zhí)行以下命令

SHOW PROC '/frontends';

可以看到172.17.0.4成為了master,而172.17.0.5顯示已經(jīng)不在線了 Alive=false

圖片圖片

執(zhí)行插入數(shù)據(jù)操作,可以看到執(zhí)行成功。

圖片圖片

啟動172.17.0.5,查看是否能加入集群

sh /root/fe/bin/start_fe.sh 172.17.0.3:9010 --daemon

通過日志可以看到啟動成功,并成為了FOLLOWER節(jié)點

圖片圖片

修復(fù)缺失或損壞副本

測試結(jié)果

成功,所有操作符合預(yù)期

測試過程

1.執(zhí)行如下命令看到分區(qū)10099的副本損壞,需要對它進行恢復(fù)創(chuàng)建空白副本

ADMIN SHOW REPLICA STATUS FROM table2 PARTITION (p201706, p201707,p201708);

圖片圖片

2.登錄master fe

ADMIN SET FRONTEND CONFIG ("recover_with_empty_tablet" = "true");

3.查看數(shù)據(jù)副本狀態(tài)

ADMIN SHOW REPLICA STATUS FROM table2 PARTITION (p201706, p201707,p201708);

圖片圖片

4.恢復(fù)設(shè)置

ADMIN SET FRONTEND CONFIG ("recover_with_empty_tablet" = "false");

系統(tǒng)Down機重啟副本測試

測試結(jié)果

成功,所有操作符合預(yù)期

測試過程

1.停止0.5服務(wù)

2.查詢副本狀態(tài)

ADMIN SHOW REPLICA STATUS FROM table4;

圖片

3.重啟服務(wù),副本狀態(tài)恢復(fù)正常

圖片 圖片

責(zé)任編輯:武曉燕 來源: 架構(gòu)成長指南
相關(guān)推薦

2022-04-08 07:52:00

架構(gòu)多機房多活

2019-10-29 15:00:26

12306架構(gòu)高并發(fā)

2022-03-28 07:15:56

Unsafe框架工具

2020-07-20 07:55:53

微信支付架構(gòu)

2020-11-20 09:23:01

高可用異地淘寶

2016-09-22 16:47:55

iOSAndroidWindows Pho

2022-09-23 08:47:01

DMA網(wǎng)卡CPU

2014-06-27 10:28:51

GoogleIO大會數(shù)字

2021-02-01 10:26:29

數(shù)據(jù)安全MVP機密計算

2024-10-15 09:48:56

2022-07-11 08:33:51

容器技術(shù)Docker

2018-04-16 11:34:59

2021-02-02 07:37:39

NextTickvueDOM

2018-06-26 14:29:44

LinuxUnix不同

2009-06-15 18:20:27

2019-10-14 10:29:42

Java消息隊列

2022-03-28 18:08:50

通信網(wǎng)絡(luò)綠色通信節(jié)能減排

2019-10-14 10:09:33

Wi-Fi 6Wi-Fi無線網(wǎng)絡(luò)

2021-09-06 10:45:18

XDRMDR

2022-09-14 09:45:15

指標(biāo)標(biāo)簽
點贊
收藏

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

主站蜘蛛池模板: 国产偷久久一级精品60部 | 黄色成人在线网站 | 看av片网站| 欧美极品一区二区 | 亚洲精品乱码久久久久久按摩观 | 青青草国产在线观看 | 欧美日韩亚洲国产综合 | 麻豆av在线 | 蜜臀久久99精品久久久久久宅男 | 91精品久久久久久久久 | 91在线免费视频 | 成人在线一区二区三区 | 亚洲精品久久久久久久久久久 | 国产美女一区二区 | 一级黄色片日本 | www.日韩 | 成人午夜av | 91精品国产高清一区二区三区 | 日韩av一区在线观看 | 国产欧美精品区一区二区三区 | 午夜免费观看 | 国产一区不卡 | 色偷偷人人澡人人爽人人模 | 国产激情视频在线观看 | 一区二区三区视频在线 | 国产成人一区二区三区 | 一区二区三区精品在线 | 久久久久久久久国产精品 | 日本一二三区在线观看 | 久久人人网 | 精品视频99 | 精品伊人| 日韩爱爱网站 | 国内精品视频在线观看 | 国产精品a久久久久 | 亚洲香蕉在线视频 | 激情一区二区三区 | 日本精品一区二区三区视频 | 亚洲精品久久久久久一区二区 | 国产精品色婷婷久久58 | 成人一区在线观看 |