隨著國家定義了「新型基礎設施建設」(新基建),新科技時代已經來臨。如果說新基建的目標是構建起新時代科技中國的軀體的話,那麼數據就是這個軀體中無處不在的血液,沒有這個血液,所有的一切都將沒有正常運行的能量來源。
「數據」早已有之,但長久以來,除了科技公司和大型企業外,人們對「數據」應用得並不充分。而隨著數據滲透到當今幾乎每一個行業和業務職能領域,滲透到幾乎任何體量的社會組織中,並成為重要的生產因素,人們對於海量數據的挖掘和運用,推動了21世紀以來新一波的生產率增長和消費浪潮的到來。所以,在現今及未來可預見的時代,說「一切皆數據」也不為過!
不過,如今的「數據」相對以前的「數據」,其內涵有了極大的擴展,而涉及到的相關技術和工具也發生了翻天覆地的變化,於是「大數據」的概念產生了。
大數據(big data)是指海量的、多樣化的交易數據、交互數據、終端與網絡數據以及傳感數據等,其主要特徵包括:
海量的數據規模:大數據一般指在10TB規模以上的數據量,甚至常常是PB(1PB=1024TB)級別的。
快速的數據流轉:大數據通常需要能夠獲得實時的處理、分析和利用,能夠實現數據的快速流轉。
多樣的數據類型:大數據通常用來形容大量的非結構化和半結構化數據,對數據的類型幾乎沒有任何限制,如文檔、圖片、音頻、視頻、電子郵件、網頁等。
較低的價值密度:半結構化和非結構化的數據,其價值密度通常來說較低,所以相比那些價值密度較高的結構化數據,更需要使用大數據技術進行處理。
信息技術的核心就在於數據,數據與幾乎每一項信息技術都息息相關,或為因,或為果;幾乎任何一項信息技術,或者需要依賴數據,或者能夠產生數據,或者直接或間接地服務於數據。
物聯網:通過物聯網採集的數據通常具有非結構化、碎片化、時空域等特性,所以需要通過新型的數據存儲和處理的大數據技術來加以利用。
人工智慧:想提升人工智慧本身的性能和精準度,必須依賴大量的樣本數據,一個粗略的經驗法則是,對於監督學習算法,在每給定約5000個標註樣本的情況下,人工智慧程序將達到可以接受的性能;而當至少有1000萬個標註樣本的數據集可用於訓練時,人工智慧程序將達到甚至超過人類表現。
企業上云:大量企業在長期運營中積累了豐富的數據資源,但一直都是分散在獨立的系統中進行碎片化保存的,而隨著企業上雲的全面推進,未來這些碎片化保存的數據資源將能夠在被遷移到雲中後,基於大數據技術進行價值挖掘。
邊緣計算:隨著邊緣計算的發展,企業收集數據方式將逐漸轉向設備端,由於邊緣計算相對雲計算更加靠近數據源頭,可以有效降低數據傳輸處理到反饋的遲延,同時具有顯著的效率成本優勢和安全隱私保護優勢,因此將進一步擴大數據採集的適用場景和規模。
開源軟體:越來越多的大數據相關開源軟體的出現,能夠幫助使用者實時訪問和處理數據,中小型組織和初創企業將從中受益,免費的開源軟體可以幫助企業降低運營成本,並促進他們去學習、掌握、生產和使用大數據,從而夯實大數據產業的底層基礎,並將與頭部科技巨頭企業一起,共同激活整體大數據產業生態。
5G技術:5G網絡的高帶寬和低時延,將使得單位時間內產生的數據量急劇增長,單位區域內的聯網設備成倍增加,人與物、物與物之間的連接急劇增多。在5G時代,數據採集渠道將更加豐富,更加海量的原始數據將被收集。
下面再說說大數據的學習路線。由於大數據涉及的範疇非常廣,為了避免盲人摸象,因此對於初學者來說,建議沿著大數據處理的整個流程,對各個環節的基本概念和主要框架有個整體的認識,之後可以再根據自己的興趣或具體崗位的需要,聚焦於某個細分領域,如數據可視化、數據倉庫、數據分析、數據安全等等。
大數據處理的主要環節包括數據採集、數據存儲、數據處理和數據應用。
數據採集:大數據處理的第一步是數據採集。現在的中大型項目會採用微服務架構進行分布式部署,所以數據的採集需要在多臺伺服器上進行,且採集過程不能影響正常業務的開展。基於這種需求,就衍生了多種日誌收集工具,如Flume、Logstash、Kibana等,它們都能通過簡單的配置完成複雜的數據採集和數據聚合工作。
數據存儲:採集數據後的下一個問題就是:數據該如何進行存儲?通常大家最為熟知是MySQL、Oracle等傳統的關係型資料庫,它們的優點是能夠快速存儲結構化的數據。但大數據的數據結構通常是半結構化(如日誌數據)甚至是非結構化的(如視頻、音頻、網頁),為了解決海量半結構化和非結構化數據的存儲,衍生了Hadoop HDFS、KFS、GFS等分布式可擴展的文件系統。分布式文件系統完美地解決了海量數據存儲的問題,但是一個優秀的數據存儲系統需要同時考慮數據存儲和訪問兩方面的問題,比如你希望能夠對數據進行隨機訪問,這是傳統的關係型資料庫所擅長的,基於這種需求,就產生了HBase、MongoDB。
數據分析:大數據處理最重要的環節就是數據分析,數據分析通常分為兩種:批處理和流處理。批處理是指對一段時間內海量的離線數據進行統一的處理,對應的處理框架有Hadoop MapReduce、Spark、Flink等;流處理是指對流轉中的數據進行處理,即在接收到數據的同時就對其進行處理,對應的處理框架有Storm、Spark Streaming、Flink Streaming等。批處理和流處理各有其適用的場景,時間不敏感或者硬體資源有限,可以採用批處理;時間敏感和及時性要求高就可以採用流處理。此外,為了能夠讓熟悉SQL的人員也能夠進行數據的分析,查詢分析框架應運而生,常用的有Hive、Spark SQL、Flink SQL、Pig、Phoenix等。這些框架都能夠使用標準的SQL或者類SQL語法靈活地進行數據的查詢分析,這樣,即便是沒有較強編程能力的非後臺工程師,也能很容易地進行大數據分析了。
數據應用:數據分析完成後,接下來就是具體數據應用的範疇了,這取決於實際的業務需求。比如你可以將數據直接進行可視化展現以輔助決策或預警,或者將數據用於優化產品中的個性化頁面和推薦算法,或者將數據用於訓練你的人工智慧機器學習模型,這些都屬於具體大數據應用領域的範疇,也都有著對應的框架和技術棧可供使用。
上面提及了一些標準的大數據處理流程所用到的技術框架,但是實際的大數據處理流程比上面會複雜很多,希望系統和全面學習大數據的朋友,這裡有一本[大數據入門指南]完整介紹了針對大數據由淺入深的學習路線及重要知識點,此外還有一本[為數據而生 大數據創新實踐]有很多針對大數據應用領域不錯的案例、觀點和方法論,有興趣的朋友可以根據下面線索獲取。
創作不易,歡迎朋友們關注、評論、轉發。如企業轉載或其它,請聯繫:keji5u(科技無憂訂閱號)