天天看點

從 Apache Doris 到 SelectDB:下一代雲原生實時數倉的演進

作者:DataFunTalk

導讀 本次分享的題目是從 Apache Doris 到 SelectDB,從開源數倉走向下一代雲原生數倉的演進之路。分享内容首先介紹 Apache Doris,然後分析在雲時代下資料分析需求有什麼樣變化,為何要做 SelectDB,SelectDB 是怎樣一個下一代雲原生數倉。

全文目錄如下:

1. Apache Doris 的基本介紹

2. 雲原生時代的資料分析需求

3. 下一代雲原生實時數倉的演進之路

分享嘉賓|肖康 SelectDB 聯合創始人兼技術 VP

編輯整理|範雯蕾 香港科技大學

出品社群|DataFun

01

Apache Doris 介紹

首先簡單介紹下 Apache Doris,一個基于 MPP 架構的高性能、實時的分析型資料庫。

其特點主要有幾方面:性能突出,通過向量化執行引擎以及一系列查詢優化技術實作極緻性能;簡單易用,支援标準 SQL 并且相容 MySQL 協定;運維簡易,分布式叢集管理及部署和維護相對其他更加簡單;高并發點查詢方面效果較好,通過分區、分桶、裁剪,通過一些 bitmap 索引可以加快高并發點查。

這些年 Doris 也在不斷發展,在多元報表、即席查詢、使用者畫像、實時大屏、日志分析、湖倉加速場景得到很多應用。

Doris 曆史最早可以追溯到百度鳳巢的廣告報表詳細,經過多年的發展,在 2022 年 6 月從 Apache 基金會畢業,正式成為 Apache 頂級項目。社群發展活躍,聚集了來自不同行業近百家企業的超 500 位貢獻者,每月有近 150 位活躍貢獻者,已經成長為全球大資料與資料庫領域最活躍的開源項目之一。

目前已有全球 2000 家企業在生産中使用,在網際網路公司例如百度、美團、小米、京東、位元組跳動、騰訊、快手、網易、微網誌、新浪、360 等。在一些傳統的比如制造業、金融、能源有不少應用。Doris 在各大公司廣泛活躍地使用,在使用過程中會發現很多問題和改進思路,回報到開源社群。在這裡歡迎大家使用 Doris,在使用過程中把問題和想法提供到 Doris 社群,一起把中國人開源的數倉項目建設好。

從 Apache Doris 到 SelectDB:下一代雲原生實時數倉的演進

Doris 的定位是易用、極速、實時、統一的湖倉分析引擎。不同資料源通過 ETL 導入進入 Doris 引擎中去——其中包括實時 Flink、Spark 和新式 DBT,把資料內建到統一的 Doris 數倉中。Doris 還能和 Iceberg、Hudi 這樣的資料湖進行關聯,進行湖倉加速。這樣統一的引擎提供像報表、BI 分析、聯邦查詢等這樣的能力。

從 Apache Doris 到 SelectDB:下一代雲原生實時數倉的演進

從業務使用角度,Doris 在技術上有個特點是簡單易用。從使用角度來看,Doris 支援标準 SQL 并且相容 MySQL 協定,一些 MySQL 用戶端工具例如 DBeaver 或 BI 工具例如 Superset 、Metabase 等都可以無縫接入 Doris,這大大簡化了作為業務使用者的門檻。對于常見的各種資料源和資料內建工具,Doris 都提供了開箱即用的對接能力,包括 Flink、Spark、Kafka 等,進一步實作了對海量資料的存儲與分析。

從技術架構運維的角度,Doris 部署簡單,分為 FE、BE 兩類程序,無 Zookeeper 等外部依賴。線上擴縮容(增加/減少機器)、自動副本修複都自動完成,無需手動擋運維。

從 Apache Doris 到 SelectDB:下一代雲原生實時數倉的演進

除此之外 Doris 在系統方面優越,采用列式存儲并具有豐富的索引結構,在資料分析場景可以大幅減少資料掃描,提升查詢性能表現。在資料模型方面,Doris 支援三種資料模型——Aggregate key 聚合模型提供資料預聚合的能力,Unique key 主鍵模型在主鍵查詢以及行級别資料更新上有更好的支援,而 duplicate key 明細模型可以存儲明細資料、保證最細粒度的資料洞察。除此以外,Doris 還提供了強一緻的物化視圖,可以加速相對固定的分析場景,且物化視圖完全不需人工處理、系統自動路由至最優的視圖。

從 Apache Doris 到 SelectDB:下一代雲原生實時數倉的演進
從 Apache Doris 到 SelectDB:下一代雲原生實時數倉的演進

