本发明涉及数据存储技术领域,尤其涉及一种基于图结构数据的压缩存储方法。
背景技术:
在社交网络、生物技术、语义网络等开放或异构环境下,图结构得到了广泛的应用,出现了大益规模巨大的图结构数据集。例如在semanticweb中,用图结构的rdf数据模型来表示数据,十亿级规模数据集上的应用被广泛提出。
在分子生物学中,经常需要计算化合物之间的转化关系,或研究含有某些结构的化合物可能具有的特性等,而图能够很好的反应出化合物的结构特性,可用顶点来表示化合物中的原子,用边来表示原子之间的连接关系。这类图结构数据具有典型的特点:单个图的规模较小且顶点和边的类别比较少(原子和化合键的类别相对较少),但存在大量重复,对于整个数据库来说,图的数量十分庞大。在数据集上检索满足某种特定结构的化合物是频繁执行的查询操作之一,在查询执行时需要进行候选化合物的筛选,同分异构体的判断等操作。面对图数据庞大的数据集,可通过图数据的压缩存储方法将分子生物学中的图数据进行压缩存储,解决数据存储空间大的问题,并且在执行查询操作时,实现毫秒级地快速定位出图数据。
而在现有技术中,对于图结构数据的存储,基于图结构数据的存储模式和对应的基本查询方式,其中支持匹配查询的存储方式中,需要进行图匹配,但该过程需要较高的时间复杂度,在现实应用中,从海量图结构数据中进行检索的查询效率及时间开销给图匹配问题带来极大的困难,存储方式和检索方式影响了图结构数据的发展。
技术实现要素:
针对上述问题,本发明提供了一种基于图结构数据的压缩存储方法,基于机器学习算法将图结构数据划分为不同的类型,将同一类具有同构子图的图结构数据进行单独压缩存储,将不同压缩子集类型的图结构数据进行分区压缩存储,不仅降低了图结构数据的所需存储容量,还基于这种存储方式提高了数据的检索效率,减少了随机访问量,快速定位数据。
为实现上述目的,本发明提供了一种基于图结构数据的压缩存储方法,包括:获取所要压缩存储的图结构数据;将所述图结构数据输入训练完成的图结构数据分类模型中,得到分类结果;根据所述分类结果确定所述图结构数据所对应的压缩子集类型;根据所述压缩子集类型的同构子图,对所述图结构数据进行切分;将切分后的区别于所述同构子图的图结构数据按照预设的压缩算法进行压缩;不同的压缩子集类型分别按照预设的压缩算法进行压缩及分区存储。
在上述技术方案中,优选地,所述图结构数据分类模型的训练过程包括:获取图结构数据样本,并根据所述图结构数据样本的存储模式和应用领域进行分类;根据分类结果对所述图结构数据样本的类型进行标注;基于机器学习算法构建所述图结构数据分类模型;将所述图结构数据样本作为输入、以相应图结构数据样本的标注类型作为输出,对所述图结构数据分类模型进行训练;在所述图结构数据分类模型的训练结果收敛后得到训练完成的所述图结构数据分类模型。
在上述技术方案中,优选地,所述压缩子集类型的同构子图包括独立同构子图以及树形多级或链形多级同构子图;在所述同构子图为独立同构子图时,直接将区别于该独立同构子图的图结构数据切分并进行压缩;在所述同构子图为树形多级同构子图或链形多级同构子图时,确认所述图结构数据所覆盖的树形节点或链形节点,将各级同构子图进行切分并确认各级节点关系,将区别于同构子图的部分图结构数据进行压缩存储。
在上述技术方案中,优选地,所述图结构数据分类模型输出的每个分类结果与一个所述压缩子集类型对应,所述分类结果具有该图结构数据对应的同构子图的类型标识。
在上述技术方案中,优选地,根据压缩子集的存储模式或应用领域类型,采用与当前压缩子集类型相适应的预设压缩算法,对所述图结构数据进行压缩。
在上述技术方案中,优选地,所述图结构数据采用邻接矩阵格式进行表示,切分过程中将作为同构子图的文件、数据对象或关系表进行拆分,并分别将区别于所述同构子图的数据按照预设压缩算法进行压缩存储,同一压缩子集类型下具有相同或部分相同的同构子图。
与现有技术相比,本发明的有益效果为:基于机器学习算法将图结构数据划分为不同的类型,将同一类具有同构子图的图结构数据进行单独压缩存储,将不同压缩子集类型的图结构数据进行分区压缩存储,不仅降低了图结构数据的所需存储容量,还基于这种存储方式提高了数据的检索效率,减少了随机访问量,快速定位数据。
附图说明
图1为本发明一种实施例公开的基于图结构数据的压缩存储方法的流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图对本发明做进一步的详细描述:
如图1所示,根据本发明提供的一种基于图结构数据的压缩存储方法,包括:获取所要压缩存储的图结构数据;将图结构数据输入训练完成的图结构数据分类模型中,得到分类结果;根据分类结果确定图结构数据所对应的压缩子集类型;根据压缩子集类型的同构子图,对图结构数据进行切分;将切分后的区别于同构子图的图结构数据按照预设的压缩算法进行压缩;不同的压缩子集类型分别按照预设的压缩算法进行压缩及分区存储。
在该实施例中,基于机器学习算法将图结构数据划分为不同的类型,将同一类具有同构子图的图结构数据进行单独压缩存储,将不同压缩子集类型的图结构数据进行分区压缩存储,不仅降低了图结构数据的所需存储容量,还基于这种存储方式提高了数据的检索效率,减少了随机访问量,快速定位数据。
具体地,图结构数据可以用邻接链表或邻接矩阵进行表示,然后以操作系统文件形式存储在存储介质上,或者以数据对象形式存储在数据库系统中,或者以关系表存储在关系数据库中。将所要存储的图结构数据输入图结构数据分类模型中后,图结构数据分类模型基于机器学习,根据图结构数据的存储模式类型或数据所属应用领域对图结构数据进行分类,根据分类结果,能够确定该图结构数据的类型,并将其划分入以相同存储模式和/或相同应用领域数据的压缩子集中。
优选地,在某一压缩子集中,具有相同或部分相同的同构子图,因此在划分入该压缩子集类型中的图结构数据,其同构子图不需要进行重复存储,只需要将区别于同构子图的图结构数据进行切分后存储即可。而在检索过程中,根据同构子图确认所要检索的图结构数据后,对切分后的区别数据进行索引即可,大大减少了随机访问量,从而快速定位并检索到相应数据。
在上述实施例中,优选地,图结构数据分类模型的训练过程包括:获取图结构数据样本,并根据图结构数据样本的存储模式和应用领域进行分类;根据分类结果对图结构数据样本的类型进行标注;基于机器学习算法构建图结构数据分类模型;将图结构数据样本作为输入、以相应图结构数据样本的标注类型作为输出,对图结构数据分类模型进行训练;在图结构数据分类模型的训练结果收敛后得到训练完成的图结构数据分类模型。
具体地,经过机器学习算法的训练,图结构数据分类模型能够利用机器学习快速对图结构数据进行分类,而不需要通过特征索引进行逐步匹配和判断,大大提高了数据的分类存储效率,降低了压缩存储的预处理时间。
在上述实施例中,优选地,压缩子集类型的同构子图包括独立同构子图以及树形多级或链形多级同构子图;在同构子图为独立同构子图时,整个压缩子集中只有一个独立同构子图,即该子集中的所有图结构数据均具有完全相同的同构子图,直接将区别于该独立同构子图的图结构数据切分并进行压缩。在同构子图为树形多级同构子图或链形多级同构子图时,根据图结构数据分类模型输出的分类结果即可确认其同构子图为树形多级同构子图还是链形多级同构子图,以及确认该图结构数据所覆盖的树形节点或链形节点,将各级同构子图进行切分后,确认各级节点关系,将区别于同构子图的部分图结构数据进行压缩存储。在检索过程中,依据区别于同构子图的部分图结构数据以及对应的各级节点关系,调取相应的多级同构子图,共同构成整体的图结构数据。
在上述实施例中,优选地,图结构数据分类模型输出的每个分类结果与一个压缩子集类型对应,通过该分类结果确定需要将该图结构数据划分入哪一压缩子集中,分类结果中还具有该图结构数据对应的同构子图的类型标识,以确定该图结构数据的同构子图,以将区别于同构子图部分的图结构数据切分后进行压缩存储。
在上述实施例中,优选地,图结构数据采用邻接矩阵格式进行表示,切分过程中将作为同构子图的文件、数据对象或关系表进行拆分,并分别将区别于同构子图的数据按照预设压缩算法进行压缩存储,同一压缩子集类型下具有相同或部分相同的同构子图。
进一步地,根据压缩子集的存储模式或应用领域类型,比如,以操作系统文件形式存储在存储介质上、或者以数据对象形式存储在数据库系统中、或者以关系表存储在关系数据库中的存储模式,或者,应用于分子生物学的蛋白质转换关系图、应用于网页之间超链接关系图或者应用于社交网络中用户关系图等,针对不同类型的图结构数据,采用与当前压缩子集类型相适应的预设压缩算法,对图结构数据进行压缩,能够根据图结构数据的特性选用适应性的压缩算法,从而更高效、更少存储容量的实现数据存储。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
1.一种基于图结构数据的压缩存储方法,其特征在于,包括:
获取所要压缩存储的图结构数据;
将所述图结构数据输入训练完成的图结构数据分类模型中,得到分类结果;
根据所述分类结果确定所述图结构数据所对应的压缩子集类型;
根据所述压缩子集类型的同构子图,对所述图结构数据进行切分;
将切分后的区别于所述同构子图的图结构数据按照预设的压缩算法进行压缩;
不同的压缩子集类型分别按照预设的压缩算法进行压缩及分区存储。
2.根据权利要求1所述的基于图结构数据的压缩存储方法,其特征在于,所述图结构数据分类模型的训练过程包括:
获取图结构数据样本,并根据所述图结构数据样本的存储模式和应用领域进行分类;
根据分类结果对所述图结构数据样本的类型进行标注;
基于机器学习算法构建所述图结构数据分类模型;
将所述图结构数据样本作为输入、以相应图结构数据样本的标注类型作为输出,对所述图结构数据分类模型进行训练;
在所述图结构数据分类模型的训练结果收敛后得到训练完成的所述图结构数据分类模型。
3.根据权利要求2所述的基于图结构数据的压缩存储方法,其特征在于,所述压缩子集类型的同构子图包括独立同构子图以及树形多级或链形多级同构子图;
在所述同构子图为独立同构子图时,直接将区别于该独立同构子图的图结构数据切分并进行压缩;
在所述同构子图为树形多级同构子图或链形多级同构子图时,确认所述图结构数据所覆盖的树形节点或链形节点,将各级同构子图进行切分并确认各级节点关系,将区别于同构子图的部分图结构数据进行压缩存储。
4.根据权利要求3所述的基于图结构数据的压缩存储方法,其特征在于,所述图结构数据分类模型输出的每个分类结果与一个所述压缩子集类型对应,所述分类结果具有该图结构数据对应的同构子图的类型标识。
5.根据权利要求4所述的基于图结构数据的压缩存储方法,其特征在于,根据压缩子集的存储模式或应用领域类型,采用与当前压缩子集类型相适应的预设压缩算法,对所述图结构数据进行压缩。
6.根据权利要求1至5中任一项所述的基于图结构数据的压缩存储方法,其特征在于,所述图结构数据采用邻接矩阵格式进行表示,切分过程中将作为同构子图的文件、数据对象或关系表进行拆分,并分别将区别于所述同构子图的数据按照预设压缩算法进行压缩存储,同一压缩子集类型下具有相同或部分相同的同构子图。
技术总结