数据湖(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期