查詢引擎方面,Doris 實作了向量化執行引擎,結合自身分布式的 MPP 查詢架構,在多表 Join 場景相對業界産品具有更佳的表現。查詢優化器方面,Doris 目前具備基于規則和基于代價的優化器,同時這部分能力仍在持續進化中。

從 Apache Doris 到 SelectDB:下一代雲原生實時數倉的演進

實時性方面,Doris 保證資料實時性導入,高并發微批可以将資料實時性處理保證到很好,在更新和删除時要保證資料強一緻性,同時資料導入過程中,Doris 提供了端到端的 Exactly-only 語義,保證資料不丢不重。

--

02

雲原生時代的資料分析需求

從 Apache Doris 到 SelectDB:下一代雲原生實時數倉的演進

首先看下目前常見的資料分析技術棧。資料存儲在不同的資料源中,通過資料采集和預處理導入數倉中,之後滿足不同業務需求建設比如數倉、資料湖、大資料平台等配合相應業務場景需求,在面對不同場景時可能會引入多個系統元件,整體架構複雜度較高。

從 Apache Doris 到 SelectDB:下一代雲原生實時數倉的演進

縱觀大資料系統的發展演進過程,移動網際網路時代帶來了資料量的暴增,而從 2006 年起 Hadoop 的誕生解決了海量資料的分析與處理。而随着資料處理分析需求的進一步發展,大資料技術棧百花齊放,新的技術不斷出現,其中包括 Kafka、Pulsar 等消息系統以及 Spark、Flink 等流或批處理引擎,OLAP 方向更是有衆多的優秀産品出現,例如 SQL on Hadoop 的 Impala、Kylin 以及 OLAP 資料庫例如 Doris、Druid、Clickhouse、Greenplum 等,使用者可能會選擇多個元件來處理不同場景的問題。随着技術的進一步演進,降本增效成為行業趨勢,開發者越來越希望統一架構,減少多個系統的運維壓力、降低不同系統的學習成本。而随之雲時代的發展,将大資料架構建構在雲之上成為一種新的選擇。

在新一輪技術背景下,原有架構呈現複雜度比較高,維護和使用都比較複雜,勢必涉及資料多份存儲和多份處理,成本效益低。靈活性差,數倉支援結構化資料的分析與處理,但對半結構化和非結構化資料沒有高效支援。

作為現代資料棧的核心,資料分析技術已經呈現出三大變革趨勢,即實時化、統一化與雲原生化。

實時化:千或萬級高并發、毫秒級低延遲、高吞吐、走向分鐘級的資料産出效率成為了資料分析技術的關鍵詞。統一化:湖倉一體、在離線一體、流批一體等智能湖倉的理念加速了平台和接口的統一;計算模型的融合、多模資料類型支援進一步提高存儲計算的效能,降低運維門檻。雲原生化:資料倉庫結合雲的軟硬體創新、資源彈性、安全可靠、随需而用等雲原生特色,從根本上帶給使用者極緻成本效益和極簡使用體驗。技術和産品創新的本質是契合廣大使用者的訴求和新技術的演進趨勢,SelectDB 就是在這樣的時代背景下應運而生,引領最新的數倉技術和産品創新。

--

03

雲原生時代實時數倉演進之路

SelectDB 核心架構是雲原生數倉,也是目前國内首個真正實作多雲中立的雲原生實時數倉。

SelectDB 采取存儲計算分離的架構, 以對象存儲為主存儲,提供高度可擴充、成本效益極高的模式,在此之上提供共享緩存加速資料寫入和查詢、確定可用性和查詢加速。緩存基礎上不同業務建立不同 cluster,cluster 之間互相隔離,保證業務之間的性能與穩定。

從 Apache Doris 到 SelectDB:下一代雲原生實時數倉的演進

--

04

SelectDB 核心功能

在這樣架構之下 SelectDB Cloud 有幾個特點。極緻性能、融合統一、簡單易用、高成本效益、開源開放,核心完全基于 Apache Doris 打造,能與 Doris 保持完美相容,同時還提供了衆多企業特性來滿足更多樣的管控和安全需求。接下來詳細介紹這 6 個特點。

從 Apache Doris 到 SelectDB:下一代雲原生實時數倉的演進

1. 極緻性能

