官术网_书友最值得收藏!

1.2 數據架構

我們先對數據架構進行深入的解釋,包括它是做什么的,它為什么有用,何時使用它,以及Apache Spark如何匹配它。

在常見的場景下,現代數據體系結構有4個基本特征,如圖1-1所示。

  • 數據采集。
  • 數據湖。
  • 數據科學。
  • 數據訪問。

圖像說明文字

圖1-1 數據架構

我們將對每一項進行介紹,然后在后續章節里,再對其進行詳細解釋。

1.2.1 數據采集

從傳統的角度來看,應該在嚴格的規則下采集數據,并根據預定模式對數據進行格式化。這個處理過程稱為提取(Extract)、轉換(Transform)和加載(Load),簡稱ETL,如圖1-2所示,它在廣泛的實踐中得到了大量的商業工具和開源產品的支持。

圖像說明文字

圖1-2 ETL方法

ETL方法趨向于前端檢查,確保數據質量和模式一致性,以簡化后續的在線分析處理。它特別適合處理具有特定特征集的數據,即涉及經典實體關系模型的數據。不過,它并不完全適用于所有場景。

在“大數據革命”期間,對結構化、半結構化和非結構化的數據的潛在需求猛增,產生了可處理不同特性數據的系統。這些數據有4V特點:大體量(Volume)、多樣性(Variety)、高速度(Velocity)和準確性(Veracity)。傳統的ETL方法在這種情況下陷入困境,因為它需要太多的時間來處理大量的數據,并且面對變化時過于僵化。現在出現了一種不同的方法,稱為“基于讀時模式”的范式。該方法以原始形式(或至少非常接近)采集數據,而歸一化、驗證及其他的細節操作在分析過程中一并完成。

這個處理過程稱為提取、加載和轉換(簡稱ELT),參考傳統方法的表示,它的表示如圖1-3所示。

圖像說明文字

圖1-3 ELT方法

這種方法重視數據傳遞的即時性,它對細節操作進行延遲直到必須要處理為止。這樣,數據科學家可以第一時間對數據進行操作,并采用一系列技術來找出數據中的隱藏知識,這在傳統方法中是不可能實現的。

雖然我們只是做了一個較高層次的概述,但這種方法是非常重要的,本書將通過實現多種基于讀時模式的算法進行深入研究。假定我們都采用ELT方法進行數據采集,也就是說,我們鼓勵在用戶方便的時間加載數據。這可能是在每n分鐘、通宵或者低負載的時間段。然后用戶判斷是否采用諸如離線批量處理的方式來進行數據完整性、質量等方面的檢查。

1.2.2 數據湖

數據湖是一種方便的、普遍適用的數據存儲方式。它很有用,因為它有一些重要的優點,主要如下。

  • 可靠的存儲。
  • 可擴展的數據處理能力。

下面對這些優點做簡要說明。

1.可靠的存儲

實現數據湖的底層存儲有很好的預選方案,包括Hadoop分布式文件系統(HDFS)、MapR-FS和亞馬遜S3等。

在本書中,HDFS是我們預設的存儲實現方式。此外,本書作者使用分布式Spark配置,部署在另一種資源協調者YARN上,并在Hortonworks的HDP環境中運行。因此,除非另有說明,否則本書使用的技術就是HDFS。如果你對其中的某些技術還不太熟悉,我們會在本章中進一步討論。

在任何情況下我們都必須知道,Spark在本地引用HDFS位置,通過前綴file://訪問本地文件位置,通過前綴s3a://引用S3位置。

2.可擴展的數據處理能力

顯然,Apache Spark是我們選擇的數據處理平臺。Spark允許用戶在自己偏愛的環境中執行代碼,可以是本地、獨立節點、YARN或Mesos,只要在masterURL中配置合適的集群管理器。這可以在以下3個位置中的任何1個位置完成。

  • 在執行spark-submit命令時使用--master選項。
  • conf/spark-defaults.conf文件中添加spark.master屬性。
  • SparkConf對象中調用setMaster方法。

如果你還不熟悉HDFS,或者沒有訪問過集群,那你可以使用本地文件系統運行本地Spark實例,這對于測試來說是很有幫助的。不過請注意,經常出現的不良行為往往只在集群上執行時才出現。所以,如果你想認真地使用Spark,那么應該在分布式集群管理器上進行投資,為什么不試試Spark的獨立集群模式,或者使用亞馬遜的AWS EMR呢?例如,亞馬遜提供了許多成本較低的云計算方案,你可以訪問亞馬遜的AWS網站了解Spot實例的思路。

1.2.3 數據科學平臺

數據科學平臺提供了大量的服務和API,使數據科學工作能夠有效地進行,如探索性的數據分析、機器學習模型創建和改進、圖像和音頻處理、自然語言處理和文本情感分析等。

數據科學平臺是Spark真正強大的地方,也是本書介紹的要點,它開發了一系列強大的本地機器學習庫,具有難以比擬的并行圖形處理能力,并構建了一個強大的社區。Spark為數據科學提供了無限的可能。

本書接下來的部分章節將深入分析這些領域,包括第6~8章。

1.2.4 數據訪問

數據湖中的數據最常被數據工程師和科學家利用Hadoop生態系統工具訪問,如Apache Spark、Pig、Hive、Impala或Drill等。然而,其他用戶,甚至是其他系統需要訪問數據的時候,常用的工具要么太技術化,要么不能滿足用戶在現實世界中關于延時的要求。

這種情況下,數據通常要被復制到數據集市或索引存儲庫中,這樣,它才可能被應用于更傳統的應用方法,如報表或面板。這個過程稱為數據出口,通常涉及索引創建和為了實現低延遲而進行的數據重構。

幸運的是,Apache Spark有各種各樣的適配器和連接器可以連接數據庫、商業智能(BI)軟件以及可視化軟件和報表軟件。本書將介紹相關內容。

主站蜘蛛池模板: 伊宁县| 达孜县| 邓州市| 黄梅县| 剑阁县| 南阳市| 冷水江市| 新丰县| 泰顺县| 安福县| 连南| 饶平县| 迁西县| 朝阳县| 松桃| 弋阳县| 游戏| 铜梁县| 清流县| 普陀区| 荃湾区| 修武县| 吴忠市| 沁源县| 井研县| 曲麻莱县| 贞丰县| 永宁县| 武山县| 吴忠市| 云霄县| 平果县| 甘洛县| 噶尔县| 建水县| 鸡西市| 乐山市| 湖口县| 金塔县| 鹿邑县| 绍兴市|