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

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

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

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

圖片圖片

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

Doris 介紹

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

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

Doris的架構非常簡潔,易于運維,并且可以支持10PB以上的超大數據集

特性

圖片圖片

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

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

圖片圖片

架構

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

圖片圖片

Frontend(FE)

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

圖片圖片

Leader、follower和 observer它們三個構成一個可靠的服務,保證單節點宕機的情況下,元數據能夠實時地在線恢復,而不影響整個服務,與zookeeper角色一樣。

Backend(BE)

BE主要負責數據存儲、查詢計劃的執行。

  • BE管理tablet副本, tablet是table經過分區分桶形成的子表, 采用列式存儲。
  • BE受FE指導, 創建或刪除子表。
  • BE接收FE分發的物理執行計劃與其他BE共同協作完成執行。
  • BE讀本地的列存儲引擎, 獲取數據, 通過索引和謂詞下沉快速過濾數據。
  • BE后臺執行compact任務, 減少查詢時的讀放大。

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

OLAP對比

在我們解決大數據查詢分析時,也調研了比較知名的一些產品,下面是一個對比

圖片圖片

TIDB

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

ClickHouse

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

Doris

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

性能測試報告

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

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

測試1

圖片圖片

6億數據進行多表查詢,響應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數據量:148399619,67 個字段

ods_test_mysql_test_barrier_s數據量:1385,12個字段

執行以下 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 '[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領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 '[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領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 '[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領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數據,響應時間: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 '[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領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 '[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領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 '[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領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下線測試

測試結果

成功,所有操作符合預期

測試過程

登錄172.17.0.5 服務器殺掉FE節點

圖片圖片

查看FE節點狀態是否正常, 登錄172.17.0.3服務器查看狀態,執行以下命令

SHOW PROC '/frontends';

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

圖片圖片

執行插入數據操作,可以看到執行成功。

圖片圖片

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

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

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

圖片圖片

修復缺失或損壞副本

測試結果

成功,所有操作符合預期

測試過程

1.執行如下命令看到分區10099的副本損壞,需要對它進行恢復創建空白副本

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

圖片圖片

2.登錄master fe

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

3.查看數據副本狀態

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

圖片圖片

4.恢復設置

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

系統Down機重啟副本測試

測試結果

成功,所有操作符合預期

測試過程

1.停止0.5服務

2.查詢副本狀態

ADMIN SHOW REPLICA STATUS FROM table4;

圖片

3.重啟服務,副本狀態恢復正常

圖片 圖片

責任編輯:武曉燕 來源: 架構成長指南
相關推薦

2022-04-08 07:52:00

架構多機房多活

2019-10-29 15:00:26

12306架構高并發

2022-03-28 07:15:56

Unsafe框架工具

2020-07-20 07:55:53

微信支付架構

2020-11-20 09:23:01

高可用異地淘寶

2016-09-22 16:47:55

iOSAndroidWindows Pho

2014-06-27 10:28:51

GoogleIO大會數字

2022-09-23 08:47:01

DMA網卡CPU

2021-02-01 10:26:29

數據安全MVP機密計算

2024-10-15 09:48:56

2018-04-16 11:34:59

2022-07-11 08:33:51

容器技術Docker

2018-06-26 14:29:44

LinuxUnix不同

2021-02-02 07:37:39

NextTickvueDOM

2022-03-28 18:08:50

通信網絡綠色通信節能減排

2019-10-14 10:29:42

Java消息隊列

2009-06-15 18:20:27

2024-02-26 07:36:09

lockJava語言

2022-09-14 09:45:15

指標標簽

2012-07-25 15:45:28

ERPSCM
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲国产精品久久久久秋霞不卡 | 色毛片| 日韩有码一区二区三区 | 亚洲精品久久久一区二区三区 | 午夜91| 午夜成人免费视频 | 亚洲久久在线 | 另类专区亚洲 | 最新中文字幕在线播放 | 日本 欧美 国产 | 天天操天天天干 | 成人av免费在线观看 | 在线观看中文字幕亚洲 | 人人玩人人添人人澡欧美 | 日韩欧美精品一区 | 国产一级片久久久 | 99国产精品99久久久久久 | 国产亚洲精品久久午夜玫瑰园 | 国产男女猛烈无遮掩视频免费网站 | 99久久婷婷国产综合精品首页 | 国产成人综合av | 99久久婷婷国产综合精品 | 中文字幕二区三区 | 亚洲风情在线观看 | 色视频网站在线观看 | 亚洲日韩中文字幕 | 欧美一区免费在线观看 | 三级免费毛片 | 久久综合久久综合久久 | www.久久久.com | 天天躁日日躁狠狠的躁天龙影院 | 国产999精品久久久 日本视频一区二区三区 | 福利精品在线观看 | 欧美日韩中文字幕在线 | 欧美 日韩 综合 | 国产精品久久久久久一区二区三区 | 91精品国产综合久久久久久丝袜 | 久草网址 | 91视在线国内在线播放酒店 | 在线免费观看欧美 | 亚洲精品免费视频 |