动态

详情 返回 返回

從 Snowflake 到 Apache Doris:Planet 實時分析成本直降 80%、查詢加速 90 倍 - 动态 详情

Planet 是一家全球領先的金融科技企業,在零售、酒店和旅遊行業的支付與税務數字化服務領域深耕近四十年。公司業務廣泛,覆蓋支付處理、免税退税及行業軟件等,致力於通過一體化的解決方案提升全球商户的運營效率與顧客體驗。

為了應對日益增長的數據分析需求並優化成本效益,Planet 數據團隊近期主導完成了一項重要的數據倉庫升級,將系統從 Snowflake 遷移至開源的 Apache Doris。

這次遷移取得了顯著的成果:

  • 成本大幅降低:數據平台的月度成本從 2.5 萬美元降至 5 千美元,成功節省了 80% 的開銷。
  • 性能顯著提升:針對大型數據表的複雜分析場景,查詢速度實現了高達 90 倍的提升。
  • 實現真正的實時分析:新的架構支持了實時數據攝入與分析,為業務決策提供了更敏鋭的洞察力。

通過這次向 Apache Doris 的遷移,Planet 的數據團隊不僅成功構建了一個更高效、更經濟的數據分析平台,也為未來業務的快速發展奠定了堅實的數據基礎。

早期架構以及挑戰


早期架構以及挑戰.PNG

為了更好地理解遷移背景,讓我們首先了解 Planet 公司原有的數據架構規模和複雜性。作為一家服務全球零售、酒店和旅遊行業的金融科技企業,Planet 面臨着海量數據處理的挑戰,這也是促使其尋求更優解決方案的根本驅動力。

01 數據規模體量

Planet 的數據平台承載着巨大的處理壓力,每天需要處理超過 30 億條用户生成事件,這相當於每日處理 1 TB 的聚合數據和 10 TB 的原始數據。如此龐大的數據量對系統的實時性、穩定性和成本控制都提出了極高要求。

02 多元化數據攝入流程

Planet 的數據來源多樣化,通過三種主要方式匯聚到 Snowflake:

  • 實時流式處理:用户行為事件通過 Kafka 消息隊列攝入,經過 Flink 進行流式 ETL 處理後寫入 Snowflake,確保關鍵業務數據的實時性
  • 事件驅動批處理:存儲在 Amazon S3 上的數據文件通過事件觸發機制,經由 Lambda 函數進行計算清洗後加載到 Snowflake
  • 數據庫變更捕獲:利用 CDC(Change Data Capture)技術實時捕獲事務性數據庫的變更,保證數據的一致性和完整性

此外,系統還通過 API 集成各類外部數據源,並定期運行 ETL 作業進行數據的進一步整合與清洗。

03 Snowflake 應用場景與業務價值

在原有架構中,Snowflake 承擔着核心分析層的重要角色,為業務用户和利益相關者提供對清洗整理後數據的高效訪問能力。平台主要支持兩類核心場景:

  • 交互式儀表盤:為業務團隊提供實時的數據可視化展示,支持關鍵指標監控和趨勢分析
  • 即席查詢分析:滿足數據分析師和業務用户的靈活查詢需求,支持複雜的多維度數據探索

然而,隨着業務規模的快速增長,Snowflake 在成本控制和查詢性能方面的侷限性日益凸顯,這促使 Planet 數據團隊開始尋求更具性價比的替代方案。

04 Snowflake 面臨的挑戰

在實際使用過程中,他們也面臨許多挑戰:

  • 併發與成本管理: Snowflake 的按查詢付費模式雖然靈活,但實際用起來問題不少。一到高峯期,併發用户超過100時,成本就蹭蹭往上漲;數據量持續增長後,性能和開支更是雙雙飆升。想靠多集羣虛擬倉庫扛住高併發?結果往往貴得離譜,成本控制變得特別棘手。
  • 實時處理的延遲: 儘管系統設計以實現實時分析為目標,但由於微批加載以及 Snowflake 本身“準實時”處理機制的固有延遲,事件從發生到在系統中可見存在約 5 至 10 分鐘的延遲,因此難以滿足對實時性要求極為嚴格的業務場景。
  • 供應商鎖定與組織限制: 組織面臨供應商鎖定問題,包括合同限制和法律團隊的合規擔憂,這推動了對開源替代方案或自託管解決方案(例如在 AWS EC2 上)的興趣。

如下兩張圖直觀地展示了在使用 Snowflake 過程中,隨着業務增長所面臨的成本激增查詢延遲惡化的雙重挑戰:

Snowflake 面臨的挑戰.png