首先是極緻性能。依托列式存儲引擎、現代的 MPP 架構、向量化查詢引擎、預聚合物化視圖、資料索引、查詢優化器的實作,SelectDB 在高并發低延遲和高吞吐查詢上, 都達到了極速性能。2022 年 10 月,在 Clickhouse 發起的 ClickBench 資料庫性能排行榜中,SelectDB 多項名額排名前列,性能業界領先。在 C6A 這一通用機型上,以大幅超越業界同類産品的性能表現取得了第一名的成績,并一直保持到至今。其中如左圖所見,在全部 40 多個 query 中近半數查詢結果最佳,查詢總耗時遠低于行業排行前列的其他産品。

從 Apache Doris 到 SelectDB:下一代雲原生實時數倉的演進

2. 融合統一

作為一款雲數倉,希望在雲上為各類業務場景提供統一的分析體驗:

從 Apache Doris 到 SelectDB:下一代雲原生實時數倉的演進

具體表現是混合負載,可以去同時支撐多種分析 Workload,包括高并發報表、湖倉聯邦分析、即席查詢、統一數倉、ETL 及其他各種負載等。而這在雲數倉中更容易實作,因為雲數倉共享底層的存儲和緩存,可以為不同業務負載建立不同的 cluster,cluster 之間天然隔離,不同 cluster 可以通過不同配置和模型的使用,得到不同使用負載的體驗。這比以往通過大的叢集支援多個業務可以得到更好的使用體驗。

從 Apache Doris 到 SelectDB:下一代雲原生實時數倉的演進

第二種是結構化、非結構化和半結構化資料的融合。數倉或大資料中面臨的非結構化、半結構化資料越來越多,而 SelectDB 高效原生地支援了半結構化資料的高效存儲和檢索分析,在半結構化資料的靈活高效存儲方面,支援了Array、JSONB、Map 等複合資料類型,支援靈活快速的 schame 變更,最重要的是支援動态 schema 表,可以自動識别資料的字段和類型、自動擴充新字段、動态擴充表結構 。在半結構化資料高效分析和處理方面,支援包含反向索引、BKD 索引、N-Gram 等豐富的索引結構來加速檢索分析,支援向量化的字元串處理和比對函數 。

從 Apache Doris 到 SelectDB:下一代雲原生實時數倉的演進

3. 特點是簡單易用

SelectDB 仍然保持 MySQL 協定相容,支援标準 SQL 文法,在雲的控制台上提供基于 WebUI 的資料庫管理和開發工具。無需安裝部署,一鍵建立叢集;無需複雜參數設定,極簡運維管理;提供了多種資料導入方式,友善資料快速入庫。對 Spark,Flink,Kafka 以及新式資料處理工具 DBT 提供很好的支援。

4. 高成本效益

SelectDB 架構在雲上,存儲按量使用按量付費,計算按需彈性。多 cluster 之間通過調用共享資料,使得同一份資料消除備援。通過和雲計算基礎設施進行深度适配,依托領先的存算分離架構設計,滿足計算資源和存儲資源的彈性伸縮,提供了極高的成本效益。

5. 開源開放

SelectDB 是基于開源 Apache Doris 進行建構的,與其完全相容。SelectDB 提供與 Apache Doris 之間的高效資料互相遷移工具,并且與 Apache Doris 的使用高度相容,確定了企業随時可以在 SelectDB 服務與自主搭建的 Apache Doris 互相切換

同時 SelectDB 可以運作于 AWS、阿裡雲、騰訊雲、華為雲上,在多雲上提供雲上的一緻體驗,且雲的場合清單還在不斷擴大。

從 Apache Doris 到 SelectDB:下一代雲原生實時數倉的演進

6. 企業特性

在資料安全方面,提供完備的權限管控、資料加密和備份恢複機制;在運維管理方面,提供對數倉服務全面的可觀測性名額收集和可視化管理;在技術支援方面,擁有完善的工單管理系統和遠端協助平台,提供多種級别的專家支援服務。

從 Apache Doris 到 SelectDB:下一代雲原生實時數倉的演進
從 Apache Doris 到 SelectDB:下一代雲原生實時數倉的演進

--

05

SelectDB Cloud 應用場景

從 Apache Doris 到 SelectDB:下一代雲原生實時數倉的演進

SelectDB 支援多種資料分析場景,并提供了基于四大場景的解決方案:提供面向廣告主的線上報表平台、使用者畫像與行為分析、湖倉一體的現代資料平台以及日志存儲與分析平台。在此我們重點介紹其中的湖倉一體分析和日志存儲分析這兩大解決方案。

1. 湖倉一體的現代化分析平台

從 Apache Doris 到 SelectDB:下一代雲原生實時數倉的演進

