解構現代資料棧

danny_2018發表於2022-12-26

現代資料棧或資料棧是作為企業資料基礎架構基礎的雲原生應用程式的集合。現代資料棧的概念已迅速普及,並已成為各種規模的組織從資料中提取價值的事實上的方式。與工業價值鏈一樣,現代資料棧遵循攝取、轉換、儲存和產品化資料的邏輯。

本部落格是對現代資料棧的介紹,在接下來的文章中我們將深入探討每個不同的元件。‍

什麼是現代資料棧?

現代資料棧可以定義為用於將原始資料轉換為可操作的業務洞察力的不同技術的集合。源自這些不同工具的基礎架構可用於降低管理資料平臺的複雜性,同時確保資料得到充分利用。公司可以採用最適合其需求的工具,並且可以根據用例新增不同型別的層。‍

現代資料棧簡史

幾十年來,本地資料庫足以滿足公司為其用例儲存的有限資料量。然而隨著時間的推移,資料量呈指數級增長,這要求公司找到解決方案來保留所有資訊。這導致了新技術的出現,使組織能夠處理大量資料,如 Hadoop、Vertica 和 MongoDB。這是 2000 年代的大資料時代,當時系統通常是分散式 SQL 或 NoSQL。‍ 大資料時代持續了不到十年,但在 2010 年代初和中期被廣泛採用的雲技術打斷。傳統的本地大資料技術難以遷移到雲端。與更敏捷的雲資料倉儲相比,它們更高的複雜性、成本和所需的專業知識使它們處於劣勢。這一切都始於 2010 年的 Redshift——幾年後 BigQuery 和 Snowflake 緊隨其後。

使現代資料棧得到廣泛採用的變化

重要的是要記住,我們目前所知道的現代資料棧是資料的最新發展。只有最近的技術變化才能讓公司充分利用其資料的潛力。讓我們來看看支援採用現代資料棧的一些關鍵發展。

‍雲資料倉儲的興起

2012 年,當亞馬遜推出 Redshift 時,資料倉儲格局發生了顯著的變化。當今市場上的所有其他解決方案(例如 Google BigQuery 和 Snowflake)都遵循了亞馬遜發起的革命。這些資料倉儲工具的開發與 MPP(大規模並行處理)或 OLAP 系統(如 Redshift)和 OLTP 系統(如 PostgreSQL)之間的差異有關。但我們將在關注資料倉儲技術的部落格上更詳細地討論這個話題。

那麼雲資料倉儲發生了什麼變化?

• 速度級別:雲資料倉儲顯著減少 SQL 查詢的處理時間。在 Redshit 之前,計算緩慢是大規模利用資料的主要障礙。

• 連線性:雲資料倉儲將資料來源連線到資料倉儲在雲中要容易得多。最重要的是雲資料倉儲管理的格式和資料來源比本地資料倉儲多。

• 使用者可訪問性:本地資料倉儲由中央團隊管理。這意味著終端使用者的訪問受到限制或間接訪問。另一方面,所有目標使用者都可以訪問和使用雲資料倉儲。這自然會在組織層面產生影響。也就是說本地資料倉儲限制了儲存伺服器資源的請求數量,從而限制了充分利用可用資料的潛力。

• 可擴充套件性:雲資料倉儲的興起使得越來越多的人可以訪問資料成為可能,使組織內資料民主化。

• 可負擔性:雲資料倉儲的定價模型比傳統的本地解決方案(如 Informatica 和 Oracle)靈活得多,因為它們基於儲存的資料量和/或消耗的計算資源。‍

從 ETL 到 ELT

在之前的部落格中,我們已經討論過從 ETL 過渡到 ELT 的重要性。簡而言之,透過 ETL 流程,資料在載入到資料倉儲之前進行了轉換。另一方面,使用 ELT,在進行任何轉換之前將非結構化資料載入到資料倉儲中。資料轉換包括清理、檢查重複項、使資料格式適應目標資料庫等等。在資料載入到倉庫之前進行所有這些轉換可以讓公司避免資料庫過載。這就是傳統資料倉儲解決方案如此依賴 ETL 的原因。隨著雲的興起,儲存不再是問題,管道管理的成本也急劇下降。這使組織能夠將所有資料載入到資料庫中,而無需在提取和攝取階段做出關鍵的戰略決策。

‍自助分析和資料民主化

