- 產品
- 產品解決方案
- 行業解決方案
- 案例
- 數據資產入表
- 賦能中心
- 伙伴
- 關于
時間:2022-02-10來源:此人不存在瀏覽數:1702次
面向未來,新一代大數據架構有三大趨勢:流批一體、云原生數據、湖倉一體。?今天,我們來聊聊湖倉一體。?
如果說,云原生數據,成就了Snowflake,那么湖倉一體就成就了Databricks。兩者都是大數據行業千億美元的市值空間。2021年9月,由ApacheSpark初始成員創立的大數據公司Databricks宣布獲得16億美元H輪融資,本輪融資過后,其估值高達380億美元。這是該公司繼當年2月的10億美元G輪融資之后的又一輪融資,使其融資總額達到35億美元,融資后估值飆升至380億美元。Databricks受到追捧,與其產品和技術的關系密不可分。Databricks擁有豐富的Spark生態、Spark on云原生,此外,Databricks更令人矚目的一大核心技術,就是湖倉一體。湖倉一體,簡單理解,就是將靈活低成本的數據湖技術,與高質量治理的數據倉庫技術,結合為一體化的技術。總部位于美國舊金山的Databricks成立于2013年,由開源處理引擎系統Apache Spark的多位創始人聯合創立,專注于大數據和AI人工智能。Databricks開創了云計算領域的“Lakehouse”概念,這一術語是由“DataLakes”(數據湖)與“Data Warehouses”(數據倉庫)合成而成。2019年,Databricks推出湖倉一體的關鍵開源技術DeltaLake。2020年初,Databricks提出面向未來的Lakehouse湖倉一體的體系架構。該體系基于開放架構,將構建在低成本云對象存儲之上、Schema數據模式、ACID事務的數據湖和數據倉庫結合起來。大數據另一巨頭Snowflake在2020年9月上市,創下軟件公司史上最大規模IPO。Databricks和Snowflake在云數據倉庫領域是直接競爭對手。Snowflake將其產品稱為Data Cloud,而Databricks則用Lakehouse描述其產品。上市在望,Databricks能否續寫Snowflake的IPO神話?與Snowflake業務有重合的Databricks,能否超越Snowflake的輝煌,是一大懸念。?
數據倉庫是一個面向主題的、集成的、相對穩定的、反映歷史變化的數據集合,用于支持管理決策和業務分析。數據倉庫需要提前決定數據模式。對數據倉庫而言,歷史的,聚合的數據比原始的記錄重要得多。不同于數據層倉庫,數據湖是以原始格式存儲數據。數據湖的數據模式不需要提前進行定義,在準備使用數據時,再定義即可,提高了靈活性和可擴展性。?數據倉庫主要是關系型數據的結構化數據存儲與分析技術。而數據湖主要是一種海量的結構化與非結構化數據的存儲技術。 數據倉庫,屬于事先建模的方式,其存儲類型通常包括結構化與半結構化的兩類數據。數據倉庫向特定的計算引擎開放,易于實現存儲引擎和計算引擎的高度優化。數據倉庫難于啟動,但易于運維管理,在數據治理上質量很高。 數據湖,則屬于事后建模的方式,其存儲類型包括了結構化、半結構化與非結構化的所有類型數據。數據湖向計算引擎全面開放,其存儲引擎和計算引擎的優化不易實現。數據湖易于啟動,但難于運維管理,在數據治理上質量不高。 所以,兩種技術各有其優缺點,當下企業往往分別建設數據倉庫與數據湖,而如果能夠將兩者合一,則可以同時獲得兩種技術的優點,這就是湖倉一體的技術。?
湖倉一體的發展路徑有兩類:第一類以Databricks為代表,發展重點從數據湖應用場景逐步到增強數據倉庫的能力。第二類則以Snowflake為代表,發展重點從數據倉庫應用場景逐步到提升數據湖的能力。?不同廠商的實現路徑各不相同,這其實和廠商自己的產品方向、技術基礎、存量系統有直接關系。?Databricks這樣的廠商,是以數據湖為核心發展起來的。Databricks最初主要是一家數據湖公司,但一直在添加數倉功能,從而實現湖倉一體。?而對于Snowflake這樣的廠商,是以數倉為核心發展起來的。作為數倉起家的公司,Snowflake一直在忙于添加數據湖功能,來實現湖倉一體。?所以Databricks們談的是從湖走向倉,而Snowflake們則談的是從倉走向湖。殊途同歸,路徑不同,但最終目的地都是湖倉一體。?數據湖是一種統一存儲、但各引擎和組件松散協同的組織方式,所以在需要強管理特性的企業級能力方面存在天然不足的問題。?為使數據湖具備數據倉庫的ACID能力,業界先后涌現幾大開源系統:
2018年,Netflix開源了元數據服務系統Iceberg,提供包括多版本和多版本并發MVCC在內的增強數倉能力。
2018年和2019年,Uber和Databricks相繼推出Hudi和Delta Lake,均提供Delta增量文件格式框架,用以在數據湖上支持Update/Insert、事務等的數據倉庫功能。
這三個開源項目出發點不同,但目標都是統一和高質量的元數據管理服務。?數據倉庫與數據湖,看上去是兩套矛盾的技術體系,所以實現湖倉一體,充滿了技術挑戰和復雜度。需要解決湖與倉之間的各種協同問題,包括異構集群、不同存儲系統的數據一致性和系統打通、不同計算引擎對數據的交叉引用、元數據的統一管理、權限的統一管理、安全的統一管理、用戶的一致性體驗、統一的數據治理。?
1、整體架構,一橫和一縱。
以數倉起家的廠商,通常是橫向架構,左邊數據湖,右邊數據倉庫,湖與倉橫向并列,湖和倉之間橫向流動。以數據湖起家的廠商,則通常是縱向架構,下邊是數據湖,數據湖之上是數據倉庫,以湖為基礎在湖上建倉,湖和倉之間縱向流動。?
2、數據智能,分類存儲。
可以將數據分為兩大類:已知用途的數據和未知用途的數據。?已經清晰知道的數據,可以建模后,放在數據倉庫。未知和需要探索的數據,可以放在數據湖。?這里的關鍵,是智能數據分析技術,哪些是已知,哪些是未知,根據不同的業務和數據特點自動做分類和存儲。?
3、打通不同存儲系統,智能流動。
方式一:橫向架構的湖倉一體,需要數倉與數據湖之間的數據映射系統。湖和倉為多套存儲系統并存,但是其存儲系統是打通的。并且需要數據倉庫和數據湖之間的數據智能加速互訪。?方式二:縱向架構的湖倉一體,原始數據存放在數據湖,在數據湖之上構建數據倉庫。也可以選擇將數據湖作為數倉的ODS層(原始數據/貼源層)。?
4、異構計算引擎,交叉訪問。
對于計算引擎,實現湖與倉的異構計算集群之間的網絡打通。多套計算引擎可以通過不同元數據訪問不同存儲系統中的數據。?
5、統一數據治理和展示。
打通湖與倉的元數據管理,實現統一的數據治理和數據展示。??
6、統一用戶體驗。
從用戶視覺來看,需要體現為一體化的一套系統。保證數據訪問和使用的統一性、安全性和一致性。實現數據湖和數據倉庫之間的無縫流轉。對用戶來說,不需要看見湖和倉,數據可以自由流動,自由對接應用層的多樣化業務需求和豐富生態。?
產業數字化轉型的浪潮,數據是數字科技驅動業務轉型的重要生產要素。?湖倉一體,通過一橫一縱兩種架構路徑,打通數據倉庫和數據湖兩套體系,讓數據和計算在湖與倉之間自由流動,兼具湖的靈活與倉的高質量治理。?云原生的、湖倉一體的大數據體系技術,指引數據的未來發展方向,代表了未來。讓我們一起擁抱未來!