數據湖(Data Lake)是一種在系統或存儲庫中以自然格式存儲數據的方法,它有助于以各種模式和結構形式配置數據,通常是對象塊或文件。數據湖的主要思想是對企業中的所有數據進行統一存儲,從原始數據(這意味著源系統數據的精確副本)轉換為用于報告、可視化、分析、機器學習等各種任務的轉換數據。
湖中的數據包括:結構化數據從關系數據庫(行和列),半結構化數據(CSV、XML、JSON的日志),非結構化數據(電子郵件,文檔,PDF),二進制數據(圖像、音頻、視頻),從而形成一個集中式數據存儲容納所有形式的數據。[1]
數據湖的概念,是相對于數據倉庫的預先數據高度結構化寫入格式(scheme on write)而言的。由于大部分數據的價值還沒有完全明確,因此無法做到足夠的結構化。此時,就盡可能接收原始數據,等到需要讀取時再按照讀取模式(scheme on read)進行數據組織。
一、數據湖的特點及云端數據治理的必要性
數據湖是包含兩個特征的信息系統:
1) 可以保存大數據的并行系統;
2) 能夠在數據不移動的情況下進行計算的系統。
這意味著,數據本身的服務化、運營化被提上了日程。通過不同的轉換、清洗等數據治理體系,將原始數據最終以業務需要的模式有效輸出。
但從另一方面說,要充分利用數據湖的能力,就需要從整個IT及數據治理的角度來構建有效的數據輸入輸出,否則極其容易出現“單向”數據湖,進而演變成數據的垃圾場。在數據倉庫之父Bill Inmon的專著《數據湖架構》中,提出了通過分類數據池(pool)的模式,來構建一個具備分析操作能力的數據湖的架構,從而達到數據的最大效用比。[2]Bill的思路沒有問題,但如何針對各種繁雜的業務流程進行不同分類數據池的構建,則需要根據不同行業的特點來合理規劃不同數據池。也就是說,要構建有效的數據湖架構,必須要有合理的數據治理體系。

圖 數據生命周期管理&數據安全管理
二、云端數據治理的定義
目前越來越多的企業將業務系統數據部署在云端,其在操作方面的新特點,如數據的遠程存儲和傳輸、數據安全性等,都超越了傳統的數據治理體系范疇,這就引出了云端數據治理的體系。
云端數據治理是以云端數據為主要治理對象,制定與云端數據戰略、數據管理、數據優化、數據安全、隱私保護等相關策略,指導組織規劃、構建、評估、優化數據治理體系的活動集合。[3]
一個完整的云端數據治流程主要圍繞如下方面實施:管理元數據、管理主數據、提高數據質量、數據生命周期管理、數據安全管理,然后通過在不同數據池中進行各個方面的過程實施,構建一個有效數據湖。
“無治理不信息”,是指這里的數據要轉變為信息,進而提煉成知識,必須通過數據治理,才能帶來更多的價值。

圖 數據生命周期管理中的成本考量
三、安防和AI的數據湖
3.1 安防視頻監控系統的數據要求
對一套安防系統而言,數以萬計的相機接入,數據洪流源源不斷流入后端云存儲系統中,導致如下幾個數據訴求:
1、海量多媒體數據內容組織、檢索;具體來講,對圖像的調度時間要求≤1秒;
編解碼及整網傳輸延時≤300毫秒;監控系統規模再大也不能影響這個指標;
多維度的內容組織及挖掘,前端及后端智能結合,內容大數據索引化。