雲資料倉儲的興起不僅促進了從 ETL 到 ELT 的過渡,而且也促進了 Power BI、Looker 和 Tableau 等 BI 工具的廣泛採用。這些易於使用的解決方案允許組織內越來越多的角色訪問資料並做出資料驅動的業務決策。

雲資料倉儲是唯一重要的嗎?

重要的是要記住,僅僅擁有一個基於雲的平臺並不能使資料棧成為現代資料棧。正如 Jordan Volz 在他的部落格中所寫,許多雲架構無法滿足被納入該類別的要求。對他而言,技術需要滿足五項主要功能才能包含在現代資料棧中。

• 它需要以雲資料倉儲為中心

• 它必須作為託管服務提供:只需最少的設定工作和使用者配置

• 它使資料民主化:這些工具的構建方式使組織內儘可能多的人可以訪問資料

• 彈性工作負載

• 它必須將自動化作為核心競爭力

現代資料棧的主要元件

現代資料棧的目標是使資料更具可操作性,並減少從組織中的資訊中獲取洞察所需的時間和複雜性。然而由於資料工具和技術的數量不斷增加,現代資料棧變得越來越複雜。讓我們分解現代資料棧中的一些關鍵技術。各個元件可能會有所不同,但通常包括以下內容:

資料整合

主要工具:Airbyte、Fivetran、Stitch、Portable

組織從各種系統(如資料庫、CRM 系統、應用程式伺服器等)收集大量資料。資料整合是將這些不同源系統中的資料提取並載入到單個統一檢視中的過程。資料整合可以定義為將資料從整個企業傳送到集中式系統(如資料倉儲或資料湖)的過程,從而形成一個單一、統一的位置,用於訪問流經資料中心的所有資訊。

資料轉換/建模

主要工具:dbt

如果原始資料沒有以允許組織對其進行分析的方式結構化,那麼它就完全沒有用。這意味著需要先轉換資料,然後才能使用它來獲得洞察力並預測業務。資料轉換可以定義為改變資料格式或結構的過程。正如我們在本部落格中所解釋的,資料可以在資料管道的兩個不同階段進行轉換。通常使用本地資料倉儲的組織使用 ETL(提取、轉換、載入)流程,其中轉換髮生在中間——在資料載入到倉庫之前。

但是當今大多陣列織都使用基於雲的倉庫,這使得可以顯著增加倉庫的儲存容量,從而允許公司儲存原始資料並在需要時對其進行轉換。該模型稱為 ELT(提取、載入、轉換)。

工作流編排

主要工具:Airflow、Dagster

一旦你決定了轉換,你需要找到一種方法來編排它們,以便它們以你喜歡的頻率執行。資料編排使與資料攝取相關的流程自動化,例如將來自多個來源的資料彙集在一起,將其組合起來,併為分析做準備。‍

資料倉儲

主要工具:Snowflake、Firebolt、Google BigQuery、Amazon Redshift

如果不訪問倉庫則無法訪問資料,因為資料倉儲是一個連線所有其他部分的地方。因此所有資料都會流入和流出資料倉儲。這就是為什麼我們認為它是現代資料棧的中心。‍

反向 ETL

主要工具:Hightouch、Census

簡單來說,反向 ETL 就是 ETL 的逆過程。基本上是將資料從倉庫轉移到外部系統(如 CRM、廣告平臺或任何其他 SaaS 應用程式)以使資料可操作的過程。換句話說反向 ETL 允許將資料倉儲中的資料提供給業務團隊——彌合資料團隊的工作與最終資料消費者的需求之間的差距。這裡的挑戰與越來越多的人要求組織內的資料有關。這就是為什麼今天的組織旨在參與所謂的運營分析,這基本上意味著將資料提供給運營團隊(如銷售、營銷等)以用於功能用例。但是,由於缺乏將資料直接從倉庫轉移到不同業務應用程式的管道,業務團隊難以訪問雲資料倉儲並充分利用可用資料。資料倉儲中的資料的使用僅限於建立儀表板和 BI 報告。這就是反向 ETL 對於完全使用資料至關重要的地方。‍

商業智慧與分析

主要工具:Power BI、Looker、Tableau

BI 和分析包括允許訪問組織收集的資料以最佳化業務決策和績效的應用程式、基礎架構和工具。

資料可觀測性

