大數據技術8:StarRocks極速全場景MPP數據庫

前言:StarRocks原名DorisDB,是新一代極速全場景MPP數據庫。StarRocks 是 Apache Doris 的 Fork 版本。StarRocks 連接的多種源。一是通過這個 CDC 或者說通過這個 ETL 的方式去灌到這個 StarRocks 里面;二是還可以去直接的和這些老的 kafka 或者是這種 TP 的數據庫或者這種 log 的話,直接可以進行灌入;三是 External table 目前支持這種 hive 、es、 MySQL ,當然這里邊還支持 hudi 和 Iceberg

StarRocks官網:https://docs.starrocks.io/zh/docs/introduction/StarRocks_intro/


一、StarRocks簡介

1.1、StarRocks定義

StarRocks 是一款高性能分析型數據倉庫,使用向量化、MPP 架構、CBO、智能物化視圖、可實時更新的列式存儲引擎等技術實現多維、實時、高并發的數據分析。StarRocks 既支持從各類實時和離線的數據源高效導入數據,也支持直接分析數據湖上各種格式的數據。StarRocks 兼容 MySQL 協議,可使用 MySQL 客戶端和常用 BI 工具對接。同時 StarRocks 具備水平擴展,高可用、高可靠、易運維等特性。廣泛應用于實時數倉、OLAP 報表、數據湖分析等場景。

StarRocks 分為社區版和企業版,社區版為開源,企業版需付費使用。社區版支持了大部分的功能,但不支持StarRocks Manager(可視化運維監控平臺),在數據庫管理上不太方便。

StarRocks 是新一代極速全場景 MPP (Massively Parallel Processing) 數據庫。StarRocks 的愿景是能夠讓用戶的數據分析變得更加簡單和敏捷。用戶無需經過復雜的預處理,就可以用 StarRocks 來支持多種數據分析場景的極速分析。

StarRocks?架構簡潔,采用了全面向量化引擎,并配備全新設計的 CBO (Cost Based Optimizer) 優化器,查詢速度(尤其是多表關聯查詢)遠超同類產品

StarRocks 能很好地支持實時數據分析,并能實現對實時更新數據的高效查詢。StarRocks 還支持現代化物化視圖,進一步加速查詢。

使用 StarRocks,用戶可以靈活構建包括大寬表、星型模型、雪花模型在內的各類模型。

StarRocks 兼容 MySQL 協議,支持標準 SQL 語法,易于對接使用,全系統無外部依賴,高可用,易于運維管理。StarRocks 還兼容多種主流 BI 產品,包括 Tableau、Power BI、FineBI 和 Smartbi。

1.2、新一代彈性 MPP 架構

下圖是StarRocks 的架構,這個架構就是有一個 FE 和 BE ,而這個 FE 有幾個模塊。第一個模塊就是 catter log 的一個模塊,就是他會存這個原數據,然后他還有一個 planner ,相當于所有的 MySQL 的第一站全部打到 FE 里,然后 FE 進行 SQL 的整個的解析,到最后的這個分布式的物理的 plan 的生成,然后都搞完之后真正的做整個的這個計算,是要在 BE 里去做計算的。

他整個的這個架構是非常簡單的,就是說在 FE 目前是一個稍微老一些的,因為這個其實是從 Doris 演化過來的,所以這是一個當時 Doris 有的時候還沒有這個 raft 的這種玩法,但是現在社區 StarRocks 要慢慢的把 FE 改成這種基于 raft 的這種結構,它是目前現在是基于 Borken DB的,但是可以認為跟 raft 也差不太多,他是幾臺高可用的 FE 再加上這種 BE 。 BE 實際上做的就是這種 Execution Engine 還有這種存儲引擎 storage engine 基本他就是這兩個大的模塊。實際上整個鏈路就是 MySQL 第一條打到查詢的時候打到 FE ,FE 再把這個 SQL 文本翻譯成這個分布式的執行計劃,分布式的執行計劃的數據都是按這種 buget 的方式去存到 BE 里。這一個這張表或者說查的這些 SQL 都命中了哪些 tablet ,會把這個相應的 SQL 的執行引擎給他搞到這個 BE 上,然后 BE 算完之后再回給 FE ,大概整個就是這么一個數據流。

