前言:StarRocks原名DorisDB,是新一代極速全場景MPP數(shù)據(jù)庫。StarRocks 是 Apache Doris 的 Fork 版本。StarRocks 連接的多種源。一是通過這個(gè) CDC 或者說通過這個(gè) ETL 的方式去灌到這個(gè) StarRocks 里面;二是還可以去直接的和這些老的 kafka 或者是這種 TP 的數(shù)據(jù)庫或者這種 log 的話,直接可以進(jìn)行灌入;三是 External table 目前支持這種 hive 、es、 MySQL ,當(dāng)然這里邊還支持 hudi 和 Iceberg。
StarRocks官網(wǎng):https://docs.starrocks.io/zh/docs/introduction/StarRocks_intro/
一、StarRocks簡介
1.1、StarRocks定義
StarRocks 是一款高性能分析型數(shù)據(jù)倉庫,使用向量化、MPP 架構(gòu)、CBO、智能物化視圖、可實(shí)時(shí)更新的列式存儲(chǔ)引擎等技術(shù)實(shí)現(xiàn)多維、實(shí)時(shí)、高并發(fā)的數(shù)據(jù)分析。StarRocks 既支持從各類實(shí)時(shí)和離線的數(shù)據(jù)源高效導(dǎo)入數(shù)據(jù),也支持直接分析數(shù)據(jù)湖上各種格式的數(shù)據(jù)。StarRocks 兼容 MySQL 協(xié)議,可使用 MySQL 客戶端和常用 BI 工具對(duì)接。同時(shí) StarRocks 具備水平擴(kuò)展,高可用、高可靠、易運(yùn)維等特性。廣泛應(yīng)用于實(shí)時(shí)數(shù)倉、OLAP 報(bào)表、數(shù)據(jù)湖分析等場景。
在社區(qū)用戶與開發(fā)者的共同努力下,F(xiàn)link?CDC?于?2023?年?12?月?7?日重磅推出了其全新的?3.0?版本?,3.0?版本的發(fā)布對(duì) Flink CDC 而言具有里程碑式的意義,自此 Flink CDC 從捕獲數(shù)據(jù)變更的 Flink 數(shù)據(jù)源正式邁向?yàn)橐?Flink 為基礎(chǔ)的端到端流式 ELT 數(shù)據(jù)集成框架。在該版本中,社區(qū)首先支持實(shí)時(shí)同步 MySQL 數(shù)據(jù)至?Apache?Doris?和?StarRocks?兩條鏈路。
StarRocks 分為社區(qū)版和企業(yè)版,社區(qū)版為開源,企業(yè)版需付費(fèi)使用。社區(qū)版支持了大部分的功能,但不支持StarRocks Manager(可視化運(yùn)維監(jiān)控平臺(tái)),在數(shù)據(jù)庫管理上不太方便。
StarRocks 是新一代極速全場景 MPP (Massively Parallel Processing) 數(shù)據(jù)庫。StarRocks 的愿景是能夠讓用戶的數(shù)據(jù)分析變得更加簡單和敏捷。用戶無需經(jīng)過復(fù)雜的預(yù)處理,就可以用 StarRocks 來支持多種數(shù)據(jù)分析場景的極速分析。
StarRocks?架構(gòu)簡潔,采用了全面向量化引擎,并配備全新設(shè)計(jì)的 CBO (Cost Based Optimizer) 優(yōu)化器,查詢速度(尤其是多表關(guān)聯(lián)查詢)遠(yuǎn)超同類產(chǎn)品。
StarRocks 能很好地支持實(shí)時(shí)數(shù)據(jù)分析,并能實(shí)現(xiàn)對(duì)實(shí)時(shí)更新數(shù)據(jù)的高效查詢。StarRocks 還支持現(xiàn)代化物化視圖,進(jìn)一步加速查詢。
使用 StarRocks,用戶可以靈活構(gòu)建包括大寬表、星型模型、雪花模型在內(nèi)的各類模型。
StarRocks 兼容 MySQL 協(xié)議,支持標(biāo)準(zhǔn) SQL 語法,易于對(duì)接使用,全系統(tǒng)無外部依賴,高可用,易于運(yùn)維管理。StarRocks 還兼容多種主流 BI 產(chǎn)品,包括 Tableau、Power BI、FineBI 和 Smartbi。
1.2、新一代彈性 MPP 架構(gòu)
下圖是StarRocks 的架構(gòu),這個(gè)架構(gòu)就是有一個(gè) FE 和 BE ,而這個(gè) FE 有幾個(gè)模塊。第一個(gè)模塊就是 catter log 的一個(gè)模塊,就是他會(huì)存這個(gè)原數(shù)據(jù),然后他還有一個(gè) planner ,相當(dāng)于所有的 MySQL 的第一站全部打到 FE 里,然后 FE 進(jìn)行 SQL 的整個(gè)的解析,到最后的這個(gè)分布式的物理的 plan 的生成,然后都搞完之后真正的做整個(gè)的這個(gè)計(jì)算,是要在 BE 里去做計(jì)算的。
他整個(gè)的這個(gè)架構(gòu)是非常簡單的,就是說在 FE 目前是一個(gè)稍微老一些的,因?yàn)檫@個(gè)其實(shí)是從 Doris 演化過來的,所以這是一個(gè)當(dāng)時(shí) Doris 有的時(shí)候還沒有這個(gè) raft 的這種玩法,但是現(xiàn)在社區(qū) StarRocks 要慢慢的把 FE 改成這種基于 raft 的這種結(jié)構(gòu),它是目前現(xiàn)在是基于 Borken DB的,但是可以認(rèn)為跟 raft 也差不太多,他是幾臺(tái)高可用的 FE 再加上這種 BE 。 BE 實(shí)際上做的就是這種 Execution Engine 還有這種存儲(chǔ)引擎 storage engine 基本他就是這兩個(gè)大的模塊。實(shí)際上整個(gè)鏈路就是 MySQL 第一條打到查詢的時(shí)候打到 FE ,F(xiàn)E 再把這個(gè) SQL 文本翻譯成這個(gè)分布式的執(zhí)行計(jì)劃,分布式的執(zhí)行計(jì)劃的數(shù)據(jù)都是按這種 buget 的方式去存到 BE 里。這一個(gè)這張表或者說查的這些 SQL 都命中了哪些 tablet ,會(huì)把這個(gè)相應(yīng)的 SQL 的執(zhí)行引擎給他搞到這個(gè) BE 上,然后 BE 算完之后再回給 FE ,大概整個(gè)就是這么一個(gè)數(shù)據(jù)流。
1.3、StarRocks適用場景?
StarRocks 可以滿足企業(yè)級(jí)用戶的多種分析需求,包括 OLAP (Online Analytical Processing) 多維分析、定制報(bào)表、實(shí)時(shí)數(shù)據(jù)分析和 Ad-hoc 數(shù)據(jù)分析等。
(1)OLAP 多維分析?
利用 StarRocks 的 MPP 框架和向量化執(zhí)行引擎,用戶可以靈活的選擇雪花模型,星型模型,寬表模型或者預(yù)聚合模型。適用于靈活配置的多維分析報(bào)表,業(yè)務(wù)場景包括:
-
用戶行為分析
-
用戶畫像、標(biāo)簽分析、圈人
-
高維業(yè)務(wù)指標(biāo)報(bào)表
-
自助式報(bào)表平臺(tái)
-
業(yè)務(wù)問題探查分析
-
跨主題業(yè)務(wù)分析
-
財(cái)務(wù)報(bào)表
-
系統(tǒng)監(jiān)控分析
(2)實(shí)時(shí)數(shù)據(jù)倉庫?
StarRocks 設(shè)計(jì)和實(shí)現(xiàn)了 Primary-Key 模型,能夠?qū)崟r(shí)更新數(shù)據(jù)并極速查詢,可以秒級(jí)同步 TP (Transaction Processing) 數(shù)據(jù)庫的變化,構(gòu)建實(shí)時(shí)數(shù)倉,業(yè)務(wù)場景包括:
-
電商大促數(shù)據(jù)分析
-
物流行業(yè)的運(yùn)單分析
-
金融行業(yè)績效分析、指標(biāo)計(jì)算
-
直播質(zhì)量分析
-
廣告投放分析
-
管理駕駛艙
-
探針分析APM(Application Performance Management)
(3)高并發(fā)查詢?
StarRocks 通過良好的數(shù)據(jù)分布特性,靈活的索引以及物化視圖等特性,可以解決面向用戶側(cè)的分析場景,業(yè)務(wù)場景包括:
-
廣告主報(bào)表分析
-
零售行業(yè)渠道人員分析
-
SaaS 行業(yè)面向用戶分析報(bào)表
-
Dashboard 多頁面分析
(4)統(tǒng)一分析?
-
通過使用一套系統(tǒng)解決多維分析、高并發(fā)查詢、預(yù)計(jì)算、實(shí)時(shí)分析查詢等場景,降低系統(tǒng)復(fù)雜度和多技術(shù)棧開發(fā)與維護(hù)成本。
-
使用 StarRocks 統(tǒng)一管理數(shù)據(jù)湖和數(shù)據(jù)倉庫,將高并發(fā)和實(shí)時(shí)性要求很高的業(yè)務(wù)放在 StarRocks 中分析,也可以使用 External Catalog 和外部表進(jìn)行數(shù)據(jù)湖上的分析。
二、StarRocks特性
StarRocks的架構(gòu)設(shè)計(jì)融合了MPP數(shù)據(jù)庫,以及分布式系統(tǒng)的設(shè)計(jì)思想,具有以下特性:
架構(gòu)精簡
StarRocks內(nèi)部通過MPP計(jì)算框架完成SQL的具體執(zhí)行工作。MPP框架本身能夠充分的利用多節(jié)點(diǎn)的計(jì)算能力,整個(gè)查詢并行執(zhí)行,從而實(shí)現(xiàn)良好的交互式分析體驗(yàn)。 StarRocks集群不需要依賴任何其他組件,易部署、易維護(hù),極簡的架構(gòu)設(shè)計(jì),降低了StarRocks系統(tǒng)的復(fù)雜度和維護(hù)成本,同時(shí)也提升了系統(tǒng)的可靠性和擴(kuò)展性。
標(biāo)準(zhǔn)SQL
StarRocks支持標(biāo)準(zhǔn)的SQL語法,包括聚合、JOIN、排序、窗口函數(shù)和自定義函數(shù)等功能。StarRocks可以完整支持TPC-H的22個(gè)SQL和TPC-DS的99個(gè)SQL。StarRocks還兼容MySQL協(xié)議語法,可使用現(xiàn)有的各種客戶端工具、BI軟件訪問StarRocks,對(duì)StarRocks中的數(shù)據(jù)進(jìn)行拖拽式分析。
全面向量化引擎
StarRocks的計(jì)算層全面采用了向量化技術(shù),將所有算子、函數(shù)、掃描過濾和導(dǎo)入導(dǎo)出模塊進(jìn)行了系統(tǒng)性優(yōu)化。通過列式的內(nèi)存布局、適配CPU的SIMD指令集等手段,充分發(fā)揮了現(xiàn)代CPU的并行計(jì)算能力,從而實(shí)現(xiàn)亞秒級(jí)別的多維分析能力。
智能查詢優(yōu)化
StarRocks通過CBO優(yōu)化器(Cost Based Optimizer)可以對(duì)復(fù)雜查詢自動(dòng)優(yōu)化。無需人工干預(yù),就可以通過統(tǒng)計(jì)信息合理估算執(zhí)行成本,生成更優(yōu)的執(zhí)行計(jì)劃,大大提高了Adhoc和ETL場景的數(shù)據(jù)分析效率。
聯(lián)邦查詢
StarRocks支持使用外表的方式進(jìn)行聯(lián)邦查詢,當(dāng)前可以支持Hive、MySQL、Elasticsearch三種類型的外表,用戶無需通過數(shù)據(jù)導(dǎo)入,可以直接進(jìn)行數(shù)據(jù)查詢加速。
高效更新
StarRocks支持多種數(shù)據(jù)模型,其中更新模型可以按照主鍵進(jìn)行upsert/delete操作,通過存儲(chǔ)和索引的優(yōu)化可以在并發(fā)更新的同時(shí)實(shí)現(xiàn)高效的查詢優(yōu)化,更好的服務(wù)實(shí)時(shí)數(shù)倉的場景。
智能物化視圖
StarRocks支持智能的物化視圖。用戶可以通過創(chuàng)建物化視圖,預(yù)先計(jì)算生成預(yù)聚合表用于加速聚合類查詢請(qǐng)求。StarRocks的物化視圖能夠在數(shù)據(jù)導(dǎo)入時(shí)自動(dòng)完成匯聚,與原始表數(shù)據(jù)保持一致。并且在查詢的時(shí)候,用戶無需指定物化視圖,StarRocks能夠自動(dòng)選擇最優(yōu)的物化視圖來滿足查詢請(qǐng)求。
流批一體
StarRocks支持實(shí)時(shí)和批量兩種數(shù)據(jù)導(dǎo)入方式,支持的數(shù)據(jù)源有Kafka、HDFS、本地文件,支持的數(shù)據(jù)格式有ORC、Parquet和CSV等,StarRocks可以實(shí)時(shí)消費(fèi)Kafka數(shù)據(jù)來完成數(shù)據(jù)導(dǎo)入,保證數(shù)據(jù)不丟不重(exactly once)。StarRocks也可以從本地或者遠(yuǎn)程(HDFS)批量導(dǎo)入數(shù)據(jù)。
極簡運(yùn)維
StarRocks具有高可用易擴(kuò)展的特性,元數(shù)據(jù)和數(shù)據(jù)都是多副本存儲(chǔ),并且集群中服務(wù)有熱備,多實(shí)例部署,避免了單點(diǎn)故障。集群具有自愈能力,可彈性恢復(fù),節(jié)點(diǎn)的宕機(jī)、下線、異常都不會(huì)影響StarRocks集群服務(wù)的整體穩(wěn)定性。
StarRocks采用分布式架構(gòu),存儲(chǔ)容量和計(jì)算能力可近乎線性水平擴(kuò)展。StarRocks單集群的節(jié)點(diǎn)規(guī)??蓴U(kuò)展到數(shù)百節(jié)點(diǎn),數(shù)據(jù)規(guī)模可達(dá)到10PB級(jí)別。 擴(kuò)縮容期間無需停服,可以正常提供查詢服務(wù)。 另外StarRocks中表模式熱變更,可通過一條簡單SQL命令動(dòng)態(tài)地修改表的定義,例如增加列、減少列、新建物化視圖等。同時(shí),處于模式變更中的表也可也正常導(dǎo)入和查詢數(shù)據(jù)。
StarRocks是一個(gè)自治的系統(tǒng)。節(jié)點(diǎn)的上下線,集群擴(kuò)縮容都可通過一條簡單的SQL命令來完成。
三、StarRocks優(yōu)勢
極速SQL查詢
- 全新的向量化執(zhí)行引擎,亞秒級(jí)查詢延時(shí),單節(jié)點(diǎn)每秒可處理多達(dá)100億行數(shù)據(jù)。
- 強(qiáng)大的MPP執(zhí)行框架,支持星型模型和雪花模型,極致的Join性能。
- 綜合查詢速度比其他產(chǎn)品快10-100倍
- 查看性能測試報(bào)告
實(shí)時(shí)數(shù)據(jù)分析
- 新型列式存儲(chǔ)引擎,支持大規(guī)模數(shù)據(jù)實(shí)時(shí)寫入,秒級(jí)實(shí)時(shí)性保證。
- 支持業(yè)務(wù)指標(biāo)實(shí)時(shí)聚合,加速實(shí)時(shí)多維數(shù)據(jù)分析。
- 新型讀寫并發(fā)管理模式,可同時(shí)高效處理數(shù)據(jù)讀取和寫入。
高并發(fā)查詢
- 靈活的資源分配策略,每秒可支持高達(dá)1萬以上的并發(fā)查詢。
- 可高效支持?jǐn)?shù)千用戶同時(shí)進(jìn)行數(shù)據(jù)分析。
極簡運(yùn)維
- 支持在大數(shù)據(jù)規(guī)模下進(jìn)行在線彈性擴(kuò)展,擴(kuò)容不影響線上業(yè)務(wù)。集群可擴(kuò)展至數(shù)百節(jié)點(diǎn),PB量級(jí)數(shù)據(jù)。
集群運(yùn)行高度自治化,故障自恢復(fù),運(yùn)維成本低。
國產(chǎn)核心軟件
- 完全自主創(chuàng)新,全球領(lǐng)先。
- 更完善的本地化專家服務(wù)體系。
四、StarRocks VS ClickHouse
指標(biāo) | ClickHouse | StarRocks |
---|---|---|
MPP架構(gòu) | Scatter-Gather模式,聚合操作依賴單點(diǎn)完成,操作數(shù)據(jù)量大時(shí)有瓶頸 | 現(xiàn)代化MPP架構(gòu),可以實(shí)現(xiàn)多層聚合、大表Join |
架構(gòu) | 依賴ZooKeeper進(jìn)行DDL和Replica同步 | 內(nèi)置分布式協(xié)議進(jìn)行元數(shù)據(jù)同步Master/Follower/Observer節(jié)點(diǎn)類型 |
事務(wù)性 | 100萬以內(nèi)原子性,DDL無事務(wù)保證 | 事務(wù)保證數(shù)據(jù)ACID |
數(shù)據(jù)規(guī)模 | 單集群 < 10PB | 單集群 < 10PB |
標(biāo)準(zhǔn)SQL的支持 | 不支持標(biāo)準(zhǔn)的SQL語言 | 支持,兼容Mysql協(xié)議 |
分布式Join | 不支持Join,僅支持大寬表模式 | 支持主流分布式Join,不僅支持大寬表模型,還支持星型和雪花模型 |
高并發(fā)查詢 | 不支持高并發(fā) | 支持高并發(fā) |
外表 | 支持MySQL/Hive的表 | 外查MySQL/ES/Hive的表 |
Exactly Once語義 | 不支持事務(wù),無法保證數(shù)據(jù)寫入不丟不重 | 支持事務(wù),可實(shí)現(xiàn)數(shù)據(jù)不丟不重 |
集群擴(kuò)容 | 擴(kuò)容需人工操作,工作量巨大,且影響線上服務(wù) | 擴(kuò)容只需要遷移部分?jǐn)?shù)據(jù)分片,系統(tǒng)自動(dòng)完成,不影響線上服務(wù) |
運(yùn)維要求 | 依賴ZK,運(yùn)維和維護(hù)成本高 | 不依賴外部系統(tǒng),極簡運(yùn)維 |
參考鏈接:
Flink CDC 3.0 正式發(fā)布,詳細(xì)解讀新一代實(shí)時(shí)數(shù)據(jù)集成框架
什么是 StarRocks | StarRocks
StarRocks調(diào)研文章來源:http://www.zghlxwxcb.cn/news/detail-756319.html
開源大數(shù)據(jù) OLAP 引擎最佳實(shí)踐 | 學(xué)習(xí)筆記(二)-阿里云開發(fā)者社區(qū)文章來源地址http://www.zghlxwxcb.cn/news/detail-756319.html
到了這里,關(guān)于大數(shù)據(jù)技術(shù)8:StarRocks極速全場景MPP數(shù)據(jù)庫的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!