1. 大數據分析平台安全保障從幾方面入手
1.大數據存儲安全
通過大數據安全存儲保護措施的規劃和布局,協同技術的發展,增加安全保護投資,實現大數據平台的安全保護,實現業務數據的集中處理。
2.大數據雲安全
大數據一般需要在雲端上傳,下載和交互,以吸引越來越多的黑客和雲端的病毒攻擊和客戶端安全保護至關重要。
3.保護個人隱私信息
有必要保護大數據時代的隱私不受技術和監管層面的影響,並改善用戶個人信息的安全系統。
4.業務系統安全
支持業務系統,管理系統,外部信息,決策支持系統,雲平台,大數據分析系統,大數據存儲系統等應用系統的安全需求,充分保證系統的安全性要求。施工。
5.安全組織和管理
建立包括策略管理在內的安全管理系統和安全管理組織,構建安全管理平台和安全評估。
6.安全標准和規范
為大數據平台的信息安全系統制定技術標准,規范,規則和規定。
2. 大數據需要掌握哪些技能
大數據學什麼
大數據需要掌握的內容包括8個方面,你可以根據這個路線圖的順序學習,選擇培訓機構的時候重點關注機構的口碑,希望你早日學有所成。
3. 大數據分析應該掌握哪些基礎知識
大數據分析師應該要學的知識有,統計概率理論基礎,軟體操作結合分析模型進行實際運用,數據挖掘或者數據分析方向性選擇,數據分析業務應用。
1、統計概率理論基礎
這是重中之重,千里之台,起於壘土,最重要的就是最下面的那幾層。統計思維,統計方法,這里首先是市場調研數據的獲取與整理,然後是最簡單的描述性分析,其次是常用的推斷性分析,方差分析,到高級的相關,回歸等多元統計分析,掌握了這些原理,才能進行下一步。
2、軟體操作結合分析模型進行實際運用
關於數據分析主流軟體有(從上手度從易到難):Excel,SPSS,Stata,R,SAS等。首先是學會怎樣操作這些軟體,然後是利用軟體從數據的清洗開始一步步進行處理,分析,最後輸出結果,檢驗及解讀數據。
3、數據挖掘或者數據分析方向性選擇
其實數據分析也包含數據挖掘,但在工作中做到後面會細分到分析方向和挖掘方向,兩者已有區別,關於數據挖掘也涉及到許多模型演算法,如:關聯法則、神經網路、決策樹、遺傳演算法、可視技術等。
4、數據分析業務應用
這一步也是最難學習的一步,行業有別,業務不同,業務的不同所運用的分析方法亦有區分,實際工作是解決業務問題,因此對業務的洞察能力非常重要。(3)大數據平台技術標准擴展閱讀
分析工作內容
1、搜索引擎分析師(Search Engine Optimization Strategy Analyst,簡稱SEO分析師)是一項新興信息技術職業,主要關注搜索引擎動態,修建網站,拓展網路營銷渠道,網站內部優化,流量數據分析,策劃外鏈執行方案,負責競價推廣。
2、SEO分析師需要精通商業搜索引擎相關知識與市場運作。通過編程,HTML,CSS,javaScript,MicrosoftASP.NET,Perl,PHP,Python等建立網站進行各種以用戶體驗為主同時帶給公司盈利但可能失敗的項目嘗試。
4. 大數據核心技術有哪些
大數據技術的體系龐大且復雜,基礎的技術包含數據的採集、數據預處理、分布式存儲、NoSQL資料庫、數據倉庫、機器學習、並行計算、可視化等各種技術范疇和不同的技術層面。首先給出一個通用化的大數據處理框架,主要分為下面幾個方面:數據採集與預處理、數據存儲、數據清洗、數據查詢分析和數據可視化。
一、數據採集與預處理
對於各種來源的數據,包括移動互聯網數據、社交網路的數據等,這些結構化和非結構化的海量數據是零散的,也就是所謂的數據孤島,此時的這些數據並沒有什麼意義,數據採集就是將這些數據寫入數據倉庫中,把零散的數據整合在一起,對這些數據綜合起來進行分析。數據採集包括文件日誌的採集、資料庫日誌的採集、關系型資料庫的接入和應用程序的接入等。在數據量比較小的時候,可以寫個定時的腳本將日誌寫入存儲系統,但隨著數據量的增長,這些方法無法提供數據安全保障,並且運維困難,需要更強壯的解決方案。
Flume NG作為實時日誌收集系統,支持在日誌系統中定製各類數據發送方,用於收集數據,同時,對數據進行簡單處理,並寫到各種數據接收方(比如文本,HDFS,Hbase等)。Flume NG採用的是三層架構:Agent層,Collector層和Store層,每一層均可水平拓展。其中Agent包含Source,Channel和 Sink,source用來消費(收集)數據源到channel組件中,channel作為中間臨時存儲,保存所有source的組件信息,sink從channel中讀取數據,讀取成功之後會刪除channel中的信息。
NDC,Netease Data Canal,直譯為網易數據運河系統,是網易針對結構化資料庫的數據實時遷移、同步和訂閱的平台化解決方案。它整合了網易過去在數據傳輸領域的各種工具和經驗,將單機資料庫、分布式資料庫、OLAP系統以及下游應用通過數據鏈路串在一起。除了保障高效的數據傳輸外,NDC的設計遵循了單元化和平台化的設計哲學。
Logstash是開源的伺服器端數據處理管道,能夠同時從多個來源採集數據、轉換數據,然後將數據發送到您最喜歡的 「存儲庫」 中。一般常用的存儲庫是Elasticsearch。Logstash 支持各種輸入選擇,可以在同一時間從眾多常用的數據來源捕捉事件,能夠以連續的流式傳輸方式,輕松地從您的日誌、指標、Web 應用、數據存儲以及各種 AWS 服務採集數據。
Sqoop,用來將關系型資料庫和Hadoop中的數據進行相互轉移的工具,可以將一個關系型資料庫(例如Mysql、Oracle)中的數據導入到Hadoop(例如HDFS、Hive、Hbase)中,也可以將Hadoop(例如HDFS、Hive、Hbase)中的數據導入到關系型資料庫(例如Mysql、Oracle)中。Sqoop 啟用了一個 MapRece 作業(極其容錯的分布式並行計算)來執行任務。Sqoop 的另一大優勢是其傳輸大量結構化或半結構化數據的過程是完全自動化的。
流式計算是行業研究的一個熱點,流式計算對多個高吞吐量的數據源進行實時的清洗、聚合和分析,可以對存在於社交網站、新聞等的數據信息流進行快速的處理並反饋,目前大數據流分析工具有很多,比如開源的strom,spark streaming等。
Strom集群結構是有一個主節點(nimbus)和多個工作節點(supervisor)組成的主從結構,主節點通過配置靜態指定或者在運行時動態選舉,nimbus與supervisor都是Storm提供的後台守護進程,之間的通信是結合Zookeeper的狀態變更通知和監控通知來處理。nimbus進程的主要職責是管理、協調和監控集群上運行的topology(包括topology的發布、任務指派、事件處理時重新指派任務等)。supervisor進程等待nimbus分配任務後生成並監控worker(jvm進程)執行任務。supervisor與worker運行在不同的jvm上,如果由supervisor啟動的某個worker因為錯誤異常退出(或被kill掉),supervisor會嘗試重新生成新的worker進程。
當使用上游模塊的數據進行計算、統計、分析時,就可以使用消息系統,尤其是分布式消息系統。Kafka使用Scala進行編寫,是一種分布式的、基於發布/訂閱的消息系統。Kafka的設計理念之一就是同時提供離線處理和實時處理,以及將數據實時備份到另一個數據中心,Kafka可以有許多的生產者和消費者分享多個主題,將消息以topic為單位進行歸納;Kafka發布消息的程序稱為procer,也叫生產者,預訂topics並消費消息的程序稱為consumer,也叫消費者;當Kafka以集群的方式運行時,可以由一個服務或者多個服務組成,每個服務叫做一個broker,運行過程中procer通過網路將消息發送到Kafka集群,集群向消費者提供消息。Kafka通過Zookeeper管理集群配置,選舉leader,以及在Consumer Group發生變化時進行rebalance。Procer使用push模式將消息發布到broker,Consumer使用pull模式從broker訂閱並消費消息。Kafka可以和Flume一起工作,如果需要將流式數據從Kafka轉移到hadoop,可以使用Flume代理agent,將Kafka當做一個來源source,這樣可以從Kafka讀取數據到Hadoop。
Zookeeper是一個分布式的,開放源碼的分布式應用程序協調服務,提供數據同步服務。它的作用主要有配置管理、名字服務、分布式鎖和集群管理。配置管理指的是在一個地方修改了配置,那麼對這個地方的配置感興趣的所有的都可以獲得變更,省去了手動拷貝配置的繁瑣,還很好的保證了數據的可靠和一致性,同時它可以通過名字來獲取資源或者服務的地址等信息,可以監控集群中機器的變化,實現了類似於心跳機制的功能。
二、數據存儲
Hadoop作為一個開源的框架,專為離線和大規模數據分析而設計,HDFS作為其核心的存儲引擎,已被廣泛用於數據存儲。
HBase,是一個分布式的、面向列的開源資料庫,可以認為是hdfs的封裝,本質是數據存儲、NoSQL資料庫。HBase是一種Key/Value系統,部署在hdfs上,克服了hdfs在隨機讀寫這個方面的缺點,與hadoop一樣,Hbase目標主要依靠橫向擴展,通過不斷增加廉價的商用伺服器,來增加計算和存儲能力。
Phoenix,相當於一個Java中間件,幫助開發工程師能夠像使用JDBC訪問關系型資料庫一樣訪問NoSQL資料庫HBase。
Yarn是一種Hadoop資源管理器,可為上層應用提供統一的資源管理和調度,它的引入為集群在利用率、資源統一管理和數據共享等方面帶來了巨大好處。Yarn由下面的幾大組件構成:一個全局的資源管理器ResourceManager、ResourceManager的每個節點代理NodeManager、表示每個應用的Application以及每一個ApplicationMaster擁有多個Container在NodeManager上運行。
Mesos是一款開源的集群管理軟體,支持Hadoop、ElasticSearch、Spark、Storm 和Kafka等應用架構。
Redis是一種速度非常快的非關系資料庫,可以存儲鍵與5種不同類型的值之間的映射,可以將存儲在內存的鍵值對數據持久化到硬碟中,使用復制特性來擴展性能,還可以使用客戶端分片來擴展寫性能。
Atlas是一個位於應用程序與MySQL之間的中間件。在後端DB看來,Atlas相當於連接它的客戶端,在前端應用看來,Atlas相當於一個DB。Atlas作為服務端與應用程序通訊,它實現了MySQL的客戶端和服務端協議,同時作為客戶端與MySQL通訊。它對應用程序屏蔽了DB的細節,同時為了降低MySQL負擔,它還維護了連接池。Atlas啟動後會創建多個線程,其中一個為主線程,其餘為工作線程。主線程負責監聽所有的客戶端連接請求,工作線程只監聽主線程的命令請求。
Ku是圍繞Hadoop生態圈建立的存儲引擎,Ku擁有和Hadoop生態圈共同的設計理念,它運行在普通的伺服器上、可分布式規模化部署、並且滿足工業界的高可用要求。其設計理念為fast analytics on fast data。作為一個開源的存儲引擎,可以同時提供低延遲的隨機讀寫和高效的數據分析能力。Ku不但提供了行級的插入、更新、刪除API,同時也提供了接近Parquet性能的批量掃描操作。使用同一份存儲,既可以進行隨機讀寫,也可以滿足數據分析的要求。Ku的應用場景很廣泛,比如可以進行實時的數據分析,用於數據可能會存在變化的時序數據應用等。
在數據存儲過程中,涉及到的數據表都是成千上百列,包含各種復雜的Query,推薦使用列式存儲方法,比如parquent,ORC等對數據進行壓縮。Parquet 可以支持靈活的壓縮選項,顯著減少磁碟上的存儲。
三、數據清洗
MapRece作為Hadoop的查詢引擎,用於大規模數據集的並行計算,」Map(映射)」和」Rece(歸約)」,是它的主要思想。它極大的方便了編程人員在不會分布式並行編程的情況下,將自己的程序運行在分布式系統中。
隨著業務數據量的增多,需要進行訓練和清洗的數據會變得越來越復雜,這個時候就需要任務調度系統,比如oozie或者azkaban,對關鍵任務進行調度和監控。
Oozie是用於Hadoop平台的一種工作流調度引擎,提供了RESTful API介面來接受用戶的提交請求(提交工作流作業),當提交了workflow後,由工作流引擎負責workflow的執行以及狀態的轉換。用戶在HDFS上部署好作業(MR作業),然後向Oozie提交Workflow,Oozie以非同步方式將作業(MR作業)提交給Hadoop。這也是為什麼當調用Oozie 的RESTful介面提交作業之後能立即返回一個JobId的原因,用戶程序不必等待作業執行完成(因為有些大作業可能會執行很久(幾個小時甚至幾天))。Oozie在後台以非同步方式,再將workflow對應的Action提交給hadoop執行。
Azkaban也是一種工作流的控制引擎,可以用來解決有多個hadoop或者spark等離線計算任務之間的依賴關系問題。azkaban主要是由三部分構成:Relational Database,Azkaban Web Server和Azkaban Executor Server。azkaban將大多數的狀態信息都保存在MySQL中,Azkaban Web Server提供了Web UI,是azkaban主要的管理者,包括project的管理、認證、調度以及對工作流執行過程中的監控等;Azkaban Executor Server用來調度工作流和任務,記錄工作流或者任務的日誌。
流計算任務的處理平台Sloth,是網易首個自研流計算平台,旨在解決公司內各產品日益增長的流計算需求。作為一個計算服務平台,其特點是易用、實時、可靠,為用戶節省技術方面(開發、運維)的投入,幫助用戶專注於解決產品本身的流計算需求。
四、數據查詢分析
Hive的核心工作就是把SQL語句翻譯成MR程序,可以將結構化的數據映射為一張資料庫表,並提供 HQL(Hive SQL)查詢功能。Hive本身不存儲和計算數據,它完全依賴於HDFS和MapRece。可以將Hive理解為一個客戶端工具,將SQL操作轉換為相應的MapRece jobs,然後在hadoop上面運行。Hive支持標準的SQL語法,免去了用戶編寫MapRece程序的過程,它的出現可以讓那些精通SQL技能、但是不熟悉MapRece 、編程能力較弱與不擅長Java語言的用戶能夠在HDFS大規模數據集上很方便地利用SQL 語言查詢、匯總、分析數據。
Hive是為大數據批量處理而生的,Hive的出現解決了傳統的關系型資料庫(MySql、Oracle)在大數據處理上的瓶頸 。Hive 將執行計劃分成map->shuffle->rece->map->shuffle->rece…的模型。如果一個Query會被編譯成多輪MapRece,則會有更多的寫中間結果。由於MapRece執行框架本身的特點,過多的中間過程會增加整個Query的執行時間。在Hive的運行過程中,用戶只需要創建表,導入數據,編寫SQL分析語句即可。剩下的過程由Hive框架自動的完成。
Impala是對Hive的一個補充,可以實現高效的SQL查詢。使用Impala來實現SQL on Hadoop,用來進行大數據實時查詢分析。通過熟悉的傳統關系型資料庫的SQL風格來操作大數據,同時數據也是可以存儲到HDFS和HBase中的。Impala沒有再使用緩慢的Hive+MapRece批處理,而是通過使用與商用並行關系資料庫中類似的分布式查詢引擎(由Query Planner、Query Coordinator和Query Exec Engine三部分組成),可以直接從HDFS或HBase中用SELECT、JOIN和統計函數查詢數據,從而大大降低了延遲。Impala將整個查詢分成一執行計劃樹,而不是一連串的MapRece任務,相比Hive沒了MapRece啟動時間。
Hive 適合於長時間的批處理查詢分析,而Impala適合於實時互動式SQL查詢,Impala給數據人員提供了快速實驗,驗證想法的大數據分析工具,可以先使用Hive進行數據轉換處理,之後使用Impala在Hive處理好後的數據集上進行快速的數據分析。總的來說:Impala把執行計劃表現為一棵完整的執行計劃樹,可以更自然地分發執行計劃到各個Impalad執行查詢,而不用像Hive那樣把它組合成管道型的map->rece模式,以此保證Impala有更好的並發性和避免不必要的中間sort與shuffle。但是Impala不支持UDF,能處理的問題有一定的限制。
Spark擁有Hadoop MapRece所具有的特點,它將Job中間輸出結果保存在內存中,從而不需要讀取HDFS。Spark 啟用了內存分布數據集,除了能夠提供互動式查詢外,它還可以優化迭代工作負載。Spark 是在 Scala 語言中實現的,它將 Scala 用作其應用程序框架。與 Hadoop 不同,Spark 和 Scala 能夠緊密集成,其中的 Scala 可以像操作本地集合對象一樣輕松地操作分布式數據集。
Nutch 是一個開源Java 實現的搜索引擎。它提供了我們運行自己的搜索引擎所需的全部工具,包括全文搜索和Web爬蟲。
Solr用Java編寫、運行在Servlet容器(如Apache Tomcat或Jetty)的一個獨立的企業級搜索應用的全文搜索伺服器。它對外提供類似於Web-service的API介面,用戶可以通過http請求,向搜索引擎伺服器提交一定格式的XML文件,生成索引;也可以通過Http Get操作提出查找請求,並得到XML格式的返回結果。
Elasticsearch是一個開源的全文搜索引擎,基於Lucene的搜索伺服器,可以快速的儲存、搜索和分析海量的數據。設計用於雲計算中,能夠達到實時搜索,穩定,可靠,快速,安裝使用方便。
還涉及到一些機器學習語言,比如,Mahout主要目標是創建一些可伸縮的機器學習演算法,供開發人員在Apache的許可下免費使用;深度學習框架Caffe以及使用數據流圖進行數值計算的開源軟體庫TensorFlow等,常用的機器學習演算法比如,貝葉斯、邏輯回歸、決策樹、神經網路、協同過濾等。
五、數據可視化
對接一些BI平台,將分析得到的數據進行可視化,用於指導決策服務。主流的BI平台比如,國外的敏捷BI Tableau、Qlikview、PowrerBI等,國內的SmallBI和新興的網易有數(可點擊這里免費試用)等。
在上面的每一個階段,保障數據的安全是不可忽視的問題。
基於網路身份認證的協議Kerberos,用來在非安全網路中,對個人通信以安全的手段進行身份認證,它允許某實體在非安全網路環境下通信,向另一個實體以一種安全的方式證明自己的身份。
控制許可權的ranger是一個Hadoop集群許可權框架,提供操作、監控、管理復雜的數據許可權,它提供一個集中的管理機制,管理基於yarn的Hadoop生態圈的所有數據許可權。可以對Hadoop生態的組件如Hive,Hbase進行細粒度的數據訪問控制。通過操作Ranger控制台,管理員可以輕松的通過配置策略來控制用戶訪問HDFS文件夾、HDFS文件、資料庫、表、欄位許可權。這些策略可以為不同的用戶和組來設置,同時許可權可與hadoop無縫對接。
5. 你要的大數據標准都在這里
NIST 1500-4 大數據通用框架草案 第四卷 安全與隱私.pdf
NIST 大數據定義(草案).pdf
大數據安全標准化白皮書2017 .pdf
大數據安全標准化白皮書(2018版).pdf
大數據標准化白皮書(2018).pdf
大數據標准化白皮書(2020版).pdf
1 基礎
GB T 35295-2017 信息技術 大數據 術語.pdf
GB T 35589-2017 信息技術 大數據 技術參考模型》.pdf
GB T 38672-2020 信息技術 大數據 介面基本要求.txt
JRT 0236—2021《金融大數據 術語》.pdf.pdf
TGZBD 2-2020 大數據標准體系總體架構.pdf
2 數據
GBT 18142-2017 信息技術 數據元素值表示 格式記法 ISOIE C FDIS 149572009.txt
GBT 18391.1-2009 信息技術 元數據注冊系統 (MDR) 第1部分: 框架 ISOIEC11179-1 2004, IDT.txt
GBT 18391.2-2009 信息技術 元數據注冊系統 (MDR) 第2部分: 分類 ISOIEC11179-2 2005, IDT.txt
GBT 18391.3-2009 信息技術 元數據注冊系統 (MDR) 第3部分: 注冊系統 元模型與基本屬性 ISOIEC11179-3 2003, IDT.txt
GBT 18391.4-2009 信息技術 元數據注冊系統 (MDR) 第4部分: 數據定義 的形成 ISOIEC11179-4 2004, IDT.txt
GBT 18391.5-2009 信息技術 元數據注冊系統 (MDR) 第5部分: 命名和標 識原則 ISOIEC11179-5 2005, IDT.txt
GBT 18391.6-2009 信息技術 元數據注冊系統 (MDR) 第6部分: 注冊 ISOIEC11179-6 2005, IDT.txt
GBT 23824.1-2009 信息技術 實現元數據注冊 系統內容一致性的規程 第 1部分: 數據元 ISOIEC TR20943-1 2003, IDT.txt
GBT 23824.3-2009 信息技術 實現元數據注冊 系統內容一致性的規程 第 3部分: 值域 ISOIEC TR20943-3 2004, IDT.txt
GBT 30881-2014 信息技術 元數據注冊系統 (MDR)模塊 ISOIEC 197732011.txt
GBT 32392.1-2015 信息技術 互操作性元模型 框架(MFI) 第1部分: 參考 模型.txt
GBT 32392.2-2015 信息技術 互操作性元模型 框架(MFI) 第2部分: 核心 模型.txt
GBT 32392.3-2015 信息技術 互操作性元模型 框架(MFI) 第3部分: 本體 注冊元模型.txt
GBT 32392.4-2015 信息技術 互操作性元模型 框架(MFI) 第4部分: 模型 映射元模型.txt
GBT 32392.5-2018 信息技術 互操作性元模型 框架(MFI) 第5部分: 過程 模型注冊元模型.txt
GBT 32392.7-2018 信息技術 互操作性元模型 框架 第7部分: 服務模型注.txt
GBT 32392.8-2018 信息技術 互操作性元模型 框架 第8部分: 角色與目標 模型注冊元模型.txt
GBT 32392.9-2018 信息技術 互操作性元模型 框架 第9部分: 按需模型選 擇.txt
GBZ 21025-2007 XML使用指南.txt
3 技術
YDT 3772-2020 大數據 時序資料庫技術要求與測試方法.txt
YDT 3773-2020 大數據 分布式批處理平台技術要求與測試方法.txt
YDT 3774-2020 大數據 分布式分析型資料庫技術要求與測試方法.txt
YDT 3775-2020 大數據 分布式事務資料庫技術要求與測試方法.txt
大數據開放與互操作技術
信息技術 大數據 互操作 技術指南 擬研製.txt
大數據生存周期處理技術
GBT 32908-2016 非結構化數據訪問介面規范.txt
GBT 36345-2018 信息技術 通用數據導入接 口規范.txt
信息技術 大數據 面向分 析的數據檢索與存儲技術 要求 在研.txt
大數據集描述
GBT 32909-2016 非結構化數據表示規范.txt
GBT 34945-2017 信息技術 數據溯源描述模型.txt
GBT 34952-2017 多媒體數據語義描述要求.txt
GBT 35294-2017 信息技術 科學數據引用.txt
GBT 38667-2020 信息技術 大數據 數據分 類指南.txt
GB T 38667-2020 信息技術 大數據 數據分類指南.pdf
4 平台、工具
GBT 38673-2020 信息技術 大數據 大數據 系統基本要求.txt
GBT 38675-2020 信息技術 大數據 計算系 統通用要求.txt
GB T 37721-2019 信息技術 大數據分析系統功能要求》.pdf
GB T 37722-2019 信息技術 大數據存儲與處理系統功能要求.pdf
GB T 38633-2020 信息技術 大數據 系統運維和管理功能要求.pdf
GB T 38643-2020 信息技術 大數據 分析系統功能測試要求.pdf
GB T 38676-2020 信息技術大數據存儲與處理系統功能測試要求.pdf
JRT 0206—2021 證券期貨業大數據平台性能測試指引.pdf
YDT 3762-2020 大數據 數據挖掘平台技術要求與測試方法.txt
5 安全和隱私
GAT 1718-2020《信息安全技術 大數據平台安全管理產品安全技術要求》.txt
GBT 大數據系統軟體安全防護指南》標准草案.pdf
GB T 35274-2017 信息安全技術 大數據服務安全能力要求 立項.pdf
GB T 37973-2019 信息安全技術 大數據安全管理指南.pdf
YDT 3736-2020 電信運營商大數據安全風險及需求.txt
YDT 3741-2020 互聯網新技術新業務安全評估要求 大數據技術應用與服務.txt
YDT 3800-2020 電信網和互聯網大數據平台安全防護要求.txt
信息安全技術電信領域大數據安全防護實現指南.doc
d
6. 大數據技術有哪些
大數據技術,就是從各種類型的數據中快速獲得有價值信息的技術。大數據領域已經涌現出了大量新的技術,它們成為大數據採集、存儲、處理和呈現的有力武器。
大數據處理關鍵技術一般包括:大數據採集、大數據預處理、大數據存儲及管理、大數據分析及挖掘、大數據展現和應用(大數據檢索、大數據可視化、大數據應用、大數據安全等)。
六、大數據展現與應用技術
大數據技術能夠將隱藏於海量數據中的信息和知識挖掘出來,為人類的社會經濟活動提供依據,從而提高各個領域的運行效率,大大提高整個社會經濟的集約化程度。在我國,大數據將重點應用於以下三大領域:商業智能、政府決策、公共服務。例如:商業智能技術,政府決策技術,電信數據信息處理與挖掘技術,電網數據信息處理與挖掘技術,氣象信息分析技術,環境監測技術,警務雲應用系統(道路監控、視頻監控、網路監控、智能交通、反電信詐騙、指揮調度等公安信息系統),大規模基因序列分析比對技術,Web信息挖掘技術,多媒體數據並行化處理技術,影視製作渲染技術,其他各種行業的雲計算和海量數據處理應用技術等。
7. 如何打造高性能大數據分析平台
大數據分析系統作為一個關鍵性的系統在各個公司迅速崛起。但是這種海量規模的數據帶來了前所未有的性能挑戰。同時,如果大數據分析系統無法在第一時間為運營決策提供關鍵數據,那麼這樣的大數據分析系統一文不值。本文將從技術無關的角度討論一些提高性能的方法。下面我們將討論一些能夠應用在大數據分析系統不同階段的技巧和准則(例如數據提取,數據清洗,處理,存儲,以及介紹)。本文應作為一個通用准則,以確保最終的大數據分析平台能滿足性能要求。
1. 大數據是什麼?
大數據是最近IT界最常用的術語之一。然而對大數據的定義也不盡相同,所有已知的論點例如結構化的和非結構化、大規模的數據等等都不夠完整。大數據系統通常被認為具有數據的五個主要特徵,通常稱為數據的5 Vs。分別是大規模,多樣性,高效性、准確性和價值性。
互聯網是個神奇的大網,大數據開發和軟體定製也是一種模式,這里提供最詳細的報價,如果真的想做,可以來這里,這個手技的開始數字是一八七中間的是三兒零最後的是一四二五零,按照順序組合起來就可以找到,想說的是,除非想做或者了解這方面的內容,如果只是湊熱鬧的話,就不要來了。
據Gartner稱,大規模可以被定義為「在本(地)機數據採集和處理技術能力不足以為用戶帶來商業價值。當現有的技術能夠針對性的進行改造後來處理這種規模的數據就可以說是一個成功的大數據解決方案。
這種大規模的數據沒將不僅僅是來自於現有的數據源,同時也會來自於一些新興的數據源,例如常規(手持、工業)設備,日誌,汽車等,當然包括結構化的和非結構化的數據。
據Gartner稱,多樣性可以定義如下:「高度變異的信息資產,在生產和消費時不進行嚴格定義的包括多種形式、類型和結構的組合。同時還包括以前的歷史數據,由於技術的變革歷史數據同樣也成為多樣性數據之一 「。
高效性可以被定義為來自不同源的數據到達的速度。從各種設備,感測器和其他有組織和無組織的數據流都在不斷進入IT系統。由此,實時分析和對於該數據的解釋(展示)的能力也應該隨之增加。
根據Gartner,高效性可以被定義如下:「高速的數據流I/O(生產和消費),但主要聚焦在一個數據集內或多個數據集之間的數據生產的速率可變上」。
准確性,或真實性或叫做精度是數據的另一個重要組成方面。要做出正確的商業決策,當務之急是在數據上進行的所有分析必須是正確和准確(精確)的。
大數據系統可以提供巨大的商業價值。像電信,金融,電子商務,社交媒體等,已經認識到他們的數據是一個潛在的巨大的商機。他們可以預測用戶行為,並推薦相關產品,提供危險交易預警服務,等等。
與其他IT系統一樣,性能是大數據系統獲得成功的關鍵。本文的中心主旨是要說明如何讓大數據系統保證其性能。
2. 大數據系統應包含的功能模塊
大數據系統應該包含的功能模塊,首先是能夠從多種數據源獲取數據的功能,數據的預處理(例如,清洗,驗證等),存儲數據,數據處理、數據分析等(例如做預測分析??,生成在線使用建議等等),最後呈現和可視化的總結、匯總結果。
下圖描述了大數據系統的這些高層次的組件
描述本節的其餘部分簡要說明了每個組分,如圖1。
2.1 各種各樣的數據源當今的IT生態系統,需要對各種不同種類來源的數據進行分析。這些來源可能是從在線Web應用程序,批量上傳或feed,流媒體直播數據,來自工業、手持、家居感測的任何東西等等。
顯然從不同數據源獲取的數據具有不同的格式、使用不同的協議。例如,在線的Web應用程序可能會使用SOAP / XML格式通過HTTP發送數據,feed可能會來自於CSV文件,其他設備則可能使用MQTT通信協議。
由於這些單獨的系統的性能是不在大數據系統的控制范圍之內,並且通常這些系統都是外部應用程序,由第三方供應商或團隊提供並維護,所以本文將不會在深入到這些系統的性能分析中去。
2.2 數據採集第一步,獲取數據。這個過程包括分析,驗證,清洗,轉換,去重,然後存到適合你們公司的一個持久化設備中(硬碟、存儲、雲等)。
在下面的章節中,本文將重點介紹一些關於如何獲取數據方面的非常重要的技巧。請注意,本文將不討論各種數據採集技術的優缺點。
2.3 存儲數據第二步,一旦數據進入大數據系統,清洗,並轉化為所需格式時,這些過程都將在數據存儲到一個合適的持久化層中進行。
在下面的章節中,本文將介紹一些存儲方面的最佳實踐(包括邏輯上和物理上)。在本文結尾也會討論一部分涉及數據安全方面的問題。
2.4 數據處理和分析第三步,在這一階段中的一部分干凈數據是去規范化的,包括對一些相關的數據集的數據進行一些排序,在規定的時間間隔內進行數據結果歸集,執行機器學習演算法,預測分析等。
在下面的章節中,本文將針對大數據系統性能優化介紹一些進行數據處理和分析的最佳實踐。
2.5 數據的可視化和數據展示最後一個步驟,展示經過各個不同分析演算法處理過的數據結果。該步驟包括從預先計算匯總的結果(或其他類似數據集)中的讀取和用一種友好界面或者表格(圖表等等)的形式展示出來。這樣便於對於數據分析結果的理解。
3. 數據採集中的性能技巧
數據採集是各種來自不同數據源的數據進入大數據系統的第一步。這個步驟的性能將會直接決定在一個給定的時間段內大數據系統能夠處理的數據量的能力。
數據採集??過程基於對該系統的個性化需求,但一些常用執行的步驟是 - 解析傳入數據,做必要的驗證,數據清晰,例如數據去重,轉換格式,並將其存儲到某種持久層。
涉及數據採集過程的邏輯步驟示如下圖所示:
下面是一些性能方面的技巧:
來自不同數據源的傳輸應該是非同步的。可以使用文件來傳輸、或者使用面向消息的(MoM)中間件來實現。由於數據非同步傳輸,所以數據採集過程的吞吐量可以大大高於大數據系統的處理能力。 非同步數據傳輸同樣可以在大數據系統和不同的數據源之間進行解耦。大數據基礎架構設計使得其很容易進行動態伸縮,數據採集的峰值流量對於大數據系統來說算是安全的。
如果數據是直接從一些外部資料庫中抽取的,確保拉取數據是使用批量的方式。
如果數據是從feed file解析,請務必使用合適的解析器。例如,如果從一個XML文件中讀取也有不同的解析器像JDOM,SAX,DOM等。類似地,對於CSV,JSON和其它這樣的格式,多個解析器和API是可供選擇。選擇能夠符合需求的性能最好的。
優先使用內置的驗證解決方案。大多數解析/驗證工作流程的通常運行在伺服器環境(ESB /應用伺服器)中。大部分的場景基本上都有現成的標准校驗工具。在大多數的情況下,這些標準的現成的工具一般來說要比你自己開發的工具性能要好很多。
類似地,如果數據XML格式的,優先使用XML(XSD)用於驗證。
即使解析器或者校等流程使用自定義的腳本來完成,例如使用java優先還是應該使用內置的函數庫或者開發框架。在大多數的情況下通常會比你開發任何自定義代碼快得多。
盡量提前濾掉無效數據,以便後續的處理流程都不用在無效數據上浪費過多的計算能力。
大多數系統處理無效數據的做法通常是存放在一個專門的表中,請在系統建設之初考慮這部分的資料庫存儲和其他額外的存儲開銷。
如果來自數據源的數據需要清洗,例如去掉一些不需要的信息,盡量保持所有數據源的抽取程序版本一致,確保一次處理的是一個大批量的數據,而不是一條記錄一條記錄的來處理。一般來說數據清洗需要進行表關聯。數據清洗中需要用到的靜態數據關聯一次,並且一次處理一個很大的批量就能夠大幅提高數據處理效率。
數據去重非常重要這個過程決定了主鍵的是由哪些欄位構成。通常主鍵都是時間戳或者id等可以追加的類型。一般情況下,每條記錄都可能根據主鍵進行索引來更新,所以最好能夠讓主鍵簡單一些,以保證在更新的時候檢索的性能。
來自多個源接收的數據可以是不同的格式。有時,需要進行數據移植,使接收到的數據從多種格式轉化成一種或一組標准格式。
和解析過程一樣,我們建議使用內置的工具,相比於你自己從零開發的工具性能會提高很多。
數據移植的過程一般是數據處理過程中最復雜、最緊急、消耗資源最多的一步。因此,確保在這一過程中盡可能多的使用並行計算。
一旦所有的數據採集的上述活動完成後,轉換後的數據通常存儲在某些持久層,以便以後分析處理,綜述,聚合等使用。
多種技術解決方案的存在是為了處理這種持久(RDBMS,NoSQL的分布式文件系統,如Hadoop和等)。
謹慎選擇一個能夠最大限度的滿足需求的解決方案。
4. 數據存儲中的性能技巧
一旦所有的數據採集步驟完成後,數據將進入持久層。
在本節中將討論一些與數據數據存儲性能相關的技巧包括物理存儲優化和邏輯存儲結構(數據模型)。這些技巧適用於所有的數據處理過程,無論是一些解析函數生的或最終輸出的數據還是預計算的匯總數據等。
首先選擇數據範式。您對數據的建模方式對性能有直接的影響,例如像數據冗餘,磁碟存儲容量等方面。對於一些簡單的文件導入資料庫中的場景,你也許需要保持數據原始的格式,對於另外一些場景,如執行一些分析計算聚集等,你可能不需要將數據範式化。
大多數的大數據系統使用NoSQL資料庫替代RDBMS處理數據。
不同的NoSQL資料庫適用不同的場景,一部分在select時性能更好,有些是在插入或者更新性能更好。
資料庫分為行存儲和列存儲。
具體的資料庫選型依賴於你的具體需求(例如,你的應用程序的資料庫讀寫比)。
同樣每個資料庫都會根據不同的配置從而控制這些資料庫用於資料庫復制備份或者嚴格保持數據一致性?這些設置會直接影響資料庫性能。在資料庫技術選型前一定要注意。
壓縮率、緩沖池、超時的大小,和緩存的對於不同的NoSQL資料庫來說配置都是不同的,同時對資料庫性能的影響也是不一樣的。
數據Sharding和分區是這些資料庫的另一個非常重要的功能。數據Sharding的方式能夠對系統的性能產生巨大的影響,所以在數據Sharding和分區時請謹慎選擇。
並非所有的NoSQL資料庫都內置了支持連接,排序,匯總,過濾器,索引等。
如果有需要還是建議使用內置的類似功能,因為自己開發的還是不靈。
NoSQLs內置了壓縮、編解碼器和數據移植工具。如果這些可以滿足您的部分需求,那麼優先選擇使用這些內置的功能。這些工具可以執行各種各樣的任務,如格式轉換、壓縮數據等,使用內置的工具不僅能夠帶來更好的性能還可以降低網路的使用率。
許多NoSQL資料庫支持多種類型的文件系統。其中包括本地文件系統,分布式文件系統,甚至基於雲的存儲解決方案。
如果在互動式需求上有嚴格的要求,否則還是盡量嘗試使用NoSQL本地(內置)文件系統(例如HBase 使用HDFS)。
這是因為,如果使用一些外部文件系統/格式,則需要對數據進行相應的編解碼/數據移植。它將在整個讀/寫過程中增加原本不必要的冗餘處理。
大數據系統的數據模型一般來說需要根據需求用例來綜合設計。與此形成鮮明對比的是RDMBS數據建模技術基本都是設計成為一個通用的模型,用外鍵和表之間的關系用來描述數據實體與現實世界之間的交互。
在硬體一級,本地RAID模式也許不太適用。請考慮使用SAN存儲。
5. 數據處理分析中的性能技巧
數據處理和分析是一個大數據系統的核心。像聚合,預測,聚集,和其它這樣的邏輯操作都需要在這一步完成。
本節討論一些數據處理性能方面的技巧。需要注意的是大數據系統架構有兩個組成部分,實時數據流處理和批量數據處理。本節涵蓋數據處理的各個方面。
在細節評估和數據格式和模型後選擇適當的數據處理框架。
其中一些框架適用於批量數據處理,而另外一些適用於實時數據處理。
同樣一些框架使用內存模式,另外一些是基於磁碟io處理模式。
有些框架擅長高度並行計算,這樣能夠大大提高數據效率。
基於內存的框架性能明顯優於基於磁碟io的框架,但是同時成本也可想而知。
概括地說,當務之急是選擇一個能夠滿足需求的框架。否則就有可能既無法滿足功能需求也無法滿足非功能需求,當然也包括性能需求。
一些這些框架將數據劃分成較小的塊。這些小數據塊由各個作業獨立處理。協調器管理所有這些獨立的子作業?在數據分塊是需要當心。
該數據快越小,就會產生越多的作業,這樣就會增加系統初始化作業和清理作業的負擔。
如果數據快太大,數據傳輸可能需要很長時間才能完成。這也可能導致資源利用不均衡,長時間在一台伺服器上運行一個大作業,而其他伺服器就會等待。
不要忘了查看一個任務的作業總數。在必要時調整這個參數。
最好實時監控數據塊的傳輸。在本機機型io的效率會更高,這么做也會帶來一個副作用就是需要將數據塊的冗餘參數提高(一般hadoop默認是3份)這樣又會反作用使得系統性能下降。
此外,實時數據流需要與批量數據處理的結果進行合並。設計系統時盡量減少對其他作業的影響。
大多數情況下同一數據集需要經過多次計算。這種情況可能是由於數據抓取等初始步驟就有報錯,或者某些業務流程發生變化,值得一提的是舊數據也是如此。設計系統時需要注意這個地方的容錯。
這意味著你可能需要存儲原始數據的時間較長,因此需要更多的存儲。
數據結果輸出後應該保存成用戶期望看到的格式。例如,如果最終的結果是用戶要求按照每周的時間序列匯總輸出,那麼你就要將結果以周為單位進行匯總保存。
為了達到這個目標,大數據系統的資料庫建模就要在滿足用例的前提下進行。例如,大數據系統經常會輸出一些結構化的數據表,這樣在展示輸出上就有很大的優勢。
更常見的是,這可能會這將會讓用戶感覺到性能問題。例如用戶只需要上周的數據匯總結果,如果在數據規模較大的時候按照每周來匯總數據,這樣就會大大降低數據處理能力。
一些框架提供了大數據查詢懶評價功能。在數據沒有在其他地方被使用時效果不錯。
實時監控系統的性能,這樣能夠幫助你預估作業的完成時間。
6. 數據可視化和展示中的性能技巧
精心設計的高性能大數據系統通過對數據的深入分析,能夠提供有價值戰略指導。這就是可視化的用武之地。良好的可視化幫助用戶獲取數據的多維度透視視圖。
需要注意的是傳統的BI和報告工具,或用於構建自定義報表系統無法大規模擴展滿足大數據系統的可視化需求。同時,許多COTS可視化工具現已上市。
本文將不會對這些個別工具如何進行調節,而是聚焦在一些通用的技術,幫助您能打造可視化層。
確保可視化層顯示的數據都是從最後的匯總輸出表中取得的數據。這些總結表可以根據時間短進行匯總,建議使用分類或者用例進行匯總。這么做可以避免直接從可視化層讀取整個原始數據。
這不僅最大限度地減少數據傳輸,而且當用戶在線查看在報告時還有助於避免性能卡頓問題。
重分利用大化可視化工具的緩存。緩存可以對可視化層的整體性能產生非常不錯的影響。
物化視圖是可以提高性能的另一個重要的技術。
大部分可視化工具允許通過增加線程數來提高請求響應的速度。如果資源足夠、訪問量較大那麼這是提高系統性能的好辦法。
盡量提前將數據進行預處理,如果一些數據必須在運行時計算請將運行時計算簡化到最小。
可視化工具可以按照各種各樣的展示方法對應不同的讀取策略。其中一些是離線模式、提取模式或者在線連接模式。每種服務模式都是針對不同場景設計的。
同樣,一些工具可以進行增量數據同步。這最大限度地減少了數據傳輸,並將整個可視化過程固化下來。
保持像圖形,圖表等使用最小的尺寸。
大多數可視化框架和工具的使用可縮放矢量圖形(SVG)。使用SVG復雜的布局可能會產生嚴重的性能影響。
7. 數據安全以及對於性能的影響
像任何IT系統一樣安全性要求也對大數據系統的性能有很大的影響。在本節中,我們討論一下安全對大數據平台性能的影響。
- 首先確保所有的數據源都是經過認證的。即使所有的數據源都是安全的,並且沒有針對安全方面的需求,那麼你可以靈活設計一個安全模塊來配置實現。
- 數據進過一次認證,那麼就不要進行二次認證。如果實在需要進行二次認證,那麼使用一些類似於token的技術保存下來以便後續繼續使用。這將節省數據一遍遍認證的開銷。
- 您可能需要支持其他的認證方式,例如基於PKI解決方案或Kerberos。每一個都有不同的性能指標,在最終方案確定前需要將其考慮進去。
- 通常情況下數據壓縮後進入大數據處理系統。這么做好處非常明顯不細說。
- 針對不同演算法的效率、對cpu的使用量你需要進行比較來選出一個傳輸量、cpu使用量等方面均衡的壓縮演算法。
- 同樣,評估加密邏輯和演算法,然後再選擇。
- 明智的做法是敏感信息始終進行限制。
- 在審計跟蹤表或登錄時您可能需要維護記錄或類似的訪問,更新等不同的活動記錄。這可能需要根據不同的監管策略和用戶需求個性化的進行設計和修改。
- 注意,這種需求不僅增加了數據處理的復雜度,但會增加存儲成本。
- 盡量使用下層提供的安全技術,例如操作系統、資料庫等。這些安全解決方案會比你自己設計開發性能要好很多。
8. 總結
本文介紹了各種性能方面的技巧,這些技術性的知道可以作為打造大數據分析平台的一般准則。大數據分析平台非常復雜,為了滿足這種類型系統的性能需求,需要我們從開始建設的時候進行考量。
本文介紹的技術准則可以用在大數據平台建設的各個不同階段,包括安全如何影響大數據分析平台的性能。