1.3、StarRocks適用場景?

StarRocks 可以滿足企業級用戶的多種分析需求,包括 OLAP (Online Analytical Processing) 多維分析、定制報表、實時數據分析和 Ad-hoc 數據分析等。

(1)OLAP 多維分析?

利用 StarRocks 的 MPP 框架和向量化執行引擎,用戶可以靈活的選擇雪花模型,星型模型,寬表模型或者預聚合模型。適用于靈活配置的多維分析報表,業務場景包括:

  • 用戶行為分析

  • 用戶畫像、標簽分析、圈人

  • 高維業務指標報表

  • 自助式報表平臺

  • 業務問題探查分析

  • 跨主題業務分析

  • 財務報表

  • 系統監控分析

(2)實時數據倉庫?

StarRocks 設計和實現了 Primary-Key 模型,能夠實時更新數據并極速查詢,可以秒級同步 TP (Transaction Processing) 數據庫的變化,構建實時數倉,業務場景包括:

  • 電商大促數據分析

  • 物流行業的運單分析

  • 金融行業績效分析、指標計算

  • 直播質量分析

  • 廣告投放分析

  • 管理駕駛艙

  • 探針分析APM(Application Performance Management)

(3)高并發查詢?

StarRocks 通過良好的數據分布特性,靈活的索引以及物化視圖等特性,可以解決面向用戶側的分析場景,業務場景包括:

  • 廣告主報表分析

  • 零售行業渠道人員分析

  • SaaS 行業面向用戶分析報表

  • Dashboard 多頁面分析

(4)統一分析?

  • 通過使用一套系統解決多維分析、高并發查詢、預計算、實時分析查詢等場景,降低系統復雜度和多技術棧開發與維護成本。

  • 使用 StarRocks 統一管理數據湖和數據倉庫,將高并發和實時性要求很高的業務放在 StarRocks 中分析,也可以使用 External Catalog 和外部表進行數據湖上的分析。


二、StarRocks特性

StarRocks的架構設計融合了MPP數據庫,以及分布式系統的設計思想,具有以下特性:

架構精簡

StarRocks內部通過MPP計算框架完成SQL的具體執行工作。MPP框架本身能夠充分的利用多節點的計算能力,整個查詢并行執行,從而實現良好的交互式分析體驗。 StarRocks集群不需要依賴任何其他組件,易部署、易維護,極簡的架構設計,降低了StarRocks系統的復雜度和維護成本,同時也提升了系統的可靠性和擴展性。

標準SQL

StarRocks支持標準的SQL語法,包括聚合、JOIN、排序、窗口函數和自定義函數等功能。StarRocks可以完整支持TPC-H的22個SQL和TPC-DS的99個SQL。StarRocks還兼容MySQL協議語法,可使用現有的各種客戶端工具、BI軟件訪問StarRocks,對StarRocks中的數據進行拖拽式分析。

全面向量化引擎

StarRocks的計算層全面采用了向量化技術,將所有算子、函數、掃描過濾和導入導出模塊進行了系統性優化。通過列式的內存布局、適配CPU的SIMD指令集等手段,充分發揮了現代CPU的并行計算能力,從而實現亞秒級別的多維分析能力。

智能查詢優化

StarRocks通過CBO優化器(Cost Based Optimizer)可以對復雜查詢自動優化。無需人工干預,就可以通過統計信息合理估算執行成本,生成更優的執行計劃,大大提高了Adhoc和ETL場景的數據分析效率。

聯邦查詢

StarRocks支持使用外表的方式進行聯邦查詢,當前可以支持Hive、MySQL、Elasticsearch三種類型的外表,用戶無需通過數據導入,可以直接進行數據查詢加速。

高效更新

StarRocks支持多種數據模型,其中更新模型可以按照主鍵進行upsert/delete操作,通過存儲和索引的優化可以在并發更新的同時實現高效的查詢優化,更好的服務實時數倉的場景。

智能物化視圖