目前企業普遍使用典型的湖倉并行架構方案,既有面向批量的多個元件、也有面向互動分析的多個元件,甚至不止一個湖一個倉。這樣的資料平台解決方案存在的問題主要集中在複雜性高、成本效益低、實時性差。采用了 SelectDB 的現代化資料平台方案将統一資料倉庫和資料湖到單一平台,提供面向企業内部的 BI 報表和 Adhoc 分析,以及批量和增量 ETL 資料處理。它的特點就是以 SelectDB 雲數倉為中心:提供三種資料內建方式(ETL、輕量 ELT、聯邦查詢)将資料接入到 SelectDB;存算分離架構降低資源成本、多計算叢集設計實作計算隔離、多雲一緻保證開放性;在數倉之上提供多種分析負載的支援,相對于傳統分析架構實作數倍的性能提升。

從 Apache Doris 到 SelectDB:下一代雲原生實時數倉的演進

2. 日志存儲與分析

從 Apache Doris 到 SelectDB:下一代雲原生實時數倉的演進

日志系統對于保障系統、業務穩定性至關重要,在故障排查、監控告警等中都需要用到日志。日志場景往往有以下幾個特點:

① 資料寫入量大、實時可見,在檢索日志問題時需要最新資料的實時可見;

② 資料存儲量大,日志發揮價值相對業務資料價值密度較高,對成本敏感;

③ 資料結構複雜,有大量的非結構化或半結構化資料,需要支援文本格式、json 格式;

④ 互動式查詢對性能要求高,特别是需要支援文字檢索。

從 Apache Doris 到 SelectDB:下一代雲原生實時數倉的演進

基于以上問題,日志場景解決方案的想法基于 Doris 高性能向量化引擎底座,再加上 SelectDB 存算分離架構、輕量級反向索引和時序資料管理達到更好的效果。具體實作包括:

① 通過服務端攢批、時序 Compaction、向量化執行引擎等支援高吞吐和實時寫入;

② 通過存算分離的雲原生架構、本地磁盤緩存和對象存儲的分層分級存儲、列式存儲等降低日志存儲成本

③ 通過輕量反向索引、Dynamic Table、MPP 并行處理架構等實作半結構化資料的互動式查詢

(1)上遊資料寫入

在上遊寫入方面,我們配置 Logstash 使用内置的http output plugin 将資料寫入 SelectDB。

在下遊查詢方面,在 Grafana 中使用内置 MySQL 資料源,導入已有模闆配置可視化日志看闆、檢索界面;在 BI 場景中,可以使用 Superset 等 BI 工具通過 MySQL 協定,即可開箱即用通路 SelectDB 進行可視化 BI 分析。

從 Apache Doris 到 SelectDB:下一代雲原生實時數倉的演進

(2)日志存儲與分析

我們也跟業界典型産品進行了性能對比,在寫入速度方面 SelectDB 是 ES 的 4.2 倍,存儲空間上隻需要 ES 的五分之一,而查詢性能相對 ES 實作了 2.3 倍的大幅領先。

從 Apache Doris 到 SelectDB:下一代雲原生實時數倉的演進

SelectDB 一直秉承開源開放的價值觀,對于上面介紹的反向索引、TopN 優化、時序 Compaction 優化等關鍵技術,已經貢獻到 ApacheDoris 社群。

值得注意的是,Apache Doris 2.0 Alpha 版本(https://github.com/apache/doris/releases/tag/2.0.0-alpha1)已經釋出,并實作了單節點數萬 QPS 的高并發點查詢能力、高性能的反向索引、基于對象存儲的冷熱資料分離、基于代價模型的全新查詢優化器以及 Pipeline 執行引擎等,歡迎大家下載下傳體驗。

今天的分享就到這裡,謝謝大家。

從 Apache Doris 到 SelectDB:下一代雲原生實時數倉的演進

今日推薦

零距離對話全球頂尖技術專家、學者、業界領袖,與國内外技術同行探讨:大模型、生成式AI、靈活資料分析、智能湖倉、資料安全與合規等熱門話題。

⏰ 活動時間:6/27-28 9:00-17:00

☕️ 活動地點:上海·世博中心

活動亮點:

  • 31個主題論壇,覆寫當下熱點與前沿技術
  • 覆寫汽車、金融、遊戲、醫療、電商等行業
  • 多個互動項目,現場體驗類ChatGPT應用的快速建構

點選連結報名參會:

2023年亞馬遜雲科技中國峰會 - 因建構_而可見

*PS:活動當天到場簽到,還可領取DataFun獨家《資料智能知識地圖》1份(印刷版)!