圖 宇視SMV安防機器視覺戰略框圖
2、數據保存的安全可靠性
圖像數據需要專業存儲設備存儲并用RAID,甚至多節點糾刪卷進行保護;讀寫分離體系,數據存儲永遠放在第一位保證,無論錄像還是圖片;
優化的數據組織方式,更懂存儲特質的數據業務設計,最大化挖掘不同存儲介質性能;
端到端接入授權、全鏈路數據加密保障的安全保障,無論是中間網絡截獲還是存儲介質暴露,均無法直接恢復出有效數據。
3.2 AI帶來的數據存儲挑戰
一方面,存儲對象由最早單純的原始視頻變到了視頻、圖片、AI分析后的結構化半結構化數據。對象的改變,使得存儲系統要更多的考慮,如何更好的去適配多樣化的存儲對象?如何最高效的去存儲各類數據,并提供可靠的保護?海量小文件混合存儲的時候,如何避免傳統存儲中性能的大打折扣?
另一方面,存儲的寫讀模型也發生了大變化。原先的原始視頻存入存儲后基本不會被調閱,寫讀模型基本為10:1,但AI技術的出現徹底激活了這些數據,存入的視頻可以被高性能分析服務器提取進行人物分析、車型分析、結構化分析,寫讀模型也變成了1:1甚至是1:N。在這樣的寫讀模型下,對存儲設備也提出了更高要求,存儲不再是單單考慮如何存的更快存的更多,而是要考慮如何與AI業務融合,最優結合。
而當AI技術對數據價值進行提煉后,提煉出來的數據價值就發生了變化。例如:可能原始視頻只需要保留30天,但是經過結構化分析后的涉案嫌疑人圖片的重要性就不言而喻了,需要永久保存。所以當一套存儲系統中存在這樣那樣不同重要程度的數據時,完善的生命周期管理體系、如何來區分數據的重要性,并提供有層次的保護技術就變得尤為重要。
當上面的種種挑戰出現后,我們還將直面一個現實問題:在爆炸量的數據、超高的性能要求和翻倍的成本面前,我們如何去追求性能容量的最優配比,找到最低TCO的方案,實現最優解。
這一系列的變化,促使安防數據已經演變成了一個新的數據湖,必須借助一系列的數據治理手段,才能推動數據的有效利用。

圖 數據在不同存儲介質之間的流轉模式
四、宇視云存儲的數據湖解決方案
2016年,宇視發布SMV安防機器視覺戰略,其中很重要的一點就是充分認識AI對于安防數據的變革訴求。以視圖服務化體系模式,在宇視云存儲中通過構建“視頻原始數據池”、“圖片原始數據池”、“半結構化數據池”、“結構化數據池”、“歸檔數據池”等多個數據池的聯動,并根據數據特點引入SSD、硬盤、磁帶庫等不同存儲介質來適配下圖中數據訪問模型,在統一的數據治理框架下,通過安防標準和TCO的統一考量體系,借助不同介質特點,控制數據的流轉,達到數據生命周期管理的最佳實踐,真正構建出高效有用的安防數據湖。

圖 數據分割對安全的輔助作用

4.1 原始數據池的治理
主數據:對于原始視頻或圖片來說,數據本身即是主數據;
元數據:對于視頻監控系統來說,視頻或圖片對時間性有天生的訴求,以時間作為元數據進行主數據的管理,能達到便捷調取“一手數據”的目的,如視頻回放、圖片瀏覽;
數據生命周期管理:安防原始數據,嚴格按照各個部門體系要求的留存期(如相關部門要求90天)進行生命周期管理,超過留存期則需要刪除老的視頻或圖片;
TCO考量:從數據使用頻率來看,依然有明顯冷熱區別,而且有非常明顯的時間相關性,這樣就可以靈活控制原始數據在帶電內存緩存層、SSD加速層、硬盤主存儲空間層、磁帶庫歸檔存儲層之間流轉,最大化TCO應用。
數據安全控制,重點包括:
自定義的從源頭對圖像進行保護,從非法途徑獲取原始視頻都是馬賽克效果,視頻只能在平臺內正常查看;
離線下載圖像專人專用,專門密鑰保護;通過和身份水印結合,即便用手機等設備翻拍,也能夠追溯泄漏途徑;
不基于文件進行存儲組織,自定義數據節點內及節點間離散策略、存儲空間多節點拉通池化、數據塊級格式保護,非平臺內操作,數據無跡可尋。