StarRocks支持智能的物化視圖。用戶可以通過創建物化視圖,預先計算生成預聚合表用于加速聚合類查詢請求。StarRocks的物化視圖能夠在數據導入時自動完成匯聚,與原始表數據保持一致。并且在查詢的時候,用戶無需指定物化視圖,StarRocks能夠自動選擇最優的物化視圖來滿足查詢請求。

流批一體

StarRocks支持實時和批量兩種數據導入方式,支持的數據源有Kafka、HDFS、本地文件,支持的數據格式有ORC、Parquet和CSV等,StarRocks可以實時消費Kafka數據來完成數據導入,保證數據不丟不重(exactly once)。StarRocks也可以從本地或者遠程(HDFS)批量導入數據。

極簡運維

StarRocks具有高可用易擴展的特性,元數據和數據都是多副本存儲,并且集群中服務有熱備,多實例部署,避免了單點故障。集群具有自愈能力,可彈性恢復,節點的宕機、下線、異常都不會影響StarRocks集群服務的整體穩定性。

StarRocks采用分布式架構,存儲容量和計算能力可近乎線性水平擴展。StarRocks單集群的節點規模可擴展到數百節點,數據規模可達到10PB級別。 擴縮容期間無需停服,可以正常提供查詢服務。 另外StarRocks中表模式熱變更,可通過一條簡單SQL命令動態地修改表的定義,例如增加列、減少列、新建物化視圖等。同時,處于模式變更中的表也可也正常導入和查詢數據。

StarRocks是一個自治的系統。節點的上下線,集群擴縮容都可通過一條簡單的SQL命令來完成。


三、StarRocks優勢

極速SQL查詢

  • 全新的向量化執行引擎,亞秒級查詢延時,單節點每秒可處理多達100億行數據。
  • 強大的MPP執行框架,支持星型模型和雪花模型,極致的Join性能
  • 綜合查詢速度比其他產品快10-100倍
  • 查看性能測試報告

實時數據分析

  • 新型列式存儲引擎,支持大規模數據實時寫入,秒級實時性保證。
  • 支持業務指標實時聚合,加速實時多維數據分析。
  • 新型讀寫并發管理模式,可同時高效處理數據讀取和寫入。

高并發查詢

  • 靈活的資源分配策略,每秒可支持高達1萬以上的并發查詢。
  • 可高效支持數千用戶同時進行數據分析。

極簡運維

  • 支持在大數據規模下進行在線彈性擴展,擴容不影響線上業務。集群可擴展至數百節點,PB量級數據。
    集群運行高度自治化,故障自恢復,運維成本低。

國產核心軟件

  • 完全自主創新,全球領先。
  • 更完善的本地化專家服務體系。

四、StarRocks VS ClickHouse

指標ClickHouseStarRocks
MPP架構Scatter-Gather模式,聚合操作依賴單點完成,操作數據量大時有瓶頸現代化MPP架構,可以實現多層聚合、大表Join
架構依賴ZooKeeper進行DDL和Replica同步內置分布式協議進行元數據同步Master/Follower/Observer節點類型
事務性100萬以內原子性,DDL無事務保證事務保證數據ACID
數據規模單集群 < 10PB單集群 < 10PB
標準SQL的支持不支持標準的SQL語言支持,兼容Mysql協議
分布式Join不支持Join,僅支持大寬表模式支持主流分布式Join,不僅支持大寬表模型,還支持星型和雪花模型
高并發查詢不支持高并發支持高并發
外表支持MySQL/Hive的表外查MySQL/ES/Hive的表
Exactly Once語義不支持事務,無法保證數據寫入不丟不重支持事務,可實現數據不丟不重
集群擴容擴容需人工操作,工作量巨大,且影響線上服務擴容只需要遷移部分數據分片,系統自動完成,不影響線上服務
運維要求依賴ZK,運維和維護成本高不依賴外部系統,極簡運維

參考鏈接:

什么是 StarRocks | StarRocks

StarRocks調研

開源大數據 OLAP 引擎最佳實踐 | 學習筆記(二)-阿里云開發者社區

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/212782.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/212782.shtml
英文地址,請注明出處:http://en.pswp.cn/news/212782.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

阿里云服務器跨域問題解決方案

首先看一下原始代碼&#xff1a; Bean public CorsFilter corsFilter() {UrlBasedCorsConfigurationSource source new UrlBasedCorsConfigurationSource();CorsConfiguration corsConfiguration new CorsConfiguration();corsConfiguration.addAllowedOrigin("http://…

spark rdd和dataframe的區別,結合底層邏輯

在 Apache Spark 中&#xff0c;RDD&#xff08;Resilient Distributed Dataset&#xff09;和 DataFrame 是處理數據的兩種不同的抽象。 RDD (Resilient Distributed Dataset) 底層實現&#xff1a; RDD 是 Spark 最初的數據抽象&#xff0c;表示一個分布式的、不可變的數據集…

03-詳解Nacos注冊中心的配置步驟和功能

Nacos注冊中心 服務注冊到Nacos Nacos是SpringCloudAlibaba的組件也遵循SpringCloud中定義的服務注冊和服務發現規范,因此使用Nacos與使用Eureka對于微服務來說并沒有太大區別 主要差異就是依賴不同,服務地址不同 第一步: 在父工程cloud-demo模塊的pom.xml文件中引入Spring…

nlkt中BigramAssocMeasures.pmi()方法的傳參和使用

這個問題找遍全網沒看到詳細的介紹&#xff0c;最后用讀代碼數學公式的方法才理解怎么用。 BigramAssocMeasures.pmi 作用&#xff1a;計算x和y的互信息&#xff08;互信息是什么我就不科普啦&#xff09; 這里有個誤區剛開始我以為是計算兩個詞之間的依賴程度&#xff0c;但…

flstudio21.3.2304高級版水果編曲音樂軟件

flstudio高級版是一款適用于廣泛領域的音頻編輯軟件。它支持多通道混音器和VST插件&#xff0c;包括數百種樂器和效果插件。它還為您提供了一個樂譜編輯器&#xff0c;需要對不同樂器的節奏進行必要的編輯。Flstudio具有許多內置電子合成聲音&#xff0c;可提供更廣泛的電子聲音…

自動駕駛的汽車構造

1、傳動系統 連接發動機和驅動車輪之間的動力傳動裝置&#xff0c;分為傳統動力傳動、純電動力傳動、混合動力傳動 傳動系統中幾個重要的部件 1&#xff09;離合器 直接與發動機相連的部件&#xff0c;通過摩擦、液體介質、磁力傳遞扭矩 作用&#xff1a; 保證平穩起步&a…

【Spring教程25】Spring框架實戰:從零開始學習SpringMVC 之 SpringMVC入門案例總結與SpringMVC工作流程分析

目錄 1.入門案例總結2. 入門案例工作流程分析2.1 啟動服務器初始化過程2.2 單次請求過程 歡迎大家回到《Java教程之Spring30天快速入門》&#xff0c;本教程所有示例均基于Maven實現&#xff0c;如果您對Maven還很陌生&#xff0c;請移步本人的博文《如何在windows11下安裝Mave…

Spring 面向切面編程(AOP)

一、aop介紹 &#xff08;一&#xff09;前言 一般的后端開發流程是縱向開發&#xff0c;就是controller&#xff08;控制層&#xff09;->service&#xff08;業務層&#xff09;->mapper&#xff08;數據持久層&#xff09;&#xff0c;Spring采用動態代理技術可以在…

Wireshark添加自定義協議解析

最終效果如下&#xff1a; 參考文檔&#xff1a;https://mika-s.github.io/topics/ 此參考文檔中7個例子教我們如何編寫lua腳本去識別我們自定義的協議 安裝Wireshark https://www.wireshark.org/上下載安裝包安裝即可。我的安裝路徑是D:\Install\Wireshark&#xff0c;在W…

Leetcode—389.找不同【簡單】

2023每日刷題&#xff08;五十五&#xff09; Leetcode—389.找不同 實現代碼 char findTheDifference(char* s, char* t) {int len strlen(s);int len2 len 1;int a[26] {0};int b[26] {0};if(len 0) {return t[0];}for(int i 0; i < len; i) {int idx s[i] - a;…

