CN117032559A - 一种基于台区数据的分布式低开销高可靠储存方法及终端 - Google Patents
一种基于台区数据的分布式低开销高可靠储存方法及终端 Download PDFInfo
- Publication number
- CN117032559A CN117032559A CN202310785581.3A CN202310785581A CN117032559A CN 117032559 A CN117032559 A CN 117032559A CN 202310785581 A CN202310785581 A CN 202310785581A CN 117032559 A CN117032559 A CN 117032559A
- Authority
- CN
- China
- Prior art keywords
- data
- column
- columns
- sub
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 80
- 238000003860 storage Methods 0.000 title claims abstract description 46
- 230000011218 segmentation Effects 0.000 claims abstract description 8
- 230000009467 reduction Effects 0.000 claims abstract description 4
- 230000008569 process Effects 0.000 claims description 24
- 230000006835 compression Effects 0.000 claims description 14
- 238000007906 compression Methods 0.000 claims description 14
- 239000011159 matrix material Substances 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 6
- 230000008707 rearrangement Effects 0.000 claims description 6
- 238000004422 calculation algorithm Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 3
- 238000009826 distribution Methods 0.000 claims description 3
- 238000007621 cluster analysis Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 abstract description 7
- 238000005516 engineering process Methods 0.000 description 16
- 238000013500 data storage Methods 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- RGJOEKWQDUBAIZ-IBOSZNHHSA-N CoASH Chemical compound O[C@@H]1[C@H](OP(O)(O)=O)[C@@H](COP(O)(=O)OP(O)(=O)OCC(C)(C)[C@@H](O)C(=O)NCCC(=O)NCCS)O[C@H]1N1C2=NC=NC(N)=C2N=C1 RGJOEKWQDUBAIZ-IBOSZNHHSA-N 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
- 229920003169 water-soluble polymer Polymers 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于台区数据的分布式低开销高可靠储存方法及终端,属于台区数据处理技术领域,方法对具有台区数据的事实表和附属表分别进行降维分割,获得多个子表;对每个子表按维度分割,获得多个数据列;对每个数据列按台区数据相似度重排,获得重排后的数据列和对应顺序编号;对数据列和顺序编号分别进行拼接与切分,获得固定大小的数据块;对获得的数据块使用纠删码编码,得出编码后的数据块;对编码后的数据块进行分组,并对每组数据块单独使用熵编码进行压缩,并分散存于多个储存节点。方法可以解决台区内储存大规模感知数据时单个储存节点容量低、可靠性差的问题。
Description
技术领域
本发明属于台区数据处理技术领域,尤其涉及一种基于台区数据的分布式低开销高可靠储存方法及终端。
背景技术
随着新能源物联感知技术的快速发展,台区(Substation)中的分布式能源感知设备产生了大量数据。这些数据具有结构化的特征,包括时间、位置、能源产量等多个维度。然而,传统的分布式储存技术面临着容量限制和可靠性挑战。
在对台区数据进行处理时,通常采用单个节点储存,但是单个储存节点的容量有限,无法满足台区大规模感知数据的存储需求。而且,由于分布式环境中储存节点的数量众多,节点故障和数据丢失的风险也随之增加。
相比单个节点储存,也有采用分布式进行数据存储的文献,比如申请号为CN201310480833.8,公开了一种基于分布式哈希表和纠删码的数据存储方法,该文件的S1:基于分布式哈希表建立各服务器节点的拓扑逻辑结构,通过一致性哈希算法,确定各个key对应的block块所在的服务器的位置,服务器的拓扑结构同Chord; S2:客户端采用纠删码(如VandermondeRSCode编码)对原始数据进行编码,将每个键对应的block块编码为若干个chunk块,并通过写操作write()将编码后的若干个chunk块存储到多个服务器节点。每个block块都包含一个版本信息,每次对key对应的block块的写操作都是通过追加写的方式完成,即每次对block的写操作都会使对应的版本号加1。S3:每隔预设时间间隔,通过基于分布式哈希表的协议检测服务器节点的加入和离开,并依据纠删码的方式计算各个chunk块所在的服务器节点的位置,维护数据的冗余块的个数保持在预定数量。
该文件,无法对大规模感知数据的切割、编码、存储和恢复,容易导致储存系统的容量不高,可靠性差以及效率低的问题。
发明内容
本发明提供一种基于台区数据的分布式低开销高可靠储存方法,方法可以解决台区内储存大规模感知数据时单个储存节点容量低、可靠性差的问题。
方法包括:
S1. 对具有台区数据的事实表和附属表分别进行降维分割,获得多个子表;
S2. 对每个子表按维度分割,获得多个数据列;
S3. 对每个数据列按台区数据相似度重排,获得重排后的数据列和对应顺序编号;
S4. 对数据列和顺序编号分别进行拼接与切分,获得固定大小的数据块;
S5. 对获得的数据块使用纠删码编码,得出编码后的数据块;
S6. 对编码后的数据块进行分组,并对每组数据块单独使用熵编码进行压缩,并分散存于多个储存节点。
进一步需要说明的是,S1还包括如下步骤:
S11、选取所有被拆解列数据;/>的值为/>;m为表包含的列数;
对每一个,从/>中找到所有/>个列的组合;/>的含义是第/>列数据;
被拆解的列组合数量为:
S12、对于一个被拆解的列组合,其被拆解的表的数量为:
其中,i的含义为k个被选中的列在遍历时的索引;
的含义为k个被选中的列中索引为 i的列;
为求取一列数据的值,所述值通过将对应列数据依次插入一个哈希表,再求取哈希表的信息而得到;
拆分后子表的总值为:
其中,是原表的值,/>为求取一列数据的值,/>为求取一列数据的类型值;
的值通过如下公式进行计算:
一列数据的值则由下式计算:
其中,是原表的行总数;
S13、从S12中计算所有拆解后子表的总值,以及原表值中选取最小的一个作为拆解方案;
S14、根据S13中选取的拆解方案,对原表进行拆解;
若拆解方案中被拆解列为,则拆解时,根据/>中所有可能的值将原表分解为/>个子表,每个子表保留原表中/>列中具有某一个相同值的数据行;使每个子表的列数变为/>,且与/>的某个值关联;
继续对每个子表在列上进行拆解形成更多的子表;并对新子表的拆解直到在列上的拆解完成,最终生成/>个子表,且每一个子表均和一组数据值/>关联,这里,/>是/>的上一个值。
进一步需要说明的是,步骤S2还包括将个子表进行拆分,每个子表拆成/>个列,形成/>个列;
步骤S3还包括:
S31、根据个列中每个列的类型,选择相应的距离计算函数/>:
S32、解析列与列之间的数据距离,并进行聚类分析;
S33、对聚类后的数据进行重新排列,基于同一个聚类的数据进行归类处理,并重新排列数据序列;
若某列数据个数为,归类处理后,新数据序列为/>,并建立索引表,/>为归类处理后第/>个数据/>在重排前的位置。
进一步需要说明的是,步骤S31还包括:
如所述列的类型值为整数类型,则定义为硬件实现“减法”;
如所述列为小数类型,则定义为硬件实现“减法”;
如所述列为任意精度类型,则定义为软件实现“减法”;
如所述列为字符串类型,则定义为软件实现“最长公共子字符串长度”;
如所述列为日期和时间类型,则定义为软件实现“秒数差”;
如所述列为布尔类型,则定义为硬件实现“不等于”;
如所述列为二进制类型,则定义为软件实现“特征相似度”;
如所述列为枚举类型,则定义为硬件实现的“减法”;
如所述列为集合类型,则定义为软件实现的“公共元素数倒数”。
进一步需要说明的是,对于二进制类型中,“特征相似度”为描述两个数据块的相似程度,计算过程包括:
计算单个二进制数据的特征向量,即给定一个窗口大小,在二进制数据上设置步长为1字节的滑动窗口,并延伸至所述列的数据尾部;
每次滑动窗口,计算窗口内数据的哈希值;
计算两个二进制数据的“特征相似度”,若两个二进制数据生成的特征组和/>,则相似度通过下式进行计算:
。
进一步需要说明的是,步骤S32的聚类方法按以下步骤进行:
S321、指定邻域半径和邻域内最小元素数量/>,并指定列所有数据均为未被访问数据;
S322、从所述列数据中选择一个未被访问的数据;
S323、检查选定数据邻域内的数据数量是否大于或等于;
如果大于或等于,则定义所述数据为核心元素;/>的含义为一个预先给定的核心元素邻域半径ε内应该包含的数据点数量;通过调整该值可以改变算法结束后聚类的数量;
S324、基于核心元素,找到其邻域内的所有数据,并将其加入同一个聚类;
S325、对于一个在核心元素邻域内的数据,如果所述数据也为核心元素,那么将其邻域内的数据也加入同一个聚类中,直到无新的数据加入到聚类中;
S326、重复步骤S322到步骤S325,直到所有的数据均被访问,结束聚类进程。
进一步需要说明的是,步骤S4还方法:
S41、将生成的数据序列进行拼接;定义拼接后的数据序列长度为的数组,数组为/>,其中,/>代表第/>列在拼接后数据中开始的位置;
S42、将数据序列与聚类前列的索引序列进行拼接;
S43、将拼接后的数据序列和索引序列切分成固定大小的块;
选取一个块大小,将数据序列和索引序列切分成大小为/>的数据块;
若切分后最后一个块小于,则在数据块最后补充0以对齐大小/>;
若元素序列的大小为,则生成/>个大小为/>的数据块;
若索引序列大小为,则生成/>个大小为/>的数据块,/>选取为2的整数次幂。
进一步需要说明的是,步骤S5还包括:
S51、对数据块进行分组;
确定纠删码的编码参数,其中/>且均为正整数;再将数据序列生成的数据块和索引序列生成的数据块分为大小为/>的组;如果最后一组中数据块的数量小于/>,则使用全部为0为/>的数据块补足,以满足数量/>;
S512、对S51产生的每一组数据进行纠删码编码;
根据编码参数生成大小为/>编码矩阵/>;/>为满秩矩阵;
将个数据块组织成/>的数据矩阵/>;编码过程表示为/>;
在编码过程中,数据间的乘法表示为模乘,加法表示为模加,编码结束后,个数据块被编码为/>个数据块;在/>个数据块中,只要不多于/>个数据块损失或被破坏,则认定为通过解码过程恢复出/>个原始数据块。
进一步需要说明的是,步骤S6方法还包括:
熵编码器使用算术编码器;在压缩前,台区内所有节点均保存一个离散的先验概率分布,/>代表基本压缩字长出现的所有符号出现的概率;
若基本压缩字长为一个字节,则为/>的概率矩阵/>;
其中,;压缩后得到任意精度的数/>,其中,/>,/>的初始值为0;压缩时从输入中逐个读入基本压缩字长的数据,根据数据内容/>,对/>编码:
对大小为的数据块处理完后,即得到压缩后的数据/>。
本发明还提供一种终端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,处理器执行所述程序时实现基于台区数据的分布式低开销高可靠储存方法的步骤。
从以上技术方案可以看出,本发明具有以下优点:
本发明提供的基于台区数据的分布式低开销高可靠储存方法利用数据立方体技术、纠删码技术和熵编码技术,实现了基于分布式低开销、高可靠的储存方式。
而且本发明通过建模估计所有拆分策略中分表最小的策略,极大压缩台区内高度结构化数据的储存大小。还通过数据重排策略,通过将相似度较高的数据邻近排放提高数据的压缩比。进而结合用纠删码和熵编码对数据进行处理,进一步提高数据储存的可靠性和降低所需的空间。实现对大规模感知数据的切割、编码、存储和恢复,提高储存系统的容量、可靠性和效率。
附图说明
为了更清楚地说明本发明的技术方案,下面将对描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为基于台区数据的分布式低开销高可靠储存方法示例流程图;
图2为基于台区数据的分布式低开销高可靠储存方法流程图。
具体实施方式
本发明提供的基于台区数据的分布式低开销高可靠储存方法是利用数据立方体技术、纠删码技术和熵编码技术,设计一种基于数据立方体的分布式低开销、高可靠的储存技术。
基于台区数据的分布式低开销高可靠储存方法可以基于人工智能技术对关联的数据进行获取和处理。其中,储存方法利用数字计算机的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用装置。
本发明的储存方法中既有硬件层面的技术也有软件层面的技术。方法基础技术一般包括如专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统等技术。软件技术主要包括自然语言处理技术、机器学习/深度学习以及一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。
方法还具有机器学习功能,其中本发明方法中的机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。这样,通过将数据立方体的多维特性与纠删码和熵编码相结合,可以实现对大规模感知数据的切割、编码、存储和恢复,提高储存系统的容量、可靠性和效率。
本发明的储存方法还可以应用于一个或者多个终端中,所述终端是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application SpecificIntegratedCircuit,ASIC)、可编程门阵列(Field-ProgrammableGate Array,FPGA)、数字处理器(DigitalSignalProcessor,DSP)、嵌入式设备等。
终端可以是任何一种可与用户进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(PersonalDigitalAssistant,PDA)、交互式网络电视(InternetProtocolTelevision,IPTV)、智能式穿戴式设备等。
终端所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(VirtualPrivateNetwork,VPN)等。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明涉及的基于台区数据的分布式低开销高可靠储存方法中,主要涉及如下过程:首先是对数据表进行拆分处理阶段,数据列重排阶段,以及数据编码阶段。通过对数据表拆分、重排、纠删码编码及熵编码压缩提高数据的可靠性及减少储存数据所需要的空间。
进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例中的具体实施过程,如图2所示,本发明提供的方法还包括:
S1. 对具有台区数据的事实表和附属表分别进行降维分割,获得多个子表;
步骤S1的具体方法如下:
在用数据立方体表示的数据仓库中,数据以一个或多个事实表和附属表表示。事实表和附属表均为关系数据库中的关系(relation)。表中的列称为数据立方体的维度。表中的每一行是一个数据实例。对一个事实表(附属表)进行降维分割即是将一张完整的表分解为多个子表,其中子表的列数小于原表。
具体而言,若一张表包含列,即/>,现可以任意选出/>(/>)列进行拆解,在拆解完成后的所有子表中均包含/>列。
S11. 选取所有可能被拆解列数据。/>可能的值为/>。对每一个可能的/>,从/>中找到所有可能的/>个列的组合。因此,可能被拆解的列组合的数量为:
S12. 对S11中得到的每一个可能的被拆解的列组合,计算其拆解后的大小。对于一个被拆解的列组合,其被拆解的表的数量为:
其中,为求取一列数据可能的值,该值可以通过将该列数据依次插入一个哈希表后求取哈希表的大小获得。拆分后子表的总大小为:
其中,是原表的大小,/>求取一列数据的大小,/>求取一列数据的类型大小,如INT32型即为4字节。/>的大小可以通过如下公式进行计算:
而一列数据的大小则可以由下式计算:
其中,是原表的行总数。
S13. 从S12中计算的所有拆解后子表的总大小,以及原表大小中选取最小的一个作为拆解方案。
S14. 根据S13中选取的拆解方案,对原表进行拆解。
若拆解方案中被拆解列为,则拆解时,根据/>中所有可能的值将原表分解为/>个子表,每个子表保留原表中/>列中具有某一个相同值的数据行;
示例性的讲,代表/>列中不同值的个数,如/>中有5行数据,分别为1、1、2、2、1,这/>应为2,而计算/>的过程可以使用哈希表来加快计算速度,即将1、1、2、2、1作为键值插入一个空的哈希表中,之后计算哈希表中键值数量即可得到结果为2。
若分解子表时根据拆解,由于每个子表包含所有/>中相同值的行,所以其子表数量为/>。在前例中,/>为1的三行为一个子表,/>为2的两行为一个子表,共拆出2个子表。
可见,每个子表的列数变为,且与/>的某个值关联;此时为对原表中第一列拆解后的结果,即若原表为5列,再对原表第一列/>进行拆解,且第一列数据的值个数为2。拆解结果为生成2个子表,每个子表的列数为4列,且每个子表与被拆解列的其中一个值关联。
继续对每个子表在列上进行拆解形成更多的子表;并对新子表进行拆解直到在列上的拆解完成,最终生成/>个子表,且每一个子表均和一组数据值/>关联,这里,/>是/>的上一个值。
可见,在整个拆解过程中,若原表有5列,在列和/>上拆解,且/>为2,为3。这里是在/>上拆出两个子表,每个子表均包含/>。再在每个子表上拆/>,每个子表又可以拆出3个子表,因此最后会拆出/>个子表,每个子表包含3列,即/>,/>,和/>。因此/>可以通过步骤S12进行计算。
S2. 对每个子表按维度分割,获得多个数据列;
对于本发明来讲,对S1中生成的个子表,将每个子表拆成/>个列,共个列。
S3. 对每个数据列按台区数据相似度重排,获得重排后的数据列和对应顺序编号;
在一个示例性实施例中,步骤S3还涉及如下方式:
S31. 对S2中生成的个列,根据每个列的类型不同选择不同的距离计算函数/>:
S311.列为整数类型,可以包括INT、SMALLINT、TINYINT、BIGINT,定义为硬件实现“减法”;
S312.列为小数类型,可以包括FLOAT、DOUBLE,定义为硬件实现“减法”;
S313.列为任意精度类型:可以包括NUMERIC、DECIMAL,定义为软件实现“减法”;
S314.列为字符串类型:可以包括CHAR、VARCHAR、TEXT,定义为软件实现“最长公共子字符串长度”;
S315.列为日期和时间类型:可以包括DATE、TIME、DATETIME、TIMESTAMP,定义为软件实现“秒数差”; 秒数是以秒为计数方式,具体来讲,数据为日期时,如2023-01-01和2023-01-02,计算时为“天数差”乘以“/>秒”。数据为具体时间时,如17:00:00和18:00:00,计算时为“小时差/>分钟差/>秒数差”。
S316.列为布尔类型:可以包括BOOL、BOOLEAN,定义为硬件实现“不等于”;
S317.列为二进制类型:可以包括BLOB、BINARY、VARBINARY,定义为软件实现“特征相似度”;
S318.列为枚举类型:定义为硬件实现的“减法”;
S319.列为集合类型:定义为软件实现的“公共元素数倒数”。 公共元素是指集合类型中含有的元素。公共元素数倒数的计算方式为/>公共元素数。如两个集合为/>和/>,则两个集合的距离为1/2。
示例性的讲,对于二进制类型,“特征相似度”函数描述两个数据块的相似程度,其计算过程如下:
首先,计算单个二进制数据的特征向量,即给定一个窗口大小,在二进制数据上已步长1字节滑动窗口直至抵达数据尾部。每次滑动窗口,计算窗口内数据的哈希值如MD5作为该窗口的特征值。一个大小为/>字节的二进制数据,可以生成大小为/>的特征组。/>选取大小为2的整数次幂字节,如/>。
其次,计算两个二进制数据的“特征相似度”,若两个二进制数据生成的特征组为和/>,则相似可以通过下式计算:
S32. 根据每列数据元素之间的距离,对数据进行聚类。聚类方法按以下步骤进行:下述元素可以理解为本发明中列中对应的数据,也就是元素即为数据。
S321.指定邻域半径和邻域内最小元素数量/>,并指定该列所有元素均为未被访问元素;
S322.从该列元素中选择一个未被访问的元素;
S323.对于选定的元素,检查其邻域内的元素数量是否大于等于。如果满足条件,则称其为核心元素;
S324.对于一个核心元素,找到其邻域内的所有元素,并将其加入同一个聚类;
S325.对于一个在核心元素的邻域内的元素,如果它也是核心元素,那么将其邻域内的元素也加入同一个聚类中。这个过程将递归地进行,直到没有新的新的元素加入到聚类中;
S326.重复步骤S322到步骤S325,直到所有的元素都被访问。
算法结束后,列的每个元素均被分配到一个聚类当中。聚类的数量与步骤S322到步骤S325迭代的次数相同。
S33. 将一列数据聚类后的元素进行重新排列,让属于同一个聚类的元素排在一起。若该列元素个数为,重排后生成新的数据序列/>以及一个索引表。/>指向重排后第/>个元素即/>在重排前的位置。
S4. 对数据列和顺序编号分别进行拼接与切分,获得固定大小的数据块;
步骤S4还包括如下方法:
S41. 将S3步骤中生成的个数据列的聚类后数据序列进行拼接;基于拼接后的数据定义拼接长度,拼接长度为/>的数组,其内容为/>,其中代表第/>列在拼接后数据中开始的位置。
S42. 将个数据列的聚类前索引序列进行拼接。
S43. 将拼接后的数据序列和索引序列切分成固定大小的块。选取一个块大小,将数据序列和索引序列切分成大小为/>的数据块。
若切分后最后一个块小于,则在数据块最后补充0以对齐大小/>。若数据序列的大小为/>,则生成/>个大小为/>的数据块。若索引序列大小为/>,则生成/>个大小为/>的数据块。/>选取为2的整数次幂。
S5. 对获得的数据块使用纠删码编码,得出编码后的数据块;
S51. 对S4中生成固定大小的数据块进行分组。
首先确定纠删码的编码参数,其中,/>且均为正整数。再将数据序列生成的数据块和索引序列生成的数据块分为大小为/>的组。如果最后一组中数据块的数量小于/>,使用全部为0的值,来为/>的数据块进行补足,使该组数据块数量为/>。
S52. 对S51产生的每一组数据进行纠删码编码。这里,根据编码参数生成大小为/>编码矩阵/>。/>为/>的满秩矩阵。如/>,/>,则编码矩阵/>为:
将个数据块组织成/>的数据矩阵/>。若/>,则/>为:
其中,是大小为/>的数据块。编码过程可表示为/>。
本发明在编码过程中,数据间的乘法表示为模乘,加法表示为模加。
本发明在编码结束后,一组数据内的个数据块被编码为/>个大小同样为/>的数据块。在/>个数据块中,只要不多于/>个数据块损失或被破坏,就可以通过解码过程恢复出/>个原始数据块。
S6. 对编码后的数据块进行分组,并对每组数据块单独使用熵编码进行压缩,并分散存于多个储存节点。
其中,步骤S6还涉及如下方式:
对纠删码编码后的数据块使用熵编码器进行独立压缩。
本发明的熵编码器可以使用算术编码器。在压缩前,台区内所有节点均保存一个离散的先验概率分布,其代表基本压缩字长出现的所有可能符号出现的概率。若基本压缩字长为一个字节,则/>为/>的概率矩阵/>,其中/>。
压缩后是一个可能为任意精度的数,其中/>。/>的初始值为0。压缩时从输入中逐个读入基本压缩字长的数据,根据数据内容/>,对/>编码:
当大小为的数据块处理完后即可得到压缩后的数据/>。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
这样,本发明涉及的基于数据立方体的分布式储存方法将为台区分布式新能源物联感知数据的存储提供一种解决方案,能够满足数据量大、结构化明显的要求,并具备低开销和高可靠性的特点。
基于台区数据的分布式低开销高可靠储存方法是结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种基于台区数据的分布式低开销高可靠储存方法,其特征在于,方法包括:
S1. 对具有台区数据的事实表和附属表分别进行降维分割,获得多个子表;
S2. 对每个子表按维度分割,获得多个数据列;
S3. 对每个数据列按台区数据相似度重排,获得重排后的数据列和对应顺序编号;
S4. 对数据列和顺序编号分别进行拼接与切分,获得固定大小的数据块;
S5. 对获得的数据块使用纠删码编码,得出编码后的数据块;
S6. 对编码后的数据块进行分组,并对每组数据块单独使用熵编码进行压缩,并分散存于多个储存节点。
2.根据权利要求1所述的基于台区数据的分布式低开销高可靠储存方法,其特征在于,S1还包括如下步骤:
S11、选取所有被拆解列数据;/>的值为/>;m为表包含的列数;
对每一个,从/>中找到所有/>个列的组合;/>的含义是第/>列数据;
被拆解的列组合数量为:
S12、对于一个被拆解的列组合,其被拆解的表的数量为:
其中,i的含义为k个被选中的列在遍历时的索引;
的含义为k个被选中的列中索引为 i的列;
为求取一列数据的值,所述值通过将对应列数据依次插入一个哈希表,再求取哈希表的信息而得到;
拆分后子表的总值为:
其中,是原表的值,/>为求取一列数据的值,/>为求取一列数据的类型值;
的值通过如下公式进行计算:
一列数据的值则由下式计算:
其中,是原表的行总数;
S13、从S12中计算所有拆解后子表的总值,以及原表值中选取最小的一个作为拆解方案;
S14、根据S13中选取的拆解方案,对原表进行拆解;
若拆解方案中被拆解列为,则拆解时,根据/>中所有可能的值将原表分解为/>个子表,每个子表保留原表中/>列中具有某一个相同值的数据行;使每个子表的列数变为/>,且与/>的某个值关联;
继续对每个子表在列上进行拆解形成更多的子表;并对新子表的拆解直到在/>列上的拆解完成,最终生成/>个子表,且每一个子表均和一组数据值/>关联,这里,是/>的上一个值。
3.根据权利要求2所述的基于台区数据的分布式低开销高可靠储存方法,其特征在于,步骤S2还包括将个子表进行拆分,每个子表拆成/>个列,形成/>个列;
步骤S3还包括:
S31、根据个列中每个列的类型,选择相应的距离计算函数/>:
S32、解析列与列之间的数据距离,并进行聚类分析;
S33、对聚类后的数据进行重新排列,基于同一个聚类的数据进行归类处理,并重新排列数据序列;
若某列数据个数为,归类处理后,新数据序列为/>,并建立索引表,/>为归类处理后第/>个数据/>在重排前的位置。
4.根据权利要求3所述的基于台区数据的分布式低开销高可靠储存方法,其特征在于,步骤S31还包括:
如所述列的类型值为整数类型,则定义为硬件实现“减法”;
如所述列为小数类型,则定义为硬件实现“减法”;
如所述列为任意精度类型,则定义为软件实现“减法”;
如所述列为字符串类型,则定义为软件实现“最长公共子字符串长度”;
如所述列为日期和时间类型,则定义为软件实现“秒数差”;
如所述列为布尔类型,则定义为硬件实现“不等于”;
如所述列为二进制类型,则定义为软件实现“特征相似度”;
如所述列为枚举类型,则定义为硬件实现的“减法”;
如所述列为集合类型,则定义为软件实现的“公共元素数倒数”。
5.根据权利要求4所述的基于台区数据的分布式低开销高可靠储存方法,其特征在于,对于二进制类型中,“特征相似度”为描述两个数据块的相似程度,计算过程包括:
计算单个二进制数据的特征向量,即给定一个窗口大小,在二进制数据上设置步长为1字节的滑动窗口,并延伸至所述列的数据尾部;
每次滑动窗口,计算窗口内数据的哈希值;
计算两个二进制数据的“特征相似度”,若两个二进制数据生成的特征组和/>,则相似度通过下式进行计算:
。
6.根据权利要求3所述的基于台区数据的分布式低开销高可靠储存方法,其特征在于,步骤S32的聚类方法按以下步骤进行:
S321、指定邻域半径和邻域内最小元素数量/>,并指定列所有数据均为未被访问数据;
S322、从所述列数据中选择一个未被访问的数据;
S323、检查选定数据邻域内的数据数量是否大于或等于;
如果大于或等于,则定义所述数据为核心元素;/>的含义为一个预先给定的核心元素邻域半径ε内应该包含的数据点数量;通过调整该值可以改变算法结束后聚类的数量;
S324、基于核心元素,找到其邻域内的所有数据,并将其加入同一个聚类;
S325、对于一个在核心元素邻域内的数据,如果所述数据也为核心元素,那么将其邻域内的数据也加入同一个聚类中,直到无新的数据加入到聚类中;
S326、重复步骤S322到步骤S325,直到所有的数据均被访问,结束聚类进程。
7.根据权利要求3所述的基于台区数据的分布式低开销高可靠储存方法,其特征在于,步骤S4还方法:
S41、将生成的数据序列进行拼接;定义拼接后的数据序列长度为的数组,数组为,其中,/>代表第/>列在拼接后数据中开始的位置;
S42、将数据序列与聚类前列的索引序列进行拼接;
S43、将拼接后的数据序列和索引序列切分成固定大小的块;
选取一个块大小,将数据序列和索引序列切分成大小为/>的数据块;
若切分后最后一个块小于,则在数据块最后补充0以对齐大小/>;
若元素序列的大小为,则生成/>个大小为/>的数据块;
若索引序列大小为,则生成/>个大小为/>的数据块,/>选取为2的整数次幂。
8.根据权利要求7所述的基于台区数据的分布式低开销高可靠储存方法,其特征在于,步骤S5还包括:
S51、对数据块进行分组;
确定纠删码的编码参数,其中/>且均为正整数;再将数据序列生成的数据块和索引序列生成的数据块分为大小为/>的组;如果最后一组中数据块的数量小于/>,则使用全部为0为/>的数据块补足,以满足数量/>;
S512、对S51产生的每一组数据进行纠删码编码;
根据编码参数生成大小为/>编码矩阵/>;/>为满秩矩阵;
将个数据块组织成/>的数据矩阵/>;编码过程表示为/>;
在编码过程中,数据间的乘法表示为模乘,加法表示为模加,编码结束后,个数据块被编码为/>个数据块;在/>个数据块中,只要不多于/>个数据块损失或被破坏,则认定为通过解码过程恢复出/>个原始数据块。
9.根据权利要求7所述的基于台区数据的分布式低开销高可靠储存方法,其特征在于,步骤S6方法还包括:
熵编码器使用算术编码器;在压缩前,台区内所有节点均保存一个离散的先验概率分布,/>代表基本压缩字长出现的所有符号出现的概率;
若基本压缩字长为一个字节,则为/>的概率矩阵/>;
其中,;压缩后得到任意精度的数/>,其中,/>,/>的初始值为0;压缩时从输入中逐个读入基本压缩字长的数据,根据数据内容/>,对/>编码:
对大小为的数据块处理完后,即得到压缩后的数据/>。
10.一种终端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至9任一项所述基于台区数据的分布式低开销高可靠储存方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310785581.3A CN117032559A (zh) | 2023-06-29 | 2023-06-29 | 一种基于台区数据的分布式低开销高可靠储存方法及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310785581.3A CN117032559A (zh) | 2023-06-29 | 2023-06-29 | 一种基于台区数据的分布式低开销高可靠储存方法及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117032559A true CN117032559A (zh) | 2023-11-10 |
Family
ID=88641894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310785581.3A Pending CN117032559A (zh) | 2023-06-29 | 2023-06-29 | 一种基于台区数据的分布式低开销高可靠储存方法及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117032559A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118132522A (zh) * | 2024-05-10 | 2024-06-04 | 成都联屹科技有限公司 | 数据压缩装置、方法及芯片 |
-
2023
- 2023-06-29 CN CN202310785581.3A patent/CN117032559A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118132522A (zh) * | 2024-05-10 | 2024-06-04 | 成都联屹科技有限公司 | 数据压缩装置、方法及芯片 |
CN118132522B (zh) * | 2024-05-10 | 2024-07-19 | 成都联屹科技有限公司 | 数据压缩装置、方法及芯片 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108292315B (zh) | 储存和检索数据立方体中的数据 | |
CN107391306B (zh) | 一种异构数据库备份文件恢复方法 | |
CN109299086B (zh) | 最优排序键压缩和索引重建 | |
Sun et al. | IFCCompressor: A content-based compression algorithm for optimizing Industry Foundation Classes files | |
CN111814466A (zh) | 基于机器阅读理解的信息抽取方法、及其相关设备 | |
CN107766555B (zh) | 基于软约束无监督型跨模态哈希的图像检索方法 | |
CN111325245B (zh) | 重复图像识别方法、装置、电子设备及计算机可读存储介质 | |
WO2018000709A1 (zh) | 时间信息编码方法、编码值检索方法、解码方法与装置 | |
CN117032559A (zh) | 一种基于台区数据的分布式低开销高可靠储存方法及终端 | |
CN107066837A (zh) | 一种有参考dna序列压缩方法和系统 | |
Coutinho et al. | Text classification using compression-based dissimilarity measures | |
CN115408350A (zh) | 日志压缩、日志还原方法、装置、计算机设备和存储介质 | |
CN112598039A (zh) | 获取nlp分类领域阳性样本方法及相关设备 | |
CN112329392A (zh) | 双向编码的目标编码器构建方法及装置 | |
CN116362243A (zh) | 一种融入句子间关联关系的文本关键短语提取方法、存储介质及装置 | |
CN117271780A (zh) | 一种基于大语言模型自身对上下文进行压缩的方法及系统 | |
CN105302915A (zh) | 基于内存计算的高性能数据处理系统 | |
CN114528944A (zh) | 一种医疗文本编码方法、装置、设备及可读存储介质 | |
Wang et al. | Chunk2vec: A novel resemblance detection scheme based on Sentence‐BERT for post‐deduplication delta compression in network transmission | |
Wu et al. | Deep Hybrid Neural Network With Attention Mechanism for Video Hash Retrieval Method | |
CN107291574B (zh) | 基于解释系统的备份数据恢复主键生成方法 | |
CN114490667A (zh) | 多维度的数据分析方法、装置、电子设备及介质 | |
Bhadane et al. | An efficient parallel approach for frequent itemset mining of incremental data | |
CN117971990B (zh) | 一种基于关系感知的实体关系提取方法 | |
CN114826278B (zh) | 基于布尔矩阵分解的图数据压缩方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |