大數據就是任何超過了一臺計算機處理能力的龐大數據量。–JohnRauser。
大數據代表了更多的信息,更多理解信息的角度。
大數據,又稱巨量資料,指的是所涉及的數據資料量規模巨大到無法通過人腦甚至主流軟件工具,在合理時間內達到擷取、管理、處理、并整理成為幫助企業經營決策更積極目的的資訊。
二、大數據的分類
- 結構化數據,簡單來說就是數據庫。也稱作行數據,是由二維表結構來邏輯表達和實現的數據,嚴格地遵循數據格式與長度規范,主要通過關系型數據庫進行存儲和管理。結構化數據標記,是一種能讓網站以更好的姿態展示在搜索結果當中的方式,搜索引擎都支持標準的結構化數據標記。(員工的姓名,年齡等)
- 非結構話數據,是與結構化數據相對的,不適于由數據庫二維表來表現,包括所有格式的辦公文檔、XML、HTML、各類報表、圖片和咅頻、視頻信息等。支持非結構化數據的數據庫采用多值字段、了字段和變長字段機制進行數據項的創建和管理,廣泛應用于全文檢索和各種多媒體信息處理領域。(員工的聲音,頭像等)
- 半結構化數據是一種適于數據庫集成的數據模型,也就是說,適于描述包含在兩個或多個數據庫(這些數據庫含有不同模式的相似數據)中的數據。(員工的簡歷等)
三、大數據的特點
1、規模性(Volume)大數據的數據量是驚人的,隨著技術的發展,數據量開始爆發性增長,達到TB甚至PB級別。例如,淘寶網平常每天的商品交易數據約20TB(1TB=1024GB),全球最大設計平臺Facebook的用戶,每天產生的日志數據超過了300TB(日志數據是記錄用戶操作記錄的,并非發帖內容)。大數據如此龐大的數據量,是無法通過人工處理的。需要智能的算法、強大的數據處理平臺和新的數據處理技術來處理這些大數據。
2、多樣性(Varity) 大數據廣泛的數據來源,決定了大數據形式的多樣性。大數據大體上可以分為三類,分別是結構化數據、非結構化的數據、半結構化數據。結構化數的特點是數據間因果關系強,比如息管理系統數據、醫療系統數據等;非結構化的數據的特點是數據間沒有因果關系,比如音頻、圖片、視頻等;半結構化數據的特點是數據間的因果關系弱。比如網頁數據、郵件記錄等。
3、高速性(Velocity) 大數據的交換和傳播是通過互聯網、云計算等方式實現的,遠比傳統媒介的信息交換和傳播速度快捷。大數據與海量數據的重要區別,除了大數據的數據規模更大以外,大數據對處理數據的響應速度有更嚴格的要求。實時分析而非批量分析,數據輸入、處理與丟棄立刻見效,幾乎無延遲。數據的增長速度和處理速度是大數據高速性的重要體現。
4、價值性(Value) 價值性是大數據的核心特點?,F實中大量的數據是無效或者低價值的,大數據最大的價值在于通過從大量不相關的各種類型的數據中,挖掘出對未來趨勢與模式預測分析有價值的數據。比如,某寶電商平臺每天產生的大量交易數據(大數據),通過一些算法可以分析出具有某些特征的人喜歡什么類型的商品,然后根據客戶的特征,給其推薦TA喜歡的商品。
軟件
1.Docker Compose是一個用來幫助定義和分享多容器應用的工具。有了Compose,就能創建一個YAML文件來定義服務,只需要一個命令,就能夠啟動所有東西,也能夠把所有東西銷毀掉。
2.Zeppelin是一個基于Web的notebook,提供交互數據分析和可視化。后臺支持接入多種數據處理引擎,如Spark,Hive等。支持多種語言:Scala(Apache Spark)、Python(Apache Spark)、SparkSQL、 Hive、 Markdown、Shell等。
3.Hadoop是由java語言編寫的,在分布式服務器集群上存儲海量數據并運行分布式分析應用的開源框架,其核心部件是HDFS與MapReduce。HDFS為海量的數據提供了存儲,則MapReduce為海量的數據提供了計算。
4.Hive是基于Hadoop的一個數據倉庫工具,用來進行數據提取、轉化、加載,可以存儲、查詢和分析存儲在Hadoop中的大規模數據的機制。
5.Hbase其實是Hadoop database的簡稱,是一種NoSQL數據庫,主要適用于海量明細數據(十億、百億)的隨機實時查詢,如日志明細、交易清單、軌跡行為等。
tips: Hive適合用來對一段時間內的數據進行分析查詢。適合用來進行大數據的實時查詢。
6.Spark是一種基于內存的快速、通用、可擴展的大數據計算引擎。它集批處理、實時流處理、交互式查詢、圖計算與機器學習于一體。
tips: Spark是那么一個專門用來對那些分布式存儲的大數據進行處理的工具,它要借助Hadoop HDFS的數據存儲。Hadoop的MapReduce是分步對數據進行處理的,存取磁盤的過程會影響處理速度。Spark從磁盤中讀取數據,把中間數據放到內存中,完成所有必須的分析處理,將結果寫回集群,所以Spark更快。所以Hadoop + Spack結合起來用更好。
7.JupyterLab是一個集 Jupyter Notebook、文本編輯器、終端以及各種個性化組件(有VScode內味了)于一體的全能IDE。
8.prestoDB是一種開源的分布式 SQL 查詢引擎,從頭開始設計用于針對任何規模的數據進行快速分析查詢。它既可支持非關系數據源,例如 Hadoop 分布式文件系統 (HDFS)、Amazon S3、Cassandra、MongoDB 和 HBase,又可支持關系數據源,例如 MySQL、PostgreSQL、Amazon Redshift、Microsoft SQL Server 和 Teradata。
9.TensorFlow是一個端到端開源機器學習平臺。它擁有一個全面而靈活的生態系統,其中包含各種工具、庫和社區資源,可助力研究人員推動先進機器學習技術的發展,并使開發者能夠輕松地構建和部署由機器學習提供支持的應用。
四、主流的大數據架構Lambda
Lambda架構是其根據多年進行分布式大數據系統的經驗總結提煉而成,目標是設計出一個能滿足實時大數據系統關鍵特性的架構,包括有:高容錯、低延時和可擴展等。Lambda架構整合離線計算和實時計算,融合不可變性(Immunability),讀寫分離和復雜性隔離等一系列架構原則,可集成Hadoop,Kafka,Storm,Spark,Hbase等各類大數據組件。
1、Batch View預運算查詢函數,預先建立索引,支持隨機讀取,能很好的解決特別大級別的數據且還需要支持實時查詢,要消耗非常龐大的資源的問題。
2、Batch Layer執行的是批量處理,例如Hadoop或者Spark支持的Map-Reduce方式。利用Batch Layer進行預運算的作用實際上就是將大數據變小,從而有效地利用資源,改善實時查詢的性能。
3、Serving Layer是一個專用的分布式數據庫。Batch Layer通過對master dataset執行查詢獲得了batch view,而Serving Layer就要負責對batch view進行操作,從而為最終的實時查詢提供支撐。
4、Speed Layer對更新到Serving layer帶來的高延遲的一種補充,它是一種增量的計算,而非重新運算。Speed layer與Batch layer非常相似,它們之間最大的區別是前者只處理最近的數據,后者則要處理所有的數據。
作者:李丹
分享此文一切功德,皆悉回向給文章原作者及眾讀者.
免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。
藍藍設計( www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務、UI設計公司、界面設計公司、UI設計服務公司、數據可視化設計公司、UI交互設計公司、高端網站設計公司、UI咨詢、用戶體驗公司、軟件界面設計公司