HTML的img常見應用屬性

1、src&#xff1a;指定圖像的URL&#xff0c;即圖像的路徑。 2、alt&#xff1a;指定圖像的替代文本&#xff0c;當圖像無法顯示時&#xff0c;會顯示替代文本。 3、width&#xff1a;指定圖像的寬度&#xff0c;可以使用像素值或百分比。 4、height&#xff1a;指定圖像的…

【設計模式--創建型--建造者模式】

建造者模式 建造者模式概述結構結果優缺點使用場景 將上述案例改為鏈式調用結果 建造者模式 概述 將一個復雜對象的構建與表示分離&#xff0c;使得同樣的構建過程可以創建不同的表示。 分離了部件的構建&#xff08;由Builder來負責&#xff09;和裝配&#xff08;由Direct…

辦公word-從不是第一頁添加頁碼

總結 實際需要注意的是&#xff0c;分隔符、分節符和分頁符并不是一個含義 分隔符包含其他兩個&#xff1b;分頁符&#xff1a;是增加一頁&#xff1b;分節符&#xff1a;指將文檔分為幾部分。 從不是第一頁插入頁碼1步驟 1&#xff0c;插入默認頁碼 自己可以測試時通過**…

win11 powershell conda 激活環境后不顯示環境名稱

win11 powershell conda 激活環境后不顯示環境名稱 問題現象解決方法 問題現象 安裝 Anaconda 后在 powershell 中激活環境后&#xff0c;命令行前面不顯示環境名稱 解決方法 在 powershell 中執行 conda init 重新打開 poweshell 出現以下問題&#xff0c;請參考 win11 p…

華為OD機試真題-5G網絡建設-2023年OD統一考試(C卷)

題目描述: 現需要在某城市進行5G網絡建設,已經選取N個地點設置5G基站,編號固定為1到N,接下來需要各個基站之間使用光纖進行連接以確保基站能互聯互通,不同基站之間架設光纖的成本各不相同,且有些節點之間已經存在光纖相連,請你設計算法,計算出能聯通這些基站的最小成本…

HarmonyOS鴻蒙應用開發——HTTP網絡訪問與封裝

文章目錄 基本使用封裝參考 基本使用 鴻蒙應用發起HTTP請求的基本使用&#xff0c;如下&#xff1a; 導入http模塊創建httpRequest對象發起http請求&#xff0c;并處理響應結果 第一、導入http模塊&#xff1a; import http from ohos.net.http第二、創建httpRequest對象&a…

二分查找|滑動窗口|前綴和|LeetCode209: 長度最小的子數組

長度最短的子數組 作者推薦 【動態規劃】【廣度優先】LeetCode2258:逃離火災 本文涉及的基礎知識點 二分查找算法合集 C算法&#xff1a;前綴和、前綴乘積、前綴異或的原理、源碼及測試用例 包括課程視頻 滑動窗口 題目 給定一個含有 n 個正整數的數組和一個正整數 target…

facebook回傳

1、引入依賴 首先引入依賴&#xff0c;這里我使用API v14.0&#xff1a; <dependency><groupId>com.facebook.business.sdk</groupId><artifactId>facebook-java-business-sdk</artifactId><version>14.0.0</version></dependen…

在IDEA中創建Maven項目時沒有src文件、不自動配置文件

錯誤示例&#xff1a; 沒有src文件&#xff0c;并且沒有自動下載相關的配置文件 對我這中情況無效的解決辦法&#xff1a; ①配置好下列圖中圈出來的文件 ②在VM選項中輸入&#xff1a;“-DarchetypeInternal” ③點擊應用&#xff0c;再點擊確定 ④還是不行 解決辦法&#x…

GridBagLayout GridBagConstraints 筆記231130

實例化使用模板 GridBagLayout gbl new GridBagLayout(); // gbl.columnWidths new int[]{200,200,200}; // 用數組設置列 // gbl.rowHeights new int[]{100,100,100,100,100}; // 用數組設置行GridBagConstraints gbc new GridBagConstraints();/*** gridBagConstrain…