在數(shù)字化時代,我們一直在處理數(shù)據(jù),我相信大家已經(jīng)看到了數(shù)據(jù)領(lǐng)域的一些結(jié)構(gòu)性變化。不僅與架構(gòu)相關(guān),如今其大部分基于云而且還與團隊和實施中涉及的某些角色相關(guān)。從架構(gòu)的角度來看實際的實現(xiàn),我們可以有幾種方法,但是我們越來越多地看到事件驅(qū)動的架構(gòu)出現(xiàn)了!這些架構(gòu)基于微服務(wù)和 API 驅(qū)動的實現(xiàn),符合實時或近實時攝取和處理的目的。
下圖可以說明使用微服務(wù)實時攝取數(shù)據(jù)并利用半結(jié)構(gòu)化數(shù)據(jù)功能使其可用于 Data LakeHouse 或 Data Lake 的想法。

微服務(wù)層和事件隊列
大多數(shù)新的源系統(tǒng)都是 API 驅(qū)動的,這意味著它們可以在推/拉邏輯下工作:
■推送邏輯使用流式 API 工作,這些 API 在事件發(fā)生時導(dǎo)出事件(通常以 JSON 格式)。
■拉取邏輯的工作方式與我們所說的“批處理”非常相似,數(shù)據(jù)管道負責從源系統(tǒng)請求信息,使用參數(shù)來減少通過數(shù)據(jù)管道(增量)移動的數(shù)據(jù)量。主要關(guān)注推送邏輯,微服務(wù)(可以用多種語言構(gòu)建,例如 Python、.NET、Java 等)將負責訂閱端點/webhook 并將事件傳遞到定義的主題。這些主題特定于每個事件,并且需要具有唯一的命名約定或定義。對于這些部分,一些技術(shù)可以保證隊列、復(fù)制和分區(qū),例如 Apache Kafka、Confluent 或 Cloud Pub/Sub。
Data Lake / LakeHouse
數(shù)據(jù)湖是用于存儲大量原始格式數(shù)據(jù)的存儲庫。組織和個人使用數(shù)據(jù)湖來存儲不同類型的大數(shù)據(jù),包括結(jié)構(gòu)化、非結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)。數(shù)據(jù)湖使用平面架構(gòu),沒有文件或文件夾層次結(jié)構(gòu)。每條數(shù)據(jù)都與一組元數(shù)據(jù)相關(guān)聯(lián),并與一個唯一標識符相關(guān)聯(lián)。它們使用各種各樣的數(shù)據(jù)源,包括移動應(yīng)用程序、物聯(lián)網(wǎng)產(chǎn)品、網(wǎng)站和工業(yè)應(yīng)用程序。數(shù)據(jù)湖具有功能性、可擴展性和低成本的優(yōu)勢:
■作為功能,它具有與機器學習工具、人工智能算法、高級實時數(shù)據(jù)分析和預(yù)測模型配合良好的優(yōu)勢;
■在可擴展性范圍內(nèi),它們用于管理大量數(shù)據(jù),這些數(shù)據(jù)根據(jù)數(shù)據(jù)輸入而增長和變化;
■該工具的低成本在于它允許使用開源技術(shù)。另一方面,數(shù)據(jù)湖可能會變成數(shù)據(jù)沼澤,數(shù)據(jù)完整性和安全性較差,存在一定的劣勢,包括:
■由于數(shù)據(jù)的大小,數(shù)據(jù)的復(fù)雜性意味著只有工程師和數(shù)據(jù)科學家才能導(dǎo)航和利用數(shù)據(jù)進行可能的分析。
■瀏覽數(shù)據(jù)湖可能很耗時,因為它們需要定期組織和維護數(shù)據(jù)完整性以避免數(shù)據(jù)質(zhì)量問題。如果沒有這些預(yù)防措施,數(shù)據(jù)湖最終會變成一個數(shù)據(jù)沼澤,其中包含雜亂無章且無法使用的數(shù)據(jù)。
■在數(shù)據(jù)湖中粗心會帶來安全風險。由于存儲了如此多的數(shù)據(jù),安全和訪問風險可能會增加。如果沒有必要的預(yù)防措施,某些敏感數(shù)據(jù)最終可能會“存在”在數(shù)據(jù)湖中,并可供任何有權(quán)訪問數(shù)據(jù)湖的人使用。Data Lakehouse旨在接收結(jié)構(gòu)化或非結(jié)構(gòu)化數(shù)據(jù)。使用這種方法,企業(yè)可以從處理非結(jié)構(gòu)化數(shù)據(jù)中受益,這些數(shù)據(jù)只需要存儲庫,而不需要像湖這樣的倉庫基礎(chǔ)設(shè)施。由于新的系統(tǒng)設(shè)計,Lakehouses 有可能被創(chuàng)建,為低成本開放格式的數(shù)據(jù)倉庫實施類似的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)操作工具。作為 Data Lakehouse 應(yīng)用程序的功能,可以實現(xiàn)以下能力:■有利用價值的數(shù)據(jù)存儲
■支持所有文件格式的所有類型的數(shù)據(jù)
■通過數(shù)據(jù)管理機制支持模式
■同時寫入和讀取數(shù)據(jù)
■優(yōu)化對數(shù)據(jù)科學和機器學習工具的訪問
■一個系統(tǒng)可幫助數(shù)據(jù)團隊更高效、更快速地移動數(shù)據(jù),而無需訪問多個系統(tǒng)
■可以應(yīng)用 ACID 事務(wù),它允許同時讀取和寫入數(shù)據(jù)
■數(shù)據(jù)科學、機器學習和數(shù)據(jù)分析項目的實時分析
■可擴展性和靈活性
■成為開源的所有優(yōu)勢
這種方法的優(yōu)點可以是:
■簡化模式
■更好地處理和分析數(shù)據(jù)
■減少數(shù)據(jù)流量和冗余
■更快、更有效地利用團隊時間這種方法還可以利用無服務(wù)器處理在青銅層、白銀層和黃金層之間移動數(shù)據(jù)。通常,黃金層隨后在數(shù)據(jù)倉庫中用于洞察力計算,并且所有現(xiàn)有數(shù)據(jù)都已通過數(shù)據(jù)質(zhì)量檢查、ETL 或使用文件/表連接的數(shù)據(jù)處理進行管理。

