作者:Benjamin Bengfort 譯者:王純超 來源:InfoQ
數據科學流水線是一種教學模型,用于教授對數據進行全面統計分析所需的工作流,如圖 1-1 所示。在每個環節中,分析人員要轉換初始數據集,然后從各種數據源增強或采集數據,再通過描述性或推斷性的統計方法將數據整理為可以計算的正常形式,最后通過可視化或報告的形式生成結果。這些分析過程通常用于回答特定問題,或用于調查數據與某些業務實踐間的關系,以進行驗證或決策。
?
?
圖 1-1:數據科學流水線
這個原始的工作流模型引領了大多數早期的數據科學思想。最初關于數據科學應用程序的討論圍繞著如何創建有意義的信息可視化——這也許令人意外,主要是因為這個工作流旨在生成幫助人們進行決策的依據。通過對大型數據集的聚合、描述和建模,人們能夠更好地根據模式(而不是單個數據點)作出判斷。數據可視化是新生的數據產品,它們從數據中產生價值,幫助人們基于學習到的內容采取行動,然后再從這些行動中生成新數據。
然而,面對呈指數增長的數據量和數據增長速度,這種以人力驅動的模型并不是一個可擴展的解決方案,這也正是許多企業都為之抓狂的原因。根據預測,到 2020 年,我們每年生成和復制的數據將達到 44ZB,即 44 萬億 GB 。即使實際規模只達到預測規模的一小部分,手動的數據準備和挖掘方法也根本無法及時提供有意義的信息。
除了規模上的局限,這種以人為中心的單向工作流也不能有效地設計能夠學習的自適應系統。機器學習算法已經廣泛應用于學術界之外,非常符合數據產品的定義。因為模型會擬合現有的數據集,所以這些類型的算法可以從數據中獲取價值,然后通過對新的觀察值作出預測來產生新的數據。
如果要創建一個框架,支持構建可擴展和可自動化的解決方案,從而能解釋數據和生成有用的信息,就必須修改數據科學流水線,使其包含機器學習方法的反饋循環。
大數據工作流
考慮到可擴展性和自動化的目標,我們可以將人力驅動的數據科學流水線重構為包括采集、分段、計算和工作流管理這 4 個主要階段的迭代模型(如圖 1-2 所示)。與數據科學流水線一樣,這種模型其實就是采集原始數據并將其轉換為有用的信息。關鍵的區別在于,數據產品流水線是在操作化和自動化工作流的步驟中構建起來的。通過將采集、分段和計算這 3 個步驟轉換為自動化工作流,最終產生可重用的數據產品。工作流管理步驟還引入了反饋流機制,來自其中一個作業執行的輸出可以自動作為下一次迭代的數據輸入,因此為機器學習應用程序提供了必要的自適應框架。
?
?
圖 1-2:大數據流水線
采集階段既是模型的初始化階段,也是用戶和模型之間的應用交互階段。在初始化期間,用戶指定數據源的位置或標注數據(另一種數據采集形式);在交互期間,用戶消費模型的預測結果并提供用于鞏固模型的反饋。
分段階段是轉換數據的階段,使其變為可消費的形式并存儲起來,從而能夠用于處理。本階段還負責數據的歸一化和標準化,以及一些計算數據存儲中的數據管理工作。
計算階段是真正“干活”的階段,主要負責挖掘數據以獲取有用的信息,執行聚合或報告,構建用于推薦、聚類或分類的機器學習模型。
工作流管理階段執行抽象、編排和自動化任務,使工作流的各步驟可用于生產環境。此步驟應能產生自動按需運行的應用程序、作業或腳本。
Hadoop 已經演變成了包含各種工具的生態系統,可以實現上述流水線的部分環節。例如,Sqoop 和 Kafka 可用于數據采集,支持將關系數據庫導入 Hadoop 或分布式消息隊列,以進行按需處理。在 Hadoop 中,像 Hive 和 HBase 之類的數據倉庫提供了大規模的數據管理機會;Spark 的 GraphX、MLlib 或 Mahout 庫提供了分析包,供大規模計算和驗證使用。在本書中,我們將探索 Hadoop 生態系統的許多組件,并了解它們如何融入整個大數據流水線。
總結
在過去十年間,關于“什么是數據科學”的討論發生了巨大變化——從純分析到與可視化相關的方法,再到如今數據產品的創建。數據產品是使用數據訓練、自適應且廣泛適用的經濟引擎,從數據中獲取價值并產生新的數據。數據產品引發了一次信息經濟革命,改變了小企業、技術創業公司、大型組織甚至政府機構看待其數據的方式。
本文描述了數據科學流水線原始教學模型的一個改良版本,并提出了數據產品流水線。數據產品流水線是迭代的,包括兩個階段:構建階段和運行階段(包括 4 個階段:交互、數據、存儲和計算)。這種架構可以有條不紊地執行大規模的數據分析,保留了實驗、人與數據產品間的交互。而且當圍繞數據產品構建的應用程序很大時,它還能支持部分環節的自動化。希望這個流水線可以幫你了解數據產品生命周期的大體框架,也能成為探索更多創新項目的基石。
因為本書是從數據科學家的角度探討分布式計算和 Hadoop,所以我們認為,Hadoop 的作用是從大量不同來源采集多種形式的數據(其中包含大量實例、事件和類),并將其轉換為有價值的事物——數據產品。
本文內容來自作者圖書作品《Hadoop 數據分析》








