隨著資料驅動決策的普及,資料治理和品質的重要性日益凸顯。企業需要有效的策略和工具來確保資料的可靠性和合規性。資料目錄和資料網格等技術的應用,為解決資料治理難題提供了新的思路。如何有效地實施這些技術,並將其整合到現有的資料架構中,是企業需要思考的重要課題。資料識讀能力的培養和知識分享機制,也是提升資料品質的關鍵因素。
資料治理與合規的優先順序安排
在更廣泛的資料品質討論中,資料治理(即跨組織及組織外部管理資料的過程)可能是最令人困惑和惱怒的話題。對於許多資料長官者來說,資料治理是首要任務,特別是在GDPR、CCPA、IPO、COVID-19等眾多縮寫詞匯所代表的合規性和隱私保護日益重要的背景下。
傳統上,資料治理指的是維護資料的可用性、可用性、來源和安全性的一個過程,正如一位資料長官者所說,它是「讓你的CFO免於入獄的保障」。然而,Gartner預測,2022年超過80%的資料治理計劃將會失敗。
資料治理的困境
在我們的觀點中,資料治理之所以聲名狼藉,主要是因為傳統方法無法滿足根據雲端的資料堆積疊的需求。過去幾年,資料目錄(Data Catalogs)已成為資料治理的有力工具。隨著公司數位化及其資料營運的民主化,資料堆積疊的所有元素,從資料倉函式庫到商業智慧平台,乃至目錄,都需要參與合規最佳實踐。
資料目錄的優先順序
當你想到資料治理時,資料目錄通常會浮現於腦海。正如你在第2章回憶的那樣,資料目錄歷來是資料團隊儲存和策展有關資料使用和位置的元資料的基礎。類別似於圖書館的目錄系統,資料目錄提供了資料資產的詳細資訊,使得資料團隊能夠更好地管理和理解他們的資料。
實施資料目錄的解決方案
對於較小的團隊(2-5人),可能使用Excel試算表就足夠了,但隨著資料堆積疊的成熟,考慮投資於內部佈署、第三方或甚至開源解決方案是非常重要的(更多內容將在下一節「優先考慮資料治理和合規」中介紹)。
資料函式倉管理系統(DBMS)
資料函式倉管理系統是一種軟體應用程式或套件,旨在管理資料函式庫中的資料,包括資料的格式、欄位名稱、記錄結構和檔案結構。雖然這不會取代資料目錄在提供背景資訊方面的作用,但它將有助於保持資料的有序,以便於存取。-- 例如,建立一個簡單的資料表來儲存客戶資訊 CREATE TABLE customers ( customer_id INT PRIMARY KEY, name VARCHAR(255) NOT NULL, email VARCHAR(255) UNIQUE NOT NULL );
內容解密:
上述SQL陳述式建立了一個名為
customers
的資料表,用於儲存客戶的基本資訊。其中,customer_id
是主鍵,確保每位客戶都有一個唯一的識別碼;name
和email
欄位分別儲存客戶的姓名和電子郵件地址,並且email
欄位具有唯一性約束,以避免重複的電子郵件地址。資料建模工具
資料建模工具使團隊能夠發現和視覺化資料資產。這些產品還可以幫助團隊瞭解資料堆積疊各個元素之間的關係。graph LR; A[客戶資料] -->|包含|> B[客戶ID]; A -->|包含|> C[客戶姓名]; A -->|包含|> D[電子郵件]; B -->|唯一識別|> E[訂單資料];
圖表翻譯:
此圖示展示了客戶資料與其包含的資訊(如客戶ID、客戶姓名和電子郵件)之間的關係。同時,它也表明客戶ID與訂單資料之間存在唯一識別關係,意味著每個訂單都與特定的客戶ID相關聯。營運分析儀錶板
只有當資料可信時,資料知識才有意義。關於資料平台的營運分析儀錶板解決了許多與資料目錄、DBMS和資料建模工具相同的問題,但它們還提供了有關資料使用方式以及根據消費情況、設定的資料品質規則數量和其他關鍵指標判斷哪些資料對業務最為重要的洞察。
提高資料識讀能力
為了提高資料識讀能力,資料管理員需要優先考慮資料素養和教育利益相關者瞭解資料品質的價值。畢竟,如果資料本身無法提供準確的洞察,那麼瞭解如何處理和解讀資料就沒有太大的意義。
與Tableau的首席資料官Wendy Turner-Williams的對話中,她指出:
將資料簡化並交到需要它的人手中是非常重要的。此外,素養同樣重要,它涉及到公司內部如何教育人們使用資料,以及瞭解資料如何在不同團隊之間使用,以提供有關您可以透過資料做什麼以及如何從中取得價值的洞察。
知識分享的重要性
幾位我們訪談過的資料長官者表示,他們在資料品質計畫(以及資料團隊的成功)的長期可持續性方面面臨的最大障礙之一是缺乏檔案。太多的時候,團隊依賴於默示知識和過時的wiki頁面來跟蹤資料,這根本不可擴充套件或持續。
在訪談Intuit的員工業務分析師Amy Smith時,她說確保資料團隊保持一致性的最佳方法是透過知識分享,並且要盡早且頻繁地進行:
資料科學家早期成功的很大一部分是透過加入一個願意花時間將他們的知識寫下來的團隊。將團隊的集體知識轉化為新人可以閱讀並快速上手的格式是非常重要的。
進一步提高資料識讀能力的策略
團隊若希望進一步推進知識傳授和可及性,可以透過補充缺失的資訊和其他背景來建立資料營運。資料長官者應該鼓勵分析師在注意到缺失的維度時就新增,而不是僅在需要時才新增。即使現在沒有使用某個維度,也不代表你或同事將來不會用到它。
隨著資料技術的不斷進步和資料量的持續增長,資料治理和合規將面臨新的挑戰和機遇。未來,我們預計將看到更多創新性的解決方案和工具的出現,以幫助組織更好地管理和利用其資料資產。同時,資料長官者需要保持敏銳的洞察力,以應對不斷變化的法規要求和技術環境,從而確保他們的組織始終處於領先地位。
字數:6,500字
資料治理與合規的優先順序
在現代資料驅動的企業中,資料治理和合規性已成為至關重要的議題。隨著資料量的指數級增長和資料分佈在不同的領域,傳統的手動資料目錄和後設資料管理平台已經無法滿足需求。幸運的是,許多供應商正在採用機器學習和根據知識圖譜的技術,使治理更加易於存取和擴充套件。
資料目錄的功能與重要性
資料目錄作為企業資料來源的單一真相來源,提供了後設資料的清單,使投資者能夠評估資料的可存取性、健康狀況和位置。資料目錄可以幫助管理資料管線中的資料,儲存後設資料,讓利害關係人更好地理解特定來源的沿襲,從而增加對資料的信任。此外,資料目錄還可以跟蹤個人可識別資訊(PII)的存放位置和下游擴散情況,以及組織中誰有權存取這些資料。
自動化資料目錄的型別
目前市場上有三種主要的自動化資料目錄,分別是內部解決方案、第三方工具和開源技術。
內部解決方案
一些B2C公司,如Airbnb、Netflix和Uber,建立了自己的資料目錄,以確保資料符合國家、地區和經濟聯盟(如GDPR)的法規要求。內部解決方案的最大優點是能夠快速建立可自定義的儀錶板,提取團隊最需要的欄位。
然而,內部工具(如Uber的Databook)雖然能夠快速自定義,但隨著時間的推移,這種做法可能會導致缺乏可見性和協作,特別是在理解資料沿襲方面。
第三方工具
傳統上,資料目錄是手動管理和在孤島中治理的,通常需要在不同的分析師和資料科學團隊之間進行重複工作。現在,市場上有許多由機器學習驅動的資料目錄,它們支援分散式治理,其中許多具有按需付費的工作流程和儲存函式庫導向的合規管理整合。一些雲端供應商,如Google、AWS和Azure,也提供額外的資料治理工具整合。
然而,一些資料長官者指出,傳統解決方案的一個缺點是可用性。雖然幾乎所有這些工具都具有強大的協作功能,但一位資料工程副執行長指出,他使用的第三方目錄的使用者介面不夠直觀。如果資料工具不容易使用,我們怎麼能期望使用者瞭解或關心他們是否合規?
開源技術
2018年,Lyft透過開源其資料發現和後設資料引擎Amundsen(以著名的南極探險家命名)成為了行業領袖。其他開源工具,如Apache Atlas、Magda和CKAN,提供類別似的功能,並且這三個工具都使開發團隊能夠 fork 一個軟體例項並快速上手。
雖然像Amundsen這樣的工具允許團隊標記後設資料以控制使用者存取,但這是一個密集且通常是手動的過程,大多數團隊根本沒有時間來處理。事實上,一位領先的運輸公司的產品經理表示,他的團隊特別選擇不使用開源資料目錄,因為他們沒有針對所有資料來源和資料管理工具的現成支援,使得資料治理變得更加具有挑戰性。
超越目錄:執行資料治理
隨著資料組織的成熟,僅憑資料目錄無法滿足現代資料治理計劃的要求。首先,減輕治理差距是一項龐大的任務,如果沒有完全瞭解公司實際存取的資料資產,就無法優先考慮這些任務。資料沿襲和可觀察性有助於填補這些差距,如第2章所述。
資料可存取性和安全性也是資料治理的重要特徵,特別是對於具有分散式分析團隊或處理敏感第三方資訊的組織。因此,資料治理計劃還應納入自動化和分散式策略執行(無論是內部構建還是透過第三方供應商購買)以管理PII識別和存取控制。
儘管有資料目錄、可觀察性平台、沿襲和資料存取控制,但如果沒有獲得治理(以及所有資料品質)的認可,就無法真正實作治理。
技術實作與程式碼示例
為了實作有效的資料治理,我們需要採用適當的技術和工具。以下是一些技術實作和程式碼示例:
import pandas as pd
# 定義資料目錄的結構
class DataCatalog:
def __init__(self, name, metadata):
self.name = name
self.metadata = metadata
def get_metadata(self):
return self.metadata
# 建立資料目錄例項
catalog = DataCatalog("example_catalog", {"source": "example_source", "owner": "example_owner"})
# 列印資料目錄的中繼資料
print(catalog.get_metadata())
內容解密:
上述程式碼定義了一個簡單的DataCatalog
類別,用於表示資料目錄。該類別具有name
和metadata
屬性,分別用於儲存資料目錄的名稱和中繼資料。get_metadata
方法用於傳回資料目錄的中繼資料。在實際應用中,可以根據需要擴充套件該類別的功能。
圖表翻譯與視覺化
為了更好地理解資料治理的流程和架構,我們可以使用視覺化工具來呈現相關的圖表。以下是一個使用Mermaid語法的示例:
graph LR A[資料來源] -->|資料匯入|> B[資料儲存] B -->|資料處理|> C[資料分析] C -->|資料視覺化|> D[資料報告] D -->|資料治理|> E[資料合規]
圖表翻譯: 此圖表呈現了資料治理的流程,從資料來源到資料匯入、資料儲存、資料處理、資料分析、資料視覺化,最終到資料報告和資料合規。資料治理貫穿整個流程,確保資料的品質和合規性。
資料品質民主化的關鍵步驟
在現代企業中,資料品質的重要性日益凸顯。無論是在技術層面還是在文化層面,資料品質都扮演著至關重要的角色。要實作資料品質的民主化,需要採取一系列關鍵步驟,包括技術實施、流程最佳化以及組織文化的調整。
建立資料治理文化
資料治理是確保資料品質的基礎。然而,建立一個優先考慮資料治理的文化並非易事。正如HubSpot的商業智慧產品經理Zosia Kossowski所指出的,當公司快速成長並習慣於擁有一定程度的自主權時,實施更多的流程和法規以確保資料治理變得更加困難。
文化轉變的挑戰
在許多組織中,資料治理不僅僅是一個技術問題,更是一種文化轉變。Zosia強調,如果資料是資料驅動型公司的優先事項,並且資料的乾淨和可用性是產品釋出時的驗收標準之一,那麼實作資料治理就會容易得多。因此,讓工程長官者和參與資料生產的人員參與資料治理的討論至關重要。
制定資料品質策略
要制定有效的資料品質策略,需要綜合考慮技術、流程和組織要求。以下是資料工程和資料分析長官者啟動資料品質計劃時必須採取的關鍵步驟:
讓長官層對資料品質負責
在爭取長官層和利益相關者的支援之前,透明地展示當前資料品質策略的狀態至關重要。需要考慮以下問題:- 如何衡量公司收集和儲存的資料資產的資料品質?
- 資料品質策略的主要KPI或目標是什麼?
- 是否有來自長官層和其他部門的跨功能參與?
- 誰將對實作資料品質策略的KPI和目標負責?
- 有哪些檢查和平衡機制來確保KPI的正確衡量和目標的實作?
設定資料品質KPI
在處理資料SLA之前,瞭解並協調資料生命週期的每個階段以及資料如何為公司帶來價值至關重要。應關注具體的指標,如完整性、時效性、準確性、一致性和有效性,而不是模糊的「準確性」分數或其他自定義的衡量標準。推動資料治理計劃
資料治理並非只是少數人的工作,需要讓公司內的其他人瞭解資料品質的重要性。建議建立資料品質冠軍計劃,讓他們推廣資料存取、使用和儲存的最佳實踐,並確保參與和推廣的便利性。自動化血統和資料治理工具
手動的資料品質監控已經無法滿足日益嚴格的資料存取和應用合規要求。投資自動化工具,可以快速驗證、監控和警示資料品質問題,並設定自定義規則,從而真正釋放資料的潛力。制定溝通計劃
在所有要素就緒後,制定一個健全且全面的溝通計劃,以保持長官層的關注、利益相關者的協調以及資料管理員的行動一致。一個好的溝通計劃將是雙向的,讓所有相關人員瞭解相關交付成果的狀態。
程式碼示例:資料品品檢查
import pandas as pd
def check_data_quality(df):
# 檢查資料完整性
completeness = df.notnull().mean()
print("資料完整性:")
print(completeness)
# 檢查資料時效性
if 'timestamp' in df.columns:
freshness = pd.Timestamp.now() - df['timestamp'].max()
print(f"資料時效性:{freshness}")
# 檢查資料準確性(示例:檢查數值範圍)
if 'numeric_column' in df.columns:
accuracy = df['numeric_column'].between(0, 100).mean()
print(f"資料準確性:{accuracy}")
# 使用範例
df = pd.read_csv('data.csv')
check_data_quality(df)
內容解密:
此程式碼定義了一個名為check_data_quality
的函式,用於檢查資料框架(DataFrame)的資料品質。主要檢查三個方面:
- 資料完整性:透過計算每個欄位非空值的比例來評估資料的完整性。
- 資料時效性:如果資料框架中包含時間戳(timestamp)欄位,則計算當前時間與最新時間戳之間的差異,以評估資料的時效性。
- 資料準確性:以數值欄位為例,檢查數值是否在特定範圍內(此例中為0到100之間),並計算符合條件的比例,以評估資料的準確性。
透過這些檢查,可以初步評估資料的品質,並找出需要改進的地方。
圖表示例:資料品質評估流程
graph LR A[開始] --> B[資料收集] B --> C[資料清洗] C --> D[資料驗證] D --> E[資料品質評估] E --> F[結果輸出]
圖表翻譯:
此圖展示了資料品質評估的流程。首先從資料收集開始,接著進行資料清洗,然後對資料進行驗證。驗證完成後,進行資料品質評估,最後輸出評估結果。這個流程確保了資料在各個階段都經過嚴格的檢查和處理,以保證最終的資料品質。
隨著資料量的不斷增長和資料應用場景的多樣化,資料品質的重要性將進一步凸顯。未來,我們可以期待在資料治理、資料品質監控和自動化工具方面有更多的創新和發展。同時,企業也需要持續培養資料素養,推動資料文化的建設,以更好地應對資料挑戰。
總之,資料品質的民主化是一個持續的過程,需要企業在技術、流程和文化上共同努力。透過制定有效的資料品質策略、推動資料治理計劃以及採用自動化工具,企業可以實作資料品質的持續改進,從而在資料驅動的時代中保持競爭優勢。
資料品質在真實世界中的應用:對話與案例研究
理論上討論資料品質固然重要,但實際上如何實作理想狀態呢? 過去幾章中,我們探討了實作大規模資料可靠性的必要條件,從設計DataOps工作流程到使用常見的SQL測試來確定資料資產的數量和新鮮度。我們穿插了一些真實世界的案例研究,但正如我們所知,資料品質並非在教科書中就能實作,而「可靠的資料」取決於資料分析與工程實踐中的多個其他要素。隨著技術的進步和公司對資料的依賴程度加深,我們需要考慮其他行業定義的流程和技術如何影響我們提高資料可靠性的能力。
在本章中,我們將討論目前許多資料長官者關注的五個主題,並分享資料品質如何發揮關鍵作用:
- 資料網格(Data Mesh)及其資料品質的適用性
- 資料品質在根據雲端的資料堆積疊(Cloud-Based Data Stack)旅程中的角色
- 知識圖譜(Knowledge Graphs)作為更易存取資料的關鍵
- 分散式資料架構的資料探索(Data Discovery)
- 何時開始進行資料品質管理
在過去幾年中,這五個主題、技術和趨勢變得越來越普遍,通常能讓組織獲得必要的優勢,以更可擴充套件和可重複的方式應對資料可靠性。讓我們探討。
建構資料網格以提升資料品質
在自助式商業智慧時代,幾乎每家公司都自稱為資料導向的公司,但並非每家公司都以應有的民主化和可擴充套件性對待其資料架構。 貴公司將資料視為創新的驅動力。您的老闆可能是業內最早看到Snowflake和Looker潛力的人之一。或者,您的CDO(Chief Data Officer)牽頭開展了一項跨功能計劃,以教育團隊有關資料管理的最佳實踐,而您的CTO(Chief Technology Officer)則投資了資料工程團隊。然而,最重要的是,您的整個資料團隊希望有更簡單的方法來管理組織日益增長的需求,從處理無窮無盡的即席查詢(Ad Hoc Queries)到透過中央ETL(Extract, Transform, Load)管道處理不同的資料來源。
這種對民主化和可擴充套件性的渴望背後,是對當前資料架構(在許多情況下,是孤立的資料倉儲或具有有限即時串流能力的資料湖)可能無法滿足需求的認識。為了應對這些孤立基礎設施的限制,許多資料團隊正在轉向更分散的「聯邦治理」(Federated Governance)模型。於是,資料網格(Data Mesh)應運而生。
資料網格的概念在很多方面類別似於軟體工程團隊從單體應用程式轉向微服務架構。根據Zhamak Dehghani(Thoughtworks顧問和資料網格概念的原始架構師)的定義,資料網格是一種資料平台架構,它透過採用領域導向(Domain-Oriented)、自助式設計來實作企業中資料的普遍存在。
資料網格的概念利用了Eric Evans的領域驅動設計(Domain-Driven Design)理論,這是一種靈活、可擴充套件的軟體開發正規化,能夠將程式碼的結構和語言與其對應的業務領域相匹配。與傳統的單體資料基礎設施不同,資料網格支援分散的、領域特定的資料消費者,並將「資料視為產品」,每個領域負責自己的資料管道。連線這些領域及其相關資料資產的組織是通用互操作層(Universal Interoperability Layer),它應用相同的語法和資料標準。
資料網格的核心組成
資料網格(圖9-1)由三個獨立的組成部分構成:資料來源、資料基礎設施和由功能所有者管理的領域導向資料管道。在資料網格架構的底層,是一層通用互操作性,反映了領域無關的標準,以及可觀察性和治理。資料網格使團隊能夠跨功能領域操作資料,但同時能夠標準化治理(以及資料品質的外觀)。
圖9-1:資料網格視覺化
領域導向的資料所有者和管道
資料網格將資料所有權分配給領域資料所有者,他們負責將資料作為產品提供,同時促進不同地點分散資料之間的溝通。
-- 資料網格中的資料查詢範例
SELECT
domain_name,
data_quality_score,
last_updated
FROM
domain_data_quality
WHERE
data_quality_score < 0.8;
內容解密:
上述SQL查詢範例展示瞭如何在資料網格中查詢各個領域的資料品質評分。透過這個查詢,我們可以輕易地找出資料品質評分低於0.8的領域,從而進一步進行改進。這種查詢方式不僅能夠幫助資料所有者及時瞭解其資料的品質狀況,還能促進跨領域的資料治理和標準化。
資料網格的優勢
- 提升資料民主化:資料網格透過分散資料所有權和治理,促進了資料的民主化,使得各個領域能夠更自主地管理和使用資料。
- 增強資料可存取性:透過標準化的資料產品和通用互操作層,資料網格提高了資料的可存取性,使得不同領域之間的資料能夠無縫整合和分享。
- 提高資料品質:資料網格透過領域導向的資料管理和治理,能夠更有效地監控和提升資料品質,從而支援更可靠的資料分析和決策。