第一張折線圖清晰呈現了從一月到七月期間,月度成本(紅色曲線)和平均查詢延遲(藍色曲線)的持續攀升趨勢:成本從 5,000 美元迅速上漲至 32,000 美元,而查詢延遲也從 5 秒飆升至 26 秒,遠超用户期望的 3 秒閾值(綠色虛線)。

Snowflake 面臨的挑戰-2.png

第二張表格則以具體數據支撐了這一趨勢,詳細列出了每月的成本、延遲及用户期望值,進一步凸顯了系統性能與用户體驗之間的顯著差距。

這些數據共同揭示了當前架構在高併發和實時性需求下的瓶頸,也印證了前文所述的“成本失控”與“實時性不足”問題,為探索更靈活、可控的替代方案提供了有力依據。

為何選擇 Apache Doris

基於對 Apache Doris 和 ClickHouse 在性能、靈活性、數據集成和成本效益 等關鍵指標上的詳細對比測試與概念驗證 (POC)後,他們最終選定 Apache Doris。具體評估結果如下:

  • 在總體成本方面: 儘管開源方案需承擔一定運維開銷,但 Apache Doris 在功能完備性與資源控制間實現了理想平衡,有效規避了 SaaS 平台常見的成本不可預測性,顯著優化了長期 TCO。
  • 在查詢性能與低延遲方面: Apache Doris 憑藉列式存儲和向量化執行引擎提供亞秒級查詢速度,為實時和即席分析場景提供快速可靠的分析能力,並且在負載下也能保持一致的性能。
  • 在運維簡便與靈活性方面:Apache Doris 在 AWS EC2 上易於部署和維護,支持自定義存儲格式和用户定義函數,允許對架構和治理進行更精細的控制。
  • 在實時分析與生態集成方面: Apache Doris 原生無縫集成 Kafka、Flink 和 Spark,構建了端到端的實時數據處理流水線,大幅提升了分析生態的協同效率。
  • 在社區支持方面: 活躍的開源社區生態加速了問題響應與解決方案迭代,為技術落地提供了持續動力。

綜上所述,以上對比清晰印證,Apache Doris 的綜合表現不僅全面契合選型標準,更遠超預期需求。基於其在成本可控性、性能穩定性及生態適配性上的突出優勢,他們迅速決策將數據架構從 Snowflake 遷移至 Apache Doris,以應對高併發與實時性挑戰。

為何選擇 Apache Doris.png

從 Snowflake 到 Apache Doris 架構演進

在遷移過程中,Planet 數據團隊制定了一套分階段、系統化的實施方案,以確保穩定性與性能優化,同時充分利用 Apache Doris 對 MySQL 協議的兼容性。由於 Doris 原生支持 MySQL 語法,團隊無需學習新方言,顯著降低了 SQL 轉換和開發的學習成本。

第一階段:評估與規劃
團隊對現有查詢模式和分析複雜度進行了全面分析,將 Snowflake 數據類型精準映射到 Doris 等效類型,並重新設計了分區鍵、分佈列和主鍵以優化數據導入效率。在此基礎上,藉助 Python 腳本與 Jinja 模板實現模式轉換自動化,並通過 Airflow 編排批量數據工作流,確保遷移範圍與業務需求完全對齊。

第二階段:數據導出與加載
數據首先以 Parquet 格式從 Snowflake 導出並暫存於 S3,隨後通過基於標準 MySQL 語法的 LOAD DATA INFILE 命令批量導入 Apache Doris。嚴格的數據質量(QA)與審計流程保障了遷移的完整性與準確性。在 ETL/ELT 管道重構中,團隊結合 Doris Kafka Connector(Routine Load)、Flink Doris Connector 與 Spark 微批處理,實現了大規模數據回填及與現有流式管道的無縫集成。

第三階段:驗證與測試
最後,團隊在真實業務負載下對 Apache Doris 與 Snowflake 進行了並行驗證和性能對比。結果顯示,Doris 在高併發場景下保持查詢延遲穩定低於 3 秒,具備顯著的實時分析與成本優勢。同時,語法兼容性也經受住了考驗——所有查詢和存儲過程均通過 MySQL 語法完成重構,避免了額外的學習負擔。

通過分階段遷移,團隊成功規避了供應商鎖定風險,解決了 Snowflake 的高成本與延遲問題。Apache Doris 憑藉 MySQL 協議兼容性、卓越的實時處理能力以及開源靈活性,不僅顯著降低了學習曲線和運維開銷,更為業務提供了可擴展、高性價比的數據分析基礎,標誌着架構向高效自主的順利轉型。

新數據架構

新數據架構.png

至此,Snowflake 已完全被 Apache Doris 取代,成為主要的分析倉庫。數據架構的其餘部分保持不變。目前,Doris 已在生產環境中穩定可靠地運行。Planet 數據團隊 也正在通過 POC 探索 Doris 在日誌分析方面的能力。

