據說最近《長安十二時辰》比較火,因而趁着一個週末趕忙補一補劇。相信不少人都對其中的"大案牘術"比較感興趣,靖安司說"大案牘術"選中了張小敬。
前端
看到這裏,我覺得女友會問我:什麼是大案牘術?ios
萬萬沒想到,女友並無這麼問,而是說了一句:四字弟弟好帥啊~!算法
大案牘術,並非歷史上真實存在的,而是《長安十二時辰》的做者馬伯庸自創的。數據庫
大案牘術的發明者是徐賓,只是靖安司一個八品主事,由於其出色的記憶力,以及對術數的刻苦鑽研,研究出了一套以檔案數據爲基礎的處理事務的方法,即爲「大案牘術」,不管是破案調查找人,甚至預言將來,均可以作到。markdown
《長安十二時辰》原著中有兩處關於大案牘術的描述:框架
他作不良帥那麼多年,破案無數,深知不少事情並不須要搜考祕聞,真相就藏在人人可見的文卷之中,就看你能不能找出來——此所謂’大案牘’之術。李泌特地在靖安司集中一批精幹官吏,專事檢校查閱,正適合應付眼下這局面,可見此人卓識。機器學習
憑藉大案牘之術和祆教的戶籍配合,他迅速地找出一個可疑之人。此人叫做龍波,來自龜茲,開元二十年來京落爲市籍,同年拜入祆教,就住在懷遠坊內,一直單身。供奉記錄顯示他最近半年來,給祆祠的供奉陡增,爲此還特受褒獎。天寶二載底市籍有過一次清冊重造,但龍波的戶口還是開元二十年。有一位戶部老吏敏銳地注意到這個小紕漏。戶籍上要寫清相貌,如果舊冊不造,則有可能冒名頂替。分佈式
其實,所謂"大案牘術",就是咱們今天所說的大數據。工具
大數據,Big Data,是指沒法在必定時間內用常規軟件工具對其內容進行抓取、管理和處理的數據集合。大數據具備4個基本特徵:oop
數據體量巨大。百度資料代表,其新首頁導航天天須要提供的數據超過1.5PB(1PB=1024TB),這些數據若是打印出來將超過5千億張A4紙。有資料證明,到目前爲止,人類生產的全部印刷材料的數據量僅爲200PB。
數據類型多樣。如今的數據類型不只是文本形式,更多的是圖片、視頻、音頻、地理位置信息等多類型的數據,個性化數據佔絕對多數。
處理速度快。數據處理遵循「1秒定律」,可從各類類型的數據中快速得到高價值的信息。
價值密度低。以視頻爲例,一小時的視頻,在不間斷的監控過程當中,可能有用的數據僅僅只有一兩秒。
現現在,大數據是一個很火的詞彙,可是全部的理解也都不盡相同,對於不一樣的人,大數據有着不一樣的意思。
對於廣大用戶來講,大數據就是被採集到的各類信息。最簡單的來講,指的就是用戶的一些我的信息,如姓名、手機號、職業等。再深層次一些多是用戶的人際關係、交易記錄、用戶的行爲記錄等。
對於一些從事大數據相關的技術人員來講,大數據就是數據採集、數據存取、數據處理、統計分析、數據挖掘等。而作這些的目的主要是經過大量數據,進行預測分析,來實現商業價值。
就像"大案牘術"同樣,徐賓能夠經過一些案牘中的記錄,進行破案找人、預測將來,現在的大數據更是有着普遍的應用。
不管是各行各業,一旦有了大量數據,經過對不一樣來源數據的管理、處理、分析與優化,將結果反饋到上述應用中,將創造出巨大的經濟和社會價值。大數據利用已經逐漸成爲提升核心競爭力的關鍵因素,各行各業的決策正在從「業務驅動」 轉變「數據驅動」。在大數據時代,可經過實時監測、跟蹤研究對象在互聯網上產生的海量行爲數據,進行挖掘分析,揭示出規律性的東西,提出研究結論和對策。
好比:
銀行有了大數據,能夠提早識別風險,下降經濟損失。
電商網站有了大數據,能夠分析用戶行爲,推薦適合商品。
醫院有了大數據,能夠對各類疑難病症進行分析並治癒。
製造業有了大數據,能夠提早預知銷量,動態調整生產力。
公安系統有了大數據,能夠更好的維護社會穩定。
咱們經過《長安十二時辰》的影視劇以及原著咱們知道,大案牘術之因此能夠進行斷案和預知將來主要是有幾個基本前提:
一、須要有不少錄入吏將各地發生的事件詳盡的記錄下來。
二、錄入吏將本身記錄的信息進行整理成案牘,提交給靖安司。
三、靖安司將這些案牘分門別類的保存在案牘庫中。
四、須要查詢某個事件或人物時,須要各個文官們一塊兒翻閱案牘,進行信息檢索
五、最後根據這些數據進行整理、分析得出結果。
以上環節,其實也是當今的大數據處理的主要流程:包括數據收集、數據預處理、數據存儲、數據處理與分析、數據展現/數據可視化、數據應用等環節。
整個處理流程也能夠精簡歸納爲四步,分別是數據採集存儲、數據預處理、數據統計分析,最後是數據挖掘。
在《長安十二時辰》中,徐賓說:案牘上的數字,是百姓的生計、生涯,更是大唐的將來。
這案牘上的數字,其實指的就是大數據中很重要的數據質量。數據質量貫穿於整個大數據流程,每個數據處理環節都會對大數據質量產生影響做用。
這裏針對上面提到的大數據處理流程,簡單介紹下其中比較重要的幾個流程。
數據採集存儲
數據的採集是指利用多個數據庫來接收發自客戶端的數據,而且用戶能夠經過這些數據庫來進行簡單的查詢和處理工做。好比,電商會使用傳統的關係型數據庫MySQL和Oracle等來存儲每一筆事務數據,除此以外,Redis和MongoDB這樣的NoSQL數據庫也經常使用於數據的採集。
數據預處理
雖然採集端自己會有不少數據庫,可是若是要對這些海量數據進行有效的分析,仍是應該將這些來自前端的數據導入到一個集中的大型分佈式數據庫,或者分佈式存儲集羣,而且能夠在導入基礎上作一些簡單的清洗和預處理工做。
數據統計分析
統計與分析主要利用分佈式數據庫,或者分佈式計算集羣來對存儲於其內的海量數據進行普通的分析和分類彙總等,以知足大多數常見的分析需求。
數據挖掘
與前面統計和分析過程不一樣的是,數據挖掘通常沒有什麼預先設定好的主題,主要是在現有數據上面進行基於各類算法的計算,從而起到預測(Predict)的效果,從而實現一些高級別數據分析的需求。
大數據技術的體系龐大且複雜,基礎的技術包含數據的採集、數據預處理、分佈式存儲、NoSQL數據庫、數據倉庫、機器學習、並行計算、可視化等各類技術範疇和不一樣的技術層面
文件存儲:Hadoop HDFS、Tachyon、KFS
離線計算:Hadoop MapReduce、Spark
流式、實時計算:Storm、Spark Streaming、S四、Heron
K-V、NOSQL數據庫:HBase、Redis、MongoDB
資源管理:YARN、Mesos
日誌收集:Flume、Scribe、Logstash、Kibana
消息系統:Kafka、StormMQ、ZeroMQ、RabbitMQ
查詢分析:Hive、Impala、Pig、Presto、Phoenix、SparkSQL、Drill、Flink、Kylin、Druid
分佈式協調服務:Zookeeper
集羣管理與監控:Ambari、Ganglia、Nagios、Cloudera Manager
數據挖掘、機器學習:Mahout、Spark MLLib
數據同步:Sqoop任務調度:Oozie
以上這些工具,是和大數據有關的一些框架技術,能夠看到每個類型中都有多種技術能夠實現,因此在作技術選型的時候,須要根據本身的業務實際狀況選擇最適合本身的框架。