資料可觀測性已成為現代資料棧不可或缺的一部分。對 Gartner 而言,資料可觀測性對於支援和增強任何現代資料架構至關重要。正如我們在本部落格中所解釋的,資料可觀測性是 DevOps 世界中的一個概念,適用於資料、資料管道和平臺的上下文。與軟體可觀測性類似,資料可觀測性使用自動化來監控資料質量,以便在潛在資料問題成為業務問題之前識別它們。換句話說,它使資料工程師能夠監控資料並快速解決任何可能的問題。隨著組織每天處理更多資料,他們的資料棧變得越來越複雜。同時不容忍不良資料,這使得全面瞭解資料管道的狀態以監控質量、效能或效率的損失變得越來越重要。最重要的是組織需要在資料故障傳播之前識別它們,從而瞭解在資料災難的情況下下一步該做什麼。‍ 資料可觀測性可以採取以下形式:

• 觀測資料和後設資料:這意味著監控資料及其後設資料以及歷史模式的變化,並觀察準確性和完整性。

• 觀測資料管道:這意味著監控資料管道和後設資料中關於資料量、頻率、模式和行為的任何變化。

• 觀測資料基礎設施:這意味著監控和分析查詢日誌中的處理層日誌和操作後設資料。

這些不同形式的資料可觀測性有助於資料工程師和分析工程師等技術角色,也有助於資料分析師和業務分析師等業務角色。

有完美的資料棧嗎?

現在可能會問自己:每個組織都應該採用完美的資料棧嗎?回答是否定的。在選擇最佳工具和技術來處理資料時,沒有一種萬能的方法。每個組織都有不同的資料成熟度、不同的資料團隊、不同的結構、流程等等。但是我們可以將現代資料棧分為三個不同的組:基本、中級和高階。

基本資料棧

一個基本的資料棧應該能夠使用 dbt 或自定義 SQL 攝取、儲存、建模資料,然後根據用例,組織制定其反向 ETL 流程以進行運營分析或投資於 BI 工具。通常基本資料棧中的 BI 工具是開源工具,例如 Metabase。最重要的是一個基本的資料棧包括測試或資料質量監控的基本形式。‍

中級資料棧

中級資料棧要複雜一些,除了我們上面描述的內容之外,它還包括某種形式的工作流編排和資料可觀測性工具。基本測試和資料質量監控使團隊能夠了解資料資產的質量狀態。但是它們無法提供知道如何快速解決潛在問題的方法。這就是資料可觀測性的用武之地。整個資料棧(日誌、作業、資料集、管道、BI 儀表板、資料科學模型等)的資料可觀測性訊號 - 支援大規模監控和異常檢測。

高階資料堆疊

高階資料堆疊包括以下技術和工具:

• 整合:使用 Airbyte、Fivetran 和 Segment 等工具將資料從一個地方提取並載入到另一個地方

• 倉儲:將所有資料儲存在一個地方——使用 Snowflake、Firebolt、Google BigQuery 和 Amazon Redshift 等工具

• 轉換:將資料轉化為可用資料——使用 dbt 等工具

• 工作流程編排:使用 Airflow 和 Dagster 等工具將來自不同來源的資料彙總、組合併為分析做準備

• 反向 ETL:將資料從倉庫移動到外部系統——使用 Hightouch 和 Census 等工具

• BI 和分析:使用 Power BI、Looker 和 Tableau 等工具分析組織收集的所有資訊並做出資料驅動的決策

• 資料可觀測性:確保資料在資料的整個生命週期內(從攝取到 BI 工具)都是可靠的。資料可觀測性不是一個元件,而是現代資料棧的監督層。‍

結論

在過去的幾年裡,基礎設施、技術、流程和實踐以驚人的速度發生了變化。雲的興起、雲和儲存的隔離以及資料民主化阻礙了現代資料棧的運動。請記住沒有一種萬能的方法,而且它是針對特定用例的——取決於組織的資料成熟度級別、資料團隊等因素。在此部落格上詳細瞭解我們認為您應該如何根據組織的成熟度來建立現代資料團隊。‍

許多人認為資料倉儲是現代資料棧的中心。因此為了更好地描述資料管道每個階段所需的不同流程和工具,我們創造了“倉庫左側”和“倉庫右側”這兩個術語。我們基本上將資料倉儲之前發生的所有事情稱為“左側”,將資料倉儲之後發生的所有事情稱為“右側”。在以下部落格中,我們將描述現代資料棧左側發生的情況,從第一步開始:資料整合。

來自 “ ApacheHudi ”, 原文作者:小漫;原文連結:https://mp.weixin.qq.com/s/Y_s9QK-OdVaAY1mc_idoFA,如有侵權,請聯絡管理員刪除。

相關文章