Apache Doris 實戰總結

基於真實業務場景的深度驗證,Apache Doris 在核心分析場景中展現出顯著的性能優勢:

  • 標準 OLAP 查詢:針對 2000 萬行數據的過濾聚合(filter+agg)測試,Apache Doris 僅需 0.9 秒 完成響應,相較 Snowflake 的 4.2 秒 提升 4.6 倍,充分驗證其列式存儲與向量化執行引擎的高效性。
  • 複雜多表 JOIN:在涉及多表關聯的即席查詢(2000 萬行數據量)中,Apache Doris 以 1.5 秒 的平均耗時超越 Snowflake 的 8 秒,性能提升達 5.3 倍,凸顯分佈式計算架構對複雜查詢的優化能力。
  • 超大規模數據處理:面對 4.75 億行數據的高壓力場景,Apache Doris 通過智能分區剪枝與並行計算,在 1-3 秒 內完成結果返回,而 Snowflake 需耗費 45-90 秒,性能差距最高達 90 倍
  • 高併發穩定性:在模擬 100 用户同時查詢 2000 萬行數據的儀表盤場景下,Apache Doris 保持 1.2 秒 的穩定響應,較 Snowflake 的 6 秒 平均延遲提升 5 倍,印證其分佈式事務與資源調度機制的有效性。
  • 實時數據攝入:Apache Doris 原生支持流式加載(Stream Load),實現 1-2 秒級 數據可見性,徹底解決 Snowflake 微批處理導致的 5-10 分鐘 攝入延遲痛點,滿足業務對實時分析的嚴苛需求。

Apache Doris 實戰總結.png

01 成本與效率雙優成果

在實測過程中,團隊負責人 Parth 和成員都對 Doris 的表現感到驚訝:“它的查詢速度幾乎是 Snowflake 的數倍,而總成本卻只需要原來的五分之一。這幾乎難以置信。”

  • 成本壓縮 80%:6 月份遷移前,Snowflake 的月度成本約為 $25,000**;遷移至部署在 AWS EC2 + EBS 基礎設施上的 Apache Doris 後,總月度成本僅約 **$5,000,實現了 5 倍的成本節約
  • 存儲效率持平:得益於列存壓縮技術,Apache Doris 存儲空間佔用與 Snowflake 相當,消除容量擴展顧慮;
  • 全鏈路加速:從數據攝入到查詢響應,Apache Doris 以原生 MySQL 兼容性簡化開發適配,同時通過高吞吐、低延遲特性構建了端到端實時分析能力。

02 經驗教訓與最佳實踐

Planet 數據團隊也慷慨分享了他從 Snowflake 遷移到 Apache Doris 過程中總結的經驗:

  • 數據傾斜 (Data skew): 最初的性能瓶頸源自數據分佈不均。通過從單列分佈切換到多列分佈,並平衡分片 (tablet) 大小,查詢性能得到顯著提升。
  • 資源調優: 合理配置 BE 內存限制、JVM 堆大小和 RPC 線程數,對避免內存溢出 (OOM) 至關重要。

儘管這些問題在早期帶來挑戰,但從性能到成本的收益都證明了努力是值得的。

Planet 數據團隊還分享了一些最佳實踐:

  • 對高基數維度使用 BITMAP 和 Bloom 過濾器。
  • 定義合理的分片行數。
  • 設置副本數 >= 3 以實現高可用性。
  • 藉助物化視圖 (Materialized Views) 優化常見聚合。

結束語

通過這次從 Snowflake 到 Apache Doris 的遷移實踐,Planet 公司不僅在技術上實現了顯著的飛躍——查詢性能大幅提升、數據攝入真正做到了實時化,更在成本控制上取得了巨大成功,將月度數據平台開銷降低了 80%

Planet 的實踐證明,面對日益增長的數據量和嚴苛的實時分析需求,企業應當持續評估現有架構的成本效益與可擴展性,並勇於探索和應用新技術。Apache Doris 在此次遷移中充分展現了其作為頂級開源分析引擎在性能、成本和實時性方面的巨大潛力。

對於其他同樣希望在成本與性能之間找到最佳平衡點、構建高性能、低成本實時數據分析能力的企業而言,Planet 的這次成功轉型無疑是一次極具價值和借鑑意義的實踐案例。

user avatar u_16756731 头像 u_16776161 头像 aloudata 头像 kunaodehuluobo 头像 tully_l 头像 ponponon 头像 guishangguandao 头像 gmicloud 头像 georgegcs 头像 datadowell 头像 greasql 头像 apachekylin 头像
点赞 19 用户, 点赞了这篇动态!
点赞

Add a new 评论

Some HTML is okay.