週末遊手好閒一回,寫點輕鬆點的內容,最近在陪老婆追一部挺火的劇《長安十二時辰》,劇情仍是挺有意思的,可是有個叫"大案牘術"的東西看得我有點出戲,職業病犯了聯想了一堆亂七八糟的東西…算法
劇中有一個統管了大唐三省六部全部檔案資料的機構叫靖安司,這儼然就是一個大數據中心,裏面有一個把我驚呆了的黑科技--大案牘術,這不就是唐朝的大數據平臺嗎,雖然知道是杜撰而來,可是這套大數據平臺仍是挺有模有樣的,麻雀雖小五臟俱全,平臺的總架構師是創始人徐賓,這是一個我懷疑有超憶症的人,下面我來瞎扯下這個大數據平臺的核心技術。安全
數據存儲介質是竹簡,竹簡有序地放在一些造型古怪的架子上,應該是爲了查找方便。架構
另外想要提升查詢效率,索引確定是少不了的,而這個存儲平臺的索引就是徐賓本人,他有驚人的記憶力,能記住全部卷宗存放的位置,另外他胸前還有一條項鍊,劇中他有秀過一波操做,摸一下這個項鍊就能把一我的之前作過的事情都巴拉巴拉地說出來,因此這個項鍊應該是輔助記憶的一個東西,也就是二級索引。分佈式
劇中還有一段是李必要經過大案牘術去查徐賓這我的的過去,叫了10我的花了挺久的時間才查出來,可見沒了這個索引,查詢效率是很是低下的。工具
如何能提升查詢計算的效率,最直接的方法加機器呀,分佈式計算你懂的,雖然在唐朝沒有計算機,可是總架構師徐賓固然是知道分佈式計算的原理的,因此「機器不夠,人頭來湊」,徐賓找了一幫的 SQL Boy (那個時候叫吏員)來幫忙查找卷宗,提升查詢效率。大數據
數據的採集,清洗,入庫過程也是架構師徐賓一手抓的,etl工程師從各地記錄各類事件和用戶的基本信息,傳輸給靖安司進行存儲,另外由於長安當時藤紙已經不夠用了並且很是貴,致使沒紙錄入,案牘記錄大不如從前精準,大案牘術的可靠性大受質疑。因此徐冰還在研究造紙的技術,目的是爲了可以讓數據傳輸更加輕便,一次能傳輸更加大量的數據,且控制成本。優化
這個大數據平臺還有一套實時通訊的工具--望樓,這個望樓不只用做觀察敵人行爲以及異常報警,還有複雜的遠程通訊功能。加密
信息仍是經過加密才傳輸的,以下圖,看不懂可是看起來很牛逼。不過這個加密也不是絕對安全,遇到黑客也是會被攔截而且破解的,還有很大的優化空間,並且這個望樓還出現了一次特大級事故,被黑客龍波植入了名爲陸三的病毒,消息被泄漏甚至被篡改,總架構師徐賓也是差點付出了生命的代價。架構設計
扯完了平臺的架構設計,那麼咱們來講下應用場景吧。劇中提到辦案的人是大案牘術選出來的,是能經過用戶畫像精準地找到符合某種特徵的人羣,再經過評分來選擇最優解。設計
可是,架構師徐賓在這裏又動了手腳,他在程序裏篡改了一行 SQL 代碼,
"select '張小敬' from daandushu"
他把查詢結果寫死在了代碼裏,可見公司裏尚未代碼互審機制啊,或者是沒有一個和架構師能力至關的人來牽制他,讓他不能在代碼裏隨心所欲。
接下來根據用戶的基本屬性和行爲特徵進行分析,獲取用戶的喜愛和可能的行爲,沒錯,這就是數據挖掘,沒想到徐賓不單單是工程師,仍是個搞算法的,來看看劇中的原話。
由於不少地方我都是用二倍速看的,因此劇情看得不是很詳細,不少地方沒有寫得很嚴謹,你們不用在乎,這部劇自己就是屬於架空類型的,不少設計都禁不起推敲,樂呵樂呵就完事了。
(文中的圖片均來自百度圖片,侵刪)
以爲有價值請關注 :公衆號「大叔據」