數(shù)據(jù)倉庫
數(shù)據(jù)倉庫是以結(jié)構(gòu)化格式存儲的大量業(yè)務(wù)數(shù)據(jù),可幫助組織獲取知識。在數(shù)據(jù)倉庫中寫入數(shù)據(jù)之前,有必要知道它的模式。它從各種來源獲取數(shù)據(jù)并將其格式化以匹配定義的模式。數(shù)據(jù)倉庫經(jīng)過優(yōu)化,可以以高效的查詢方式處理和存儲。此外,它提供了良好的數(shù)據(jù)質(zhì)量并快速獲得查詢結(jié)果。數(shù)據(jù)倉庫無法處理原始數(shù)據(jù)或非結(jié)構(gòu)化數(shù)據(jù)。由于數(shù)據(jù)不斷增長,它的維護非常昂貴。此外,它不是處理復(fù)雜數(shù)據(jù)(例如使用機器學習或預(yù)測分析)的最佳解決方案。
主要挑戰(zhàn):
■高成本
■不靈活的架構(gòu)
■高復(fù)雜性和冗余
■性能緩慢且性能下降
機器學習與數(shù)據(jù)科學
機器學習和數(shù)據(jù)科學對于某些企業(yè)尋找用于預(yù)測客戶行為或參與、欺詐、產(chǎn)品定制或簡單推薦的模型非常有用。在這個領(lǐng)域還有很多需要討論和探索的方面,但在這一點上,機器學習工程師將需要數(shù)據(jù),而這正是讓數(shù)據(jù)工程師發(fā)揮作用的地方。為了向他們提供需要的數(shù)據(jù),在這背后使用一個簡單的存儲庫(Data Lake/ Lakehouse)或結(jié)構(gòu)化數(shù)據(jù)(Data Warehouse)。
洞察力和 KPI
洞察力和 KPI 是每項業(yè)務(wù)的一些主要驅(qū)動力。它們代表歷史或?qū)崟r信息,對于跟蹤模式、了解當前狀態(tài)以及根據(jù)準確、非冗余和提供方向的數(shù)據(jù)做出明智的決策非常有用。還有一些與數(shù)據(jù)質(zhì)量相關(guān)的 KPI,這些 KPI 展示了需要在源系統(tǒng)上更正的信息或一些缺少關(guān)鍵洞察力的信息。該層通常使用數(shù)據(jù)倉庫和更傳統(tǒng)的方式或關(guān)系模型,使用 3N 范式和數(shù)據(jù)建模的幾種方法之一(Kimball、Inmon、Data Vault 等)來提供數(shù)據(jù)。
(部分內(nèi)容來源網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系刪除)