大數(shù)據(jù)基礎(chǔ)學(xué)習(xí):大數(shù)據(jù)架構(gòu)的組成部分
大數(shù)據(jù)體系結(jié)構(gòu)旨在處理對于傳統(tǒng)數(shù)據(jù)庫系統(tǒng)而言太大或太復(fù)雜的數(shù)據(jù)的提取,處理和分析。組織進入大數(shù)據(jù)領(lǐng)域的門檻因用戶及其工具的能力而異。對于某些人來說,這可能意味著數(shù)百GB的數(shù)據(jù),而對于其他人來說,則意味著數(shù)百TB的數(shù)據(jù)。隨著用于處理大數(shù)據(jù)集的工具的發(fā)展,大數(shù)據(jù)的含義也在發(fā)展。這個術(shù)語越來越多地涉及您可以通過高級分析從數(shù)據(jù)集中提取的價值,而不是嚴格地涉及數(shù)據(jù)的大小,盡管在這種情況下,它們往往會很大。
多年來,數(shù)據(jù)格局發(fā)生了變化。數(shù)據(jù)可以執(zhí)行或應(yīng)執(zhí)行的操作已更改。存儲成本已大大降低,而收集數(shù)據(jù)的方式卻在不斷增長。一些數(shù)據(jù)快速到達,不斷要求收集和觀察。其他數(shù)據(jù)的到達速度較慢,但以非常大的塊為單位,通常以幾十年的歷史數(shù)據(jù)的形式到達。您可能面臨著高級分析問題,或者需要機器學(xué)習(xí)的問題。這些是大數(shù)據(jù)架構(gòu)尋求解決的挑戰(zhàn)。
大數(shù)據(jù)解決方案通常涉及以下一種或多種類型的工作負載:
靜態(tài)處理大數(shù)據(jù)源。
實時處理運動中的大數(shù)據(jù)。
交互式探索大數(shù)據(jù)。
預(yù)測分析和機器學(xué)習(xí)。
在需要時考慮大數(shù)據(jù)架構(gòu):
以傳統(tǒng)數(shù)據(jù)庫太大的卷存儲和處理數(shù)據(jù)。
轉(zhuǎn)換非結(jié)構(gòu)化數(shù)據(jù)以進行分析和報告。
實時,低延遲地捕獲,處理和分析無限的數(shù)據(jù)流。
大數(shù)據(jù)架構(gòu)的組成部分
下圖顯示了適合大數(shù)據(jù)架構(gòu)的邏輯組件。單個解決方案可能未包含此圖中的每個項目。

大多數(shù)大數(shù)據(jù)架構(gòu)都包含以下部分或全部組件:
數(shù)據(jù)來源。所有大數(shù)據(jù)解決方案都始于一個或多個數(shù)據(jù)源。示例包括:
應(yīng)用程序數(shù)據(jù)存儲,例如關(guān)系數(shù)據(jù)庫。
應(yīng)用程序生成的靜態(tài)文件,例如Web服務(wù)器日志文件。
實時數(shù)據(jù)源,例如IoT設(shè)備。
數(shù)據(jù)存儲。用于批處理操作的數(shù)據(jù)通常存儲在分布式文件存儲中,該文件存儲可以容納各種格式的大量大文件。這種存儲通常稱為數(shù)據(jù)湖。用于實現(xiàn)此存儲的選項包括Azure存儲中的Azure Data Lake Store或Blob容器。
批處理。由于數(shù)據(jù)集非常大,因此大數(shù)據(jù)解決方案通常必須使用長時間運行的批處理作業(yè)來處理數(shù)據(jù)文件,以過濾,匯總和準備數(shù)據(jù)進行分析。通常,這些作業(yè)涉及讀取源文件,對其進行處理并將輸出寫入新文件。選項包括在Azure Data Lake Analytics中運行U-SQL作業(yè),在HDInsight Hadoop群集中使用Hive,Pig或自定義Map / Reduce作業(yè),或在HDInsight Spark群集中使用Java,Scala或Python程序。
實時消息提取。如果解決方案包括實時源,則體系結(jié)構(gòu)必須包括一種捕獲和存儲實時消息以進行流處理的方法。這可能是一個簡單的數(shù)據(jù)存儲,將傳入消息放入一個文件夾中進行處理。但是,許多解決方案都需要消息攝取存儲來充當(dāng)消息的緩沖區(qū),并支持橫向擴展處理,可靠的傳遞和其他消息排隊語義。流架構(gòu)的這一部分通常稱為流緩沖。選項包括Azure事件中心,Azure IoT中心和Kafka。
流處理。捕獲實時消息后,解決方案必須通過過濾,聚合或準備數(shù)據(jù)進行分析的方式來處理它們。然后將處理后的流數(shù)據(jù)寫入輸出接收器。Azure流分析基于永久運行的SQL查詢提供托管流處理服務(wù),該SQL查詢對無限制流進行操作。您還可以在HDInsight群集中使用開源Apache流技術(shù),例如Storm和Spark流。
分析數(shù)據(jù)存儲。許多大數(shù)據(jù)解決方案準備要分析的數(shù)據(jù),然后以可以使用分析工具查詢的結(jié)構(gòu)化格式提供處理后的數(shù)據(jù)。如大多數(shù)傳統(tǒng)商業(yè)智能(BI)解決方案中所見,用于服務(wù)這些查詢的分析數(shù)據(jù)存儲可以是Kimball式的關(guān)系數(shù)據(jù)倉庫?;蛘?,可以通過低延遲NoSQL技術(shù)(例如HBase)或交互式Hive數(shù)據(jù)庫(在分布式數(shù)據(jù)存儲中的數(shù)據(jù)文件上提供元數(shù)據(jù)抽象)來呈現(xiàn)數(shù)據(jù)。Azure Synapse Analytics為大型,基于云的數(shù)據(jù)倉庫提供托管服務(wù)。HDInsight支持Interactive Hive,HBase和Spark SQL,它們也可以用于提供數(shù)據(jù)以進行分析。
分析和報告。大多數(shù)大數(shù)據(jù)解決方案的目標是通過分析和報告提供對數(shù)據(jù)的見解。為了使用戶能夠分析數(shù)據(jù),體系結(jié)構(gòu)可以包括數(shù)據(jù)建模層,例如Azure Analysis Services中的多維OLAP多維數(shù)據(jù)集或表格數(shù)據(jù)模型。通過使用Microsoft Power BI或Microsoft Excel中的建模和可視化技術(shù),它可能還支持自助服務(wù)BI。分析和報告還可以采取數(shù)據(jù)科學(xué)家或數(shù)據(jù)分析師進行交互式數(shù)據(jù)探索的形式。對于這些情況,許多Azure服務(wù)都支持分析筆記本,例如Jupyter,使這些用戶能夠利用Python或R發(fā)揮其現(xiàn)有技能。對于大規(guī)模數(shù)據(jù)探索,您可以獨立使用Microsoft R Server或與Spark一起使用。
編排可視化。大多數(shù)大數(shù)據(jù)解決方案由重復(fù)的數(shù)據(jù)處理操作組成,這些操作封裝在工作流中,可以轉(zhuǎn)換源數(shù)據(jù),在多個源和接收器之間移動數(shù)據(jù),將處理后的數(shù)據(jù)加載到分析數(shù)據(jù)存儲中或?qū)⒔Y(jié)果直接推到報表或儀表板上。若要自動化這些工作流程,可以使用編排技術(shù),例如Azure Data Factory或Apache Oozie和Sqoop。