论文部分内容阅读
在信息化时代,生产生活业务场景愈发复杂,产生的数据体量也急剧膨胀。流式数据囊括范围甚广,而又贴近日常生活。从个体的社交活动与网购信息,到传统的交通、安防监控数据,到金融市场的交易日志,再到工业界的传感器的遥测数据,这些都认为是流式数据。通过对流式数据的归档和分析可以总结客观规律和做出合理决策。相较于传统的数据类型,流式数据通常表现为一组随着时间序列增长的多维度的数据记录,在数据记录中,既存在着能够直观理解的结构化形式的度量指标,也可能存在着音频、图像之类的非结构化数据。这导致了传统的面向有界、格式固定的数据的文件系统或数据库,难以满足流式数据的存储需求。因此,如何构建一套面向大规模流式数据存储的系统是值得研究的课题。本文以自行设计和研发的大规模流式数据存储系统为背景,详细阐述其设计思路,涉及的理论技术及其实现方法。本文主要完成了如下的工作:(1)提出了对数据流中结构化和非结构化数据分治处理,统一检索的思路。(2)基于KV存储引擎RocksDB构建了结构化数据存储模块,并围绕该模块提出了结构化数据到键值对的行列混合映射方式,并采用基于上下文相关性的数据压缩编解码算法,有效减少键值对大小。(3)基于磁盘连续写入模型,设计并实现了扁平化的非结构化数据存储模块,根据流式数据特性,按区块存储索引,减少索引数目。(4)针对流式数据存储特性,提出了存储节点的自适应负载均衡调度算法。通过以上的工作以及优化,确保了存储系统能应对格式灵活,规模庞大的流式数据存储,同时也保证了系统的可扩展性。