圖 宇視云存儲架構框圖
4.2 半結構化數據池的建設
主數據:對安防監控系統來說,半結構化數據主要是一種數據轉換的中間過程,比如對一段視頻識別出來的有相關物體存在的片段視頻文件,以及相關運動信息文本、車輛圖片中摳取的駕駛員信息或車牌信息及其相關區域小圖、識別算法輸出的特質碼數據等等。
元數據:根據時間,組織車牌、運動特征與相關文件、圖片的對應關系,但這個關系本身也包含很多無模式的數據列,最終形成時空數據庫進行元數據管理,元數據量級往往不是特別多,數據量一般在TB級以內,此外對于元數據本身還有一個數據清洗的過程,如基于識別算法的數據可以將識別率比較差的數據進行排除。
數據生命周期管理:這種業務中,元數據的生命周期與部分主數據不一定一致,因為這里的元數據還有進一步歷史深度分析的可能,而部分如短視頻、圖片一般超過1年就可做失效處理,當然也有部分需要長期保存的短視頻或圖片,但涉及面也不是很多,有的話直接歸檔到歸檔數據池即可,由于業務本身往往集中在1年內,超過1年的元數據可以統一歸檔到歸檔數據池中,用于后續可能的數據挖掘需求,如此達到更合理的成本控制目的。

圖 TCO考量速率表
TCO考量:根據訪問速率要求,一般如上表設計
數據安全控制:通過元數據與主數據的分離存儲,主數據存儲統一到原始數據池的存儲模式,利用數據打散及自定義塊分布,極大增加了數據的獨立恢復難度;
對于元數據來說,數據訪問會進行嚴格的平臺用戶認證,此外特征碼本身就是一種數學運算的中間過程記錄,必須輔以獨立的算法過程才有解析的可能,而算法本身并不會記錄,結合宇視特有的多算法聯動框架,不同特征碼的生成并不會歸一到同一種算法。
4.3 結構化數據池
結構化的數據是指可以使用關系型數據庫表示和存儲,表現為二維形式的數據。一般特點是:數據以行為單位,一行數據表示一個實體的信息,每一行數據的屬性是相同的。這個在安防視頻監控業務中,基本都是對設備、業務、流程等的過程建模,形成的設備配置、業務關系等數據,一般量級都比較小,這部分基本使用服務器或計算板的集群支持即可。
結構化數據池會定期進行數據備份,類似IT企業中增量、全量策略相結合的模式,可以將數據歸檔到“歸檔數據池”。
4.4 歸檔數據池
歸檔數據池構建在磁帶庫的存儲介質之上,借助結構化數據池來保存流入歸檔數據池中不同種類數據的索引信息。歸檔數據池為歸檔業務服務,當前主要包括視頻圖片池冷數據的歸檔、非結構化數據池中元數據歸檔、結構化數據池的定期備份歸檔。
歸檔數據池本身也有生命周期,不同的數據種類留存期也不同。對于原始視頻池的冷數據,其依然有固定的最長留存期,超過即進行最老刪除;而對于非結構化池元數據和結構化數據池的備份,則視配置空間而定,當歸檔數據池依然有可用空間,則均不會進行老數據的退化,直到無可用空間時才進行最老數據的刪除。
4.5 數據池間數據的流轉
至此,我們設計了原始數據池、半結構化數據池、結構化數據池、歸檔數據池。通過對原始數據池的智能分析識別,構建了多媒體的半結構化數據池;為支持更有效的業務應用,半結構化數據池自身會進一步進行分析和清洗,進而提升業務的靶向性,從而滿足業務數據建模的需要,構建業務結構化數據。此外需要強調的是,這幾個數據池都是邏輯上的業務區分,并不要求嚴格意義上的介質分離建設,如半結構化形成的短視頻/圖片依然可以使用原始數據池的內容,僅僅形成無模式數據存儲的元數據即可,這樣能達到整個云存儲系統中數據流轉的高效性。
歸檔數據池為整個數據湖提供了數據歸檔等長期保存服務,在數據生命周期管理以及TCO管理方面提供了一種權衡實現,兼顧了業務的實時性和投入成本的最優化。

圖 數據湖中不同數據池間的數據轉換
五、總結
宇視云存儲通過服務化的體系建設,支撐了安防業務中多種多樣的數據承載,正是基于云端數據治理的框架,最終達到了數據湖的高效流轉。
參考文獻
[1]https://en.wikipedia.org/wiki/Data_lake
[2][美]Bill Inmon,吳文磊 譯,數據湖架構,人民郵電出版社,2017-04-01
[3]程廣明,李堯,劉小茵,云端數據治理定義解析,科技創新導報,2017年16期