天翼云基于 Apache Doris 成功落地項目已超 20 個,整體集群規模超 50 套,部署節點超 3000 個,存儲容量超 15PB。天翼云基于 Apache Doris 和 Apache Iceberg 構建的湖倉一體方案,兼具靈活性、高性能和低成本優勢,同時滿足了報表和 BI 分析、湖倉融合分析、日志存儲分析、高并發實時分析、MPPDB 國產化替代等多種場景需求。
天翼云是中國電信旗下一家科技型、平臺型、服務型公司,以“云網融合、安全可信、綠色低碳、生態開放”四大優勢向客戶提供公有云、私有云、專屬云、混合云、邊緣云全棧云服務。目前,天翼云基于 Apache Doris 成功落地項目已超 20 個,整體集群規模超 50 套,部署節點超 3000 個,存儲容量超 15PB。天翼云基于 Apache Doris 和 Apache Iceberg 構建的湖倉一體方案,兼具靈活性、高性能和低成本優勢,同時滿足了報表和 BI 分析、湖倉融合分析、日志存儲分析、高并發實時分析、MPPDB 國產化替代等多種場景需求。
Apache Doris 湖倉一體方案
天翼云數據來源眾多,在數據整合和共享方面面臨挑戰。早期采用的數據倉庫與數據湖分離的架構導致數據分散在不同系統和存儲中,形成了數據孤島。此外,面對大規模和多樣化數據時,常常遭遇性能不足和靈活性差的問題。
為此,天翼云全新架構基于 Apache Doris 和 Apache Iceberg 實現湖倉一體方案,構建了一個兼具靈活性、高性能和低成本的數據平臺。
天翼云的數據來源多樣,包括 B 域、O 域和 M 域等多方數據。數據通過 Kafka 進行采集,并使用 Flink 和 Spark 實現數據加工處理。依據數據時效性的需求,數據被接入 Iceberg 數據湖或 Doris 內部存儲。在這一架構中,Doris 扮演了兩個重要角色:
數據湖分析處理引擎:Doris 與 Iceberg 數據湖深度融合,能夠直接訪問 Iceberg 表中數據,實現湖中數據的加速查詢。分析結果不僅可以展示給應用層,也可以通過 Doris 寫回到 Iceberg 中進行存儲。消除了數據孤島、提升了分析效率。
實時分析引擎:Doris 具備強大的實時分析能力,能夠對數據進行極速分析。對于時效性要求更高(秒級)的數據,經過處理后直接流入 Doris,使其能夠快速進行分析和對外服務。
在多場景中的應用實踐
01 實時報表與多維分析
實時報表和多維分析是天翼云內部應用最廣泛的場景之一,主要面向數據分析人員,提供經營分析、地市公式 BI 等服務。該場景將 Doris 作為數據分析和即席查詢工具,顯著提升了各省數據平臺的查詢效率,推動了數字化轉型的進程。
加速報表周期性:使用 Doris 替代原有經分系統的 Impala+Redis 架構,解決 Impala 穩定性差和 Redis 緩存量有限的問題。這一轉變不僅加速了報表的生成周期,還提高了整體的數據處理能力,使得數據分析更加高效。
實現去“O”目標:通過能開平臺直連 Doris,成功替代數據集市 Oracle 數據庫。基于 Doris 高效分析能力,滿足業務側對數據調用及查詢響應的嚴格要求,響應時間控制在 0.4s~0.7s。
秒級別快速檢索:使用 Doris 替代地市公司 BI 系統使用的 PG 組件,使得在數據分析過程中,計數、聚合和單條快速檢索等運算都能在秒級內完成。這種快速檢索能力極大地提高了數據分析的實時性,為業務決策提供了更加及時和準確的數據支持。
統一多技術棧:基于 Doris 替換了多個技術組件,實現技術棧的統一,顯著簡化了架構。這不僅降低了系統的復雜性,還帶來了性能的顯著提升。
02 湖倉融合分析
湖倉一體架構在天翼云內部的應用已成熟。Apache Iceberg 作為主要的湖格式,其中存放 TB ~ PB 級別的數據,再通過 Doris 引擎對 Iceberg 數據進行查詢加速,支撐了 BI 報表、實時戰報、智能運維、在線應用等多種業務場景。
下圖是以 Doris 作為核心分析引擎的湖倉一體架構全景圖:
Doris 作為核心分析引擎,可以直接訪問 Iceberg 表數據進行數據分析獲取結果。結合數據緩存、物化視圖透明加速等能力,可以極大的提升湖上數據得分析性能。在權限管理方面,天翼云使用 Apache Ranger 對 Doris、Spark、Hive、Iceberg 等組件進行統一管理。結合 Doris 對包括內表在內的其他數據源的關聯查詢能力,為業務提供統一、高效的實時數據分析能力。
在湖倉一體建設過程中,天翼云和 Doris 社區緊密合作,在查詢性能和 Iceberg 生態對接方面共建完成了大量工作,顯著提升了 Doris 在湖倉融合場景下的實踐能力。
1. 查詢性能調優:
在查詢性能方面,天翼云和 Doris 社區共同完成了復雜類型(Array、Map、Struct)的延遲物化功能。延遲物化是減少網絡 IO 的一項重要技術,開啟延遲物化功能后,數據掃描節點會優先讀取謂詞條件列,在使用過濾后的行號,讀取剩余的列數據。如下 SQL:
SELECT name, age, email, phone, address
FROM users
WHERE age > 25 AND city = 'Shanghai';
沒有延遲物化的情況下,會將 name, age, email, phone, address 這 5 列數據全部讀取后,再進行 age > 25 AND city = 'Shanghai'; 的條件過濾。而開啟延遲物化后,會先讀取 age 和 city 列進行條件過濾,再讀取剩余的 email, phone, address 列。當謂詞條件過濾率很高時,可以極大減少不必要的數據讀取。
優化后,相關類型查詢的 IO 請求量從幾百 GB 降至幾百 MB,有效緩解了網絡帶寬壓力,并提升了整體查詢性能。
2. Iceberg 表寫回
天翼云在 2024 年中旬,結合自身業務的發展和用戶需求,亟需在 Doris 中支持 Iceberg 的寫回能力,以便用戶能夠在 Doris 對 Iceberg 表數據進行完整的數據處理操作。因此,天翼云和 Doris 社區合作,共同完成了 Iceberg 表的寫回能力,并對分區數據傾斜、寫入并發度調整等方面進行了深入的設計和開發。目前該功能已經在 2.1 系列版本發布。
通過 Iceberg 寫回能力,用戶可以在 Doris 中進行數據處理。結合異步物化視圖進行數據的分層加工,并將結果數據直接寫回到 Iceberg 表。利用 Iceberg 表基于共享存儲的特性,這些分析后的結果可以方便的共享給其他 Doris 集群或其他業務,達到數據共享的目的。
未來,天翼云將進一步優化和增強 Doris 對 Iceberg 的數據處理能力,包括數據 Rewrite、Snapshot 管理等功能,將 Doris 打造成完善的湖倉數據處理引擎。
03 日志存儲分析
在現代 IT 環境中,日志管理和分析是確保系統安全性和高效性的關鍵。傳統的日志架構,如 ELK(Elasticsearch, Logstash, Kibana),雖然廣泛應用,但在處理大規模日志數據時,常常面臨成本高昂、查詢效率低下、擴展性不足的問題。這一問題在省市級別的安全網關和系統運維場景中尤為突出,隨著數據量的激增,日志檢索和存儲的壓力不斷增加。
因此,天翼云決定通過引入 Doris 替代傳統的 ELK 架構,提升日志系統的查詢效率,以滿足安全網關和系統運維等場景基于日志的在線應用、聚類分析、異常分析、智能診斷的服務。
具體來說,通過 Agent 或 Open Telemetry 上報日志數據。對于日志量較大或重要性較高的日志,首先將其存儲在 Kafka 中,以確保數據的可回溯性。隨后,這些日志數據可以通過 Flink 進行加工,或直接使用 Doris 的 Routine Load 功能導入到 Doris 中。對于日志量較小的業務系統(如天級別百億數據量以下的系統),則直接通過 Open Telemetry 寫入 Doris。最終由 Doris 提供對外的服務支持。
通過引入 Doris,最終實現寫入吞吐提升 5 倍、存儲成本降低 80%、百億級日志檢索秒級響應、查詢效率提升 3 倍的顯著收益。
04 物聯網數據分析
天翼云的物聯網平臺(AIoT)主要是對智能監控設備、用戶行為數據、環境監測等數據進行分析。各設備實時上傳數據,平臺需處理超過 1 萬的并發請求,確保高效運行。數據表規模龐大,總記錄數達到百億,單日新增數據可達幾個億,且大多數查詢返回單行結果,要求快速執行和高效查詢。同時,系統需實時更新數據,以確保信息的時效性和準確性。
基于 3AZ 多活云資源池(蘇州、無錫、太湖三個可用區),天翼物聯網平臺通過云原生技術完成了架構升級。通過引入 Doris,提供海量數據的高并發查詢能力,助力物聯網行業應用的快速發展。
該項目充分運用了 Doris 在高并發讀取和寫入場景下的技術特性,包括:
合理的分區分桶規劃:合理的分區分桶規劃能夠確保數據均勻的分布在 Doris 集群內。不論寫入還是查詢操作,都能充分且均衡地利用集群資源。同時,通過分區分桶裁剪能力,能夠極大程度減少單查詢的資源消耗,提升并發能力。
強大的數據索引:Doris 支持豐富的數據索引類型。包括智能索引、布隆過濾器、倒排索引等。通過合理使用索引,可以進一步減少不必要的數據掃描,提升數據的檢索速度。
合理的導入批次:通過合理的設置每批次導入數據量的大小,可以在導入吞吐和數據時效性之間找到最佳平衡點。用戶可以在客戶端進行數據攢批,也可以利用 Doris 的 Group Commit 功能在 Doris 服務端進行攢批。服務端攢批降低了用戶維護導入狀態的成本,也降低了客戶端數據處理的壓力。
天翼云通過合理運用以上技術手段,并進行了詳細測試和調優,最終在物聯網業務中實現了平均 QPS 8000,峰值 QPS 15000 的性能表現。
05 信創 MPPDB 應用
天翼云圍繞國產化基礎設施(CPU、OS),在采集、存儲、調度和計算等四個核心業務層面構建國產化大數據平臺。其中,Doris 作為大數據 MPP 計算的重要角色,經過優化后成功在鯤鵬芯片上落地,并進行了權限擴展和安全加固,為國產化大數據平臺的構建貢獻了力量。
天翼云與 Doris 社區、鯤鵬 ARM 芯片聯合共建了以下能力:
編譯效率提升:結合畢昇編譯器,Doris 編譯效率提升 30%。開發和部署新功能的速度顯著加快,縮短了產品的迭代周期。
運行效率提升:優化 Bitshuffle ,使得 Doris 的運行效率提升了 25%。這一提升不僅提高了數據處理的速度,還有效降低了資源消耗,進一步增強了系統的穩定性和可擴展性,支持更大規模的數據集處理。
數據安全性增強:實施安全加固措施,包括數據傳輸和存儲的加密處理、訪問控制的優化以及實時監測機制的引入,確保用戶數據在使用過程中的安全性,有效防止了未授權訪問和數據泄露。
結束語
天翼云基于 Apache Doris 成功落地項目已超 20 個,整體集群規模超 50 套,存儲節點達 3000 個,存儲容量超 15PB。所服務場景包括報表和 BI 分析、湖倉融合分析、日志存儲分析、高并發實時分析、MPPDB 國產化替代等多個場景。未來,天翼云也將繼續推廣 Doris,并在以下幾方面發力:
存算分離:探索 Doris 存算分離架構,利用存算分離解決業務場景中數據共享、冷熱分離,資源隔離等難題。
業務落地:積極推廣 Doris 在數據分析、日志檢索、即席查詢等場景的落地,助力客戶實現數字化轉型。
推動國產化:繼續優化 Doris 在 ARM 平臺的性能問題,推動國產化進程。
擁抱社區:積極參與社區共建工作,合作完善元數據、Catalog、CRC、存算分離等模塊建設,推動 Doris 向好發展。
關鍵詞:# 湖倉分析
本文轉錄自李康(天翼云 大數據總監)在 Doris Summit Asia 2024 上的演講,經編輯整理。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.