浅谈数据湖
一、數據湖的定義
二、數據湖的參考架構
? ??1、數據集成能力(數據接入)
? ??2、數據存儲
? ??3、數據搜索
? ??4、數據治理
? ??5、數據質量
? ??6、安全管控
? ??7、自助數據發現
三、數據湖與數據倉庫的區別
四、數據湖的優勢
一、數據湖的定義
維基百科上定義,數據湖(Data Lake)是一個以原始格式存儲數據的存儲庫或系統。它按原樣存儲數據,而無需事先對數據進行結構化處理。一個數據湖可以存儲結構化數據(如關系型數據庫中的表),半結構化數據(如CSV、日志、XML、JSON),非結構化數據(如電子郵件、文檔、PDF)和二進制數據(如圖形、音頻、視頻)。
但是隨著大數據技術的融合發展,數據湖不斷演變,匯集了各種技術,包括數據倉庫、實時和高速數據流技術、數據挖掘、深度學習、分布式存儲和其他技術。逐漸發展成為一個可以存儲所有結構化和非結構化任意規模數據,并可以運行不同類型的大數據工具,對數據進行大數據處理、實時分析和機器學習等操作的統一數據管理平臺。
二、數據湖的參考架構
結合目前開源的數據湖平臺和組件,總結數據湖的基本參考架構如下:
總結數據湖最核心的能力包括:
1、數據集成能力(數據接入)
1)接入不同數據源,包括數據庫中的表(關系型或者非關系型)、各種格式的文件(csv、json、文檔等)、數據流、ETL工具(Kafka、Logstash、DataX等)轉換后的數據、應用API獲取的數據(如日志等);
2)自動生成元數據信息,確保進入數據湖的數據都有元數據;
3)提供統一的接入方式,如統一的API或者接口;
2、數據存儲
數據湖存儲的數據量巨大且來源多樣,數據湖應該支持異構和多樣的存儲,如HDFS、HBase、Hive等;
3、數據搜索
數據湖中擁有海量的數據,對于用戶來說,明確知道數據湖中數據的位置,快速的查找到數據,是一個非常重要的功能。
4、數據治理
1)自動提取元數據信息,并統一存儲;
2)對元數據進標簽和分類,建立統一的數據目錄;
3)建立數據血緣,梳理上下游的脈絡關系,有助于數據問題定位分析、數據變更影響范圍評估、數據價值評估;
4)跟蹤數據時間旅行,提供不同版本的數據,便于進行數據回溯和分析;
5、數據質量
1)對于接入的數據質量管控,提供數據字段校驗、數據完整性分析等功能;
2)監控數據處理任務,避免未執行完成任務生成不完備數據;
6、安全管控
1)對數據的使用權限進行監管;
2)對敏感數據進行脫敏和加密;
7、自助數據發現
提供一系列數據分析工具,便于用戶對數據湖的數據進行自助數據發現,包括:
- 聯合分析;
- 交互式大數據SQL分析;
- 機器學習
- BI報表
- ......
三、數據湖與數據倉庫的區別
數據倉庫是一種具有正式架構的成熟的、安全的技術。它們存儲經過全面處理的結構化數據,以便完成數據治理流程。數據倉庫將數據組合為一種聚合、摘要形式,以在企業范圍內使用,并在執行數據寫入操作時寫入元數據和模式定義。數據倉庫通常擁有固定的配置;它們是高度結構化的,因此不太靈活和敏捷。數據倉庫成本與在存儲前處理所有數據相關,而且大容量存儲的費用相對較高。
相較而言,數據湖是較新的技術,擁有不斷演變的架構。數據湖存儲任何形式(包括結構化和非結構化)和任何格式(包括文本、音頻、視頻和圖像)的原始數據。根據定義,數據湖不會接受數據治理,但專家們都認為良好的數據管理對預防數據湖轉變為數據沼澤不可或缺。數據湖在數據讀取期間創建模式。與數據倉庫相比,數據湖缺乏結構性,而且更靈活;它們還提供了更高的敏捷性。在檢索數據之前無需執行任何處理,而且數據湖特意使用了便宜的存儲。
1)數倉中保存的都是結構化處理后的數據,而數據湖中可以保存原始數據也可以保存結構化處理后的數據,保證用戶能獲取到各個階段的數據。因為數據的價值跟不同的業務和用戶強相關,有可能對于A用戶沒有意義的數據,但是對于B用戶來說意義巨大,所以都需要保存在數據湖中。
2)數據湖能夠支持各種用戶使用,包括數據科學家這類專業的數據人員。
四、數據湖的優勢
- 輕松地收集和攝入數據:企業中的所有數據源都可以送入數據湖中。因此,數據湖成為了存儲在企業內部服務器或云服務器中的結構化和非結構化數據的無縫訪問點。通過數據分析工具可以輕松地獲得整個無孤島的數據集合。此外,數據湖可以用多種文件格式存儲多種格式的數據,比如文本、音頻、視頻和圖像。這種靈活性簡化了舊有數據存儲的集成。
- 支持實時數據源:數據湖支持對實時和高速數據流執行 ETL 功能,這有助于將來自 IoT 設備的傳感器數據與其他數據源一起融合到數據湖中。
- 更快地準備數據:分析師和數據科學家不需要花時間直接訪問多個來源,可以更輕松地搜索、查找和訪問數據,這加速了數據準備和重用流程。數據湖還會跟蹤和確認數據血統,這有助于確保數據值得信任,還會快速生成可用于數據驅動的決策的 BI。
- 更好的可擴展性和敏捷性:數據湖可以利用分布式文件系統來存儲數據,因此具有很高的擴展能力。開源技術的使用還降低了存儲成本。數據湖的結構沒那么嚴格,因此天生具有更高的靈活性,從而提高了敏捷性。數據科學家可以在數據湖內創建沙箱來開發和測試新的分析模型。
- 具有人工智能的高級分析:訪問原始數據,創建沙箱的能力,以及重新配置的靈活性,這些使得數據湖成為了一個快速開發和使用高級分析模型的強大平臺。數據湖非常適合使用機器學習和深度學習來執行各種任務,比如數據挖掘和數據分析,以及提取非結構化數據。
總結
- 上一篇: 目标检测之选择性搜索-Selective
- 下一篇: 从Google Mesa到百度PALO(