隨著數字化的概念逐步深入不同領域企業的運營中,業務形態和數字化路徑也越來越豐富。這也為企業數據處理、儲存的方式提出了更多要求。對於企業,尤其是數據驅動型企業來說,需要強大的解決方案來管理和分析整個組織中的大量數據,這些系統必須具有可伸縮性、可靠性和安全性,並且必須具有足夠的靈活性以支持各種數據類型和使用場景。這些要求遠遠超出了任何傳統資料庫的能力,因此,數據倉庫、數據湖等多種不同的架構逐漸成為了資料庫行業的熱門技術。
2024年1月17日,由數據猿和上海大數據聯盟主辦,上海市經濟和信息化委員會、上海市科學技術委員會指導的「第六屆金猿季&魔方論壇——大數據產業發展論壇」上,鏡舟科技客戶成功團隊負責人孟慶歡在主題演講中與到場嘉賓和觀眾們探討了湖倉架構在數據價值釋放中的角色。
鏡舟科技成立於2022年,致力於建立湖倉架構下的數據分析創新產品幫助企業提升效率。其研發的鏡舟分析型資料庫、湖倉分析引擎,是基於StarRocks開發的國產企業級產品。鏡舟分析型資料庫在實時數倉、OLAP報表、數據湖分析等場景中滿足客戶多維複雜、實時、高並發的數據分析需求,幫助客戶構建數據驅動的全新業務和管理模式。
鏡舟湖倉分析引擎採用的湖倉架構作為一種先進的數據存儲和管理方式,通過集成多源、多格式、大規模的數據,為企業提供了更靈活、高效的數據管理方案,成為釋放數據價值的強大引擎。
「四世同堂」的數據架構
在當前大數據分析架構下有兩條主流的技術路線。一個是數據倉庫,另一個是數據湖。
數據倉庫是一種企業系統,用於分析和報告來自多個來源的結構化和半結構化數據,例如銷售終端交易、營銷自動化、客戶關係管理等。數據倉庫適用於點對點分析以及自定義報告。數據倉庫可以將當前數據和歷史數據都存儲在一個地方,旨在提供長期數據視圖,這使其成為商業智能的主要組成部分。
經過幾十年的發展和產品更新迭代,數據倉庫目前已經「四世同堂」:從最早期的關係型資料庫,到中期 Hadoop 等數據倉庫,一直延伸到雲計算領域,包括雲原生的數倉,和以 Snowflake 這類產品為代表的數倉路線。數據倉庫的主要優點包括數據質量較高、查詢性能較高、實時性強、數據治理難度低。
數據湖作為後起之秀,從2012年開始逐步發展,目前已經成為許多前沿企業落地數據應用的新一代底座。
數據湖提供了一個可伸縮的安全平台,使企業能夠以任何速度從任何系統中提取任何數據,無論數據來自本地、雲還是邊緣計算系統;以全保真的方式存儲任何類型或數量的數據;實時或批量處理數據;使用 SQL、Python、R 或任何其他語言、第三方數據或分析應用分析數據。
與數據倉庫相比,數據湖同時由其「不」是什麼來定義。它不僅僅是存儲空間,也不完全等同於數據倉庫。
在大模型快速發展的2023年,數據湖的應用也變得更加頻繁。數據湖可以作為AI數據的底座,可以儲存大模型訓練所需的數據——數據湖的架構天然地支持AI訓練。
雖然數據湖和數據倉庫都能夠存儲一定容量的數據,但它們都針對不同用途進行了優化。總體來說,數據倉庫通常適用於存儲商業行為中常見的重複性報告和分析數據,如月度銷售報告、每個區域的銷售跟蹤數據或網站流量。而數據湖主要是為處理大量大數據而開發的,公司通常可以將原始數據通過批量傳輸和/或流式傳輸的方式移動到數據湖中,而無需對其進行轉換。兩者之間是互補關係而非競爭關係,因此企業可能需要同時使用這兩種技術。
「湖」與「倉」怎樣結合?
同時使用兩種技術在落地過程中有兩種模式。
一種是「湖上建倉」,即將數據錄入數據湖中,再在數據湖上疊加數據倉庫,按照數據倉庫模式將數據湖中的數據源源不斷地放入倉庫進行加工應用。這相當於將數據湖作為數據源使用,只是將數據先放入數據湖,然後再按需放入倉庫進行應用。
第二種方式是「倉外掛湖」,即一部分數據儲存在數據倉庫中,一部分儲存在數據湖中。當業務應用需要進行數據查詢時,將數據放在湖裡,利用數據倉的能力查詢數據湖裡的數據。
但是,無論是湖上建倉還是倉外掛湖,這兩種模式的整體數據仍然割裂,倉庫和湖裡都有與外界不相通的部分數據,這給後續數據運維和管理增加了很多成本。
因此,一種將數據倉庫和數據湖結合的架構就顯得非常有必要了。
StarRocks就是一種將兩者相結合的架構。
孟慶歡介紹,用戶可以選擇現有的數據湖,或者直接選擇 StarRocks作為數據湖。在此基礎上,用戶可以通過StarRocks的引擎能力構建BI報表應用、數據探查應用以及離線數據加工應用等。
與之前湖上建倉和倉外掛湖的區別在於,這種架構不再將數據和管理進行分散,而是一體化管理,並且在此基礎上附加湖與倉的能力,形成湖倉一體的架構。
目前,StarRocks 已經在國內 300 多家市值超過 70 億人民幣的大規模公司中落地,開始逐步實現湖倉新範式。
企業在應用這種模式時,相當於對原有數據架構進行了一次全新的升級和改造。在這個過程中有一部分能力可以利用舊有的大數據架構,另一部分可以利用StarRocks的能力開通數據實時分析領域的新場景。
作為一種全新的範式,數據鏈路與湖的方式、倉的方式有了顯著的區別。所有數據源都可以把StarRocks作為統一的數據湖倉入口進行寫入。在這個過程中,如果業務應用希望使用湖中或者倉中的數據,可以通過物化視圖能力,進行數據模型構建。這樣,就可以逐步將原始數據根據物化視圖的進行簡化,不再像以前更新、操作數據時那樣需要外置一個工具調度平台進行應用。
在整個分析過程中,資料庫提供了統一的元數據管理模塊,用戶可以簡單迅速的創建、維護不同數據源的原數據,並自動進行更新。利用這種方式,在後續的數據處理過程中會有一個相對完善的入口,基於此進行數據分析操作會非常方便。
在性能方面,以原有湖倉分析中經常用到的參數作為參照物,替換成StarRocks可以提升3倍以上的性能,資源和開發成本大幅度降低。
湖倉一體的實際應用
孟慶歡還分享了兩個湖倉一體的實戰案例。
在攜程業務中,由於企業每天需要處理大量機票、酒店和旅行數據,業務人員需要訪問的報表數據量非常大。原有模式導入的成本非常高,並且在數據更新方面的支持並不完善,因此一旦數據發生變化,需要重新刷新整個數據,成本相對較高。
另外,導入的數據與原始數據之間存在一定的數據時效性滯後,導致數據之間無法嚴格保持一致。這導致業務在訪問時也會頻繁出現問題。同時,在查詢時,原有的性能已經無法滿足日益高漲的數據查詢性能要求。
因此基於這些痛點,攜程實驗了StarRocks替換原有架構。首先能帶來的性能提升是查詢,查詢速度提高了7倍以上。StarRocks整體兼容了原有系統,因此在整個業務切換過程中完全無感。前一天把數據整合好後,第二天直接進行切換,業務只能體會到速度的增加,完全感覺不到使用習慣上的變化。
另一個案例是小紅書,小紅書是年輕人的社交分享平台,其後台數據訪問量非常巨大,有上萬張的數據運營報表,每天要處理的數據量極高。原有架構需要維護龐大的數據分析機器資源,替換為StarRocks後,企業節省了一半伺服器的數據資源也可以實現原有需求。
在替換StarRocks之後,企業數據處理的整體性能和成本都發生了變化。總體而言,當企業應用湖倉的分析架構替換原有的數據倉庫和數據湖的架構之後,整個應用模式會更加簡單,數據無需反覆處理。整體伺服器資源或應用資源也會更加可控,無需為不可控成本付出時間和精力。企業可以按照業務邏輯加工的口徑,按需進行數據加工和實際應用。
鏡舟科技的產品鏡舟湖倉分析引擎是基於 StarRocks 開發的企業級產品,致力於幫助企業建立「極速統一」的湖倉分析新範式,滿足金融政企客戶對技術支持、解決方案、生態建設、售後保障等方面的極致要求。
鏡舟湖倉分析引擎既支持從各類實時和離線的數據源高效導入數據,也支持直接分析數據湖上各種格式的數據。鏡舟湖倉分析引擎兼容 MySQL 協議,可使用 MySQL 客戶端並適配各類主流 BI 工具,同時擎具備水平擴展、高可用、高可靠、易運維等特性。
未來鏡舟科技計劃在湖倉領域不斷探索,進一步加強離線數據和批量數據處理能力,打造更加一體化的湖倉產品平台。
孟慶歡最後總結,隨著技術的不斷發展,湖倉架構將進一步演化,引領下一場數據革命。在技術的賦能下,湖倉將不斷釋放更為豐富、有價值的數據,為企業業務提供更強大的數據支持,推動業務創新和發展。湖倉架構的未來,將是數據與技術相互融合、協同發展的新時代。