本文為您介紹什么是StarRocks,以及StarRocks的特性和應(yīng)用場景。

StarRocks介紹

  • StarRocks是新一代極速全場景MPP(Massively Parallel Processing)數(shù)據(jù)庫,致力于構(gòu)建極速和統(tǒng)一分析體驗。
  • StarRocks兼容MySQL協(xié)議,可使用MySQL客戶端和常用BI工具對接StarRocks來分析數(shù)據(jù)。
  • StarRocks采用分布式架構(gòu):
    • 對數(shù)據(jù)表進行水平劃分并以多副本存儲。
    • 集群規(guī)模可以靈活伸縮,支持10 PB級別的數(shù)據(jù)分析。
    • 支持MPP框架,并行加速計算。
    • 支持多副本,具有彈性容錯能力。
說明 本文部分內(nèi)容來源于開源StarRocks的什么是StarRocks

StarRocks特性

StarRocks的架構(gòu)設(shè)計融合了MPP數(shù)據(jù)庫,以及分布式系統(tǒng)的設(shè)計思想,其特性如下所示。

架構(gòu)精簡

  • StarRocks內(nèi)部通過MPP計算框架完成SQL的具體執(zhí)行工作。MPP框架能夠充分的利用多節(jié)點的計算能力,整個查詢可以并行執(zhí)行,從而實現(xiàn)良好的交互式分析體驗。
  • StarRocks集群不需要依賴任何其他組件,易部署、易維護和極簡的架構(gòu)設(shè)計,降低了StarRocks系統(tǒng)的復(fù)雜度和維護成本,同時也提升了系統(tǒng)的可靠性和擴展性。管理員只需要專注于StarRocks系統(tǒng),無需學(xué)習(xí)和管理任何其他外部系統(tǒng)。

全面向量化引擎

StarRocks的計算層全面采用了向量化技術(shù),將所有算子、函數(shù)、掃描過濾和導(dǎo)入導(dǎo)出模塊進行了系統(tǒng)性優(yōu)化。通過列式的內(nèi)存布局、適配CPU的SIMD指令集等手段,充分發(fā)揮了現(xiàn)代CPU的并行計算能力,從而實現(xiàn)亞秒級別的多維分析能力。

智能查詢優(yōu)化

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

聯(lián)邦查詢

StarRocks支持使用外表的方式進行聯(lián)邦查詢,當(dāng)前可以支持Hive、MySQL、Elasticsearch、Iceberg和Hudi類型的外表,您無需通過數(shù)據(jù)導(dǎo)入,可以直接進行數(shù)據(jù)查詢加速。

高效更新

StarRocks支持明細(xì)模型、聚合模型、主鍵模型和更新模型,其中主鍵模型可以按照主鍵進行Upsert或Delete操作,通過存儲和索引的優(yōu)化可以在并發(fā)更新的同時實現(xiàn)高效的查詢優(yōu)化,更好的服務(wù)實時數(shù)倉的場景。

智能物化視圖

  • StarRocks支持智能的物化視圖。您可以通過創(chuàng)建物化視圖,預(yù)先計算生成預(yù)聚合表用于加速聚合類查詢請求。
  • StarRocks的物化視圖能夠在數(shù)據(jù)導(dǎo)入時自動完成匯聚,與原始表數(shù)據(jù)保持一致。
  • 查詢的時候,您無需指定物化視圖,StarRocks能夠自動選擇最優(yōu)的物化視圖來滿足查詢請求。

標(biāo)準(zhǔn)SQL

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

流批一體

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

高可用易擴展

  • StarRocks的元數(shù)據(jù)和數(shù)據(jù)都是多副本存儲,并且集群中服務(wù)有熱備,多實例部署,避免了單點故障。
  • 集群具有自愈能力,可彈性恢復(fù),節(jié)點的宕機、下線和異常都不會影響StarRocks集群服務(wù)的整體穩(wěn)定性。
  • StarRocks采用分布式架構(gòu),存儲容量和計算能力可近乎線性水平擴展。StarRocks單集群的節(jié)點規(guī)模可擴展到數(shù)百節(jié)點,數(shù)據(jù)規(guī)模可達到10 PB級別。
  • 擴縮容期間無需停服,可以正常提供查詢服務(wù)。
  • StarRocks中表模式熱變更,可通過一條簡單SQL命令動態(tài)地修改表的定義,例如增加列、減少列和新建物化視圖等。同時,處于模式變更中的表也可以正常導(dǎo)入和查詢數(shù)據(jù)。

應(yīng)用場景

StarRocks可以滿足企業(yè)級用戶的多種分析需求,具體的業(yè)務(wù)場景如下所示:
  • OLAP多維分析
    • 用戶行為分析
    • 用戶畫像、標(biāo)簽分析、圈人
    • 高維業(yè)務(wù)指標(biāo)報表
    • 自助式報表平臺
    • 業(yè)務(wù)問題探查分析
    • 跨主題業(yè)務(wù)分析
    • 財務(wù)報表
    • 系統(tǒng)監(jiān)控分析
  • 實時數(shù)倉
    • 電商大促數(shù)據(jù)分析
    • 教育行業(yè)的直播質(zhì)量分析
    • 物流行業(yè)的運單分析
    • 金融行業(yè)績效分析、指標(biāo)計算
    • 廣告投放分析
    • 管理駕駛艙
    • 探針分析APM(Application Performance Management)
  • 高并發(fā)查詢
    • 廣告主報表分析
    • 零售行業(yè)渠道人員分析
    • SaaS行業(yè)面向用戶分析報表
    • Dashboard多頁面分析
  • 統(tǒng)一分析

    通過使用一套系統(tǒng)解決多維分析、高并發(fā)查詢、預(yù)計算、實時分析和Ad-Hoc查詢等場景,降低系統(tǒng)復(fù)雜度和多技術(shù)棧開發(fā)與維護成本。