掌桥专利:专业的专利平台
掌桥专利
首页

一种银行数据智能压缩存储方法、计算机设备及存储介质

文献发布时间:2024-04-18 20:01:30


一种银行数据智能压缩存储方法、计算机设备及存储介质

技术领域

本发明涉及一种银行数据智能压缩存储方法、计算机设备及存储介质。

背景技术

人们通过银行办理各种业务,比如:存取款业务、理财业务、相关金融咨询业务、企业金融业务等等,就会产生大量银行数据信息。相应地,就需要对银行数据信息进行压缩存储,由于通常情况下,先对银行数据信息进行编码成二进制数据,然后进行数据压缩存储,现有的数据压缩存储方法通常为直接采用压缩算法进行数据压缩,没有结合待压缩二进制数据的实际情况,导致压缩效率较低。

发明内容

本发明提供一种银行数据智能压缩存储方法、计算机设备及存储介质,用于解决上述技术问题。

一种银行数据智能压缩存储方法,包括:

获取银行数据信息,并将所述银行数据信息编码成二进制数据序列;

设定预设数量的第一数据长度,各第一数据长度均为偶数,对于任意一个第一数据长度,将所述二进制数据序列划分成该第一数据长度的多个二进制数据子序列,统计各个二进制数据子序列中,属于数据编码数据库中该第一数据长度对应的数据编码集合中的数据编码的二进制数据子序列数量,得到目标数量;其中,所述数据编码数据库包括多个第一数据长度,以及各个第一数据长度所对应的数据编码集合;

根据所述二进制数据序列的长度、所述目标数量和所述第一数据长度,获取各第一数据长度所对应的数据压缩效率指标,并根据数据压缩效率指标获取最佳第一数据长度;

将所述二进制数据序列以所述最佳第一数据长度进行划分,得到多个二进制数据目标子序列,并对各二进制数据目标子序列进行压缩;

对压缩完成的各个二进制数据目标子序列进行存储。

进一步地,所述数据编码数据库的获取过程,包括:

将第一数据长度除以2,得到第二数据长度;

对于任意一个第二数据长度,获取该第二数据长度下所有的二进制数据,将任两个所述二进制数据分别进行同或和异或运算,得到对应的第一运算数据和第二运算数据,将所述第一运算数据和第二运算数据进行拼接,构成一个数据编码,获取该第二数据长度下所有的数据编码,构成所述数据编码集合。

进一步地,根据所述二进制数据序列的长度、所述目标数量和所述第一数据长度,获取各第一数据长度所对应的数据压缩效率指标,包括:

对于任意一个第一数据长度,计算所述二进制数据序列的长度与该第一数据长度的比值,得到第一比值;

计算所述第一比值与该第一数据长度所对应的所述目标数量的乘积,并将所述乘积进行归一化,得到该第一数据长度所对应的数据压缩效率指标。

进一步地,根据数据压缩效率指标获取最佳第一数据长度,包括:

将最大的数据压缩效率指标所对应的第一数据长度确定为所述最佳第一数据长度。

进一步地,对压缩完成的各个二进制数据目标子序列进行存储之前,所述银行数据智能压缩存储方法还包括:对压缩完成的各个二进制数据目标子序列进行加密。

进一步地,对压缩完成的各个二进制数据目标子序列进行加密,包括:

根据压缩完成的各个二进制数据目标子序列,构成十进制数据矩阵;

根据十进制数据矩阵中各行元素的数值得到各行元素的特征指标;

对于十进制数据矩阵中的除第一行元素和最后一行元素之外的任意一行元素,获取该行元素的特征指标与其相邻行元素的特征指标之间的差异情况,并确定该行元素是否与其相邻行元素进行叠加;

获取十进制数据矩阵进行叠加操作后的加密矩阵。

进一步地,根据十进制数据矩阵中各行元素的数值得到各行元素的特征指标,包括:

对于任意一行元素,获取该行元素的数值中的最大值和最小值,分别计算所述最大值和最小值的和值和差值,得到第一和值和第一差值,并计算所述第一差值和第一和值的比值,得到第一比值;

计算该行元素的数值的均值,得到第一均值,并计算十进制数据矩阵中所有元素的数值的均值,得到第二均值,计算第一均值和第二均值的差值绝对值,并计算所述差值绝对值和第一预设正数的和值,得到第二和值;

计算所述第一比值和所述第二和值的比值,作为该行元素的特征指标。

进一步地,对于十进制数据矩阵中的除第一行元素和最后一行元素之外的任意一行元素,获取该行元素的特征指标与其相邻行元素的特征指标之间的差异情况,并确定该行元素是否与其相邻行元素进行叠加,包括:

设定十进制数据矩阵中的除第一行元素和最后一行元素之外的任意一行元素为第i行元素,十进制数据矩阵的总行数为n,i=2、3、……、n-1;

计算第i行元素与第i-1行元素的特征指标的差值绝对值,得到第一差值绝对值,并计算第i行元素与第i+1行元素的特征指标的差值绝对值,得到第二差值绝对值,计算所述第一差值绝对值和第二差值绝对值的均值,得到第三均值;

将所述第三均值与预设阈值进行比较,若所述第三均值大于所述预设阈值,则将第i-1行中的各个元素和第i+1行中的各个元素与第i行中的对应元素的数值进行叠加,将叠加后的数值替换第i行中的对应元素的数值,得到第i行元素对应的加密后的元素。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述银行数据智能压缩存储方法的步骤。

一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述银行数据智能压缩存储方法的步骤。

本发明具有如下有益效果:先将银行数据信息编码成二进制数据序列,然后设定多个第一数据长度,对于任意一个第一数据长度,均将二进制数据序列划分成该第一数据长度的多个二进制数据子序列,并统计每种第一数据长度下属于数据编码数据库中对应第一数据长度下的数据编码的数量,然后根据二进制数据序列的长度、目标数量和第一数据长度,获取各第一数据长度所对应的数据压缩效率指标,并根据数据压缩效率指标获取最佳第一数据长度,最后根据最佳第一数据长度对二进制数据序列进行划分、压缩和存储,先根据银行数据信息对应的二进制数据序列的实际情况确定数据划分长度,即结合待压缩二进制数据的实际情况进行数据划分,进而提升数据压缩效率。

附图说明

图1为本发明提供的一种银行数据智能压缩存储方法的流程图;

图2为数据加密流程图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。

应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。

另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。

为了说明本申请所述的技术方案,下面通过具体实施方式来进行说明。

本实施例提供一种银行数据智能压缩存储方法,如图1所示,包括如下步骤:

步骤1:获取银行数据信息,并将所述银行数据信息编码成二进制数据序列:

获取待处理的银行数据信息,银行数据信息包括多种类型的银行数据信息,具体类型以及具体数据量量由实际场景确定。应当理解,银行数据信息可以为用户在办理相关业务时产生的银行业务数据,比如存取款业务数据、理财业务数据、用户信息变更业务数据等等。

然后将银行数据信息编码成二进制数据序列,其中,二进制编码方式可以采用现有的UTF16编码方式、UTF8编码方式、ASCII编码方式等等,不再赘述。应当理解,在对银行数据信息进行二进制编码时,可以按照预设的先后顺序将银行数据信息进行排序,比如按照数据种类或者数据产生时间的先后顺序将银行数据信息进行排序,将排序后的银行数据信息进行二进制编码。

步骤2:设定预设数量的第一数据长度,各第一数据长度均为偶数,对于任意一个第一数据长度,将所述二进制数据序列划分成该第一数据长度的多个二进制数据子序列,统计各个二进制数据子序列属于数据编码数据库中该第一数据长度对应的数据编码集合中的数据编码的数量,得到目标数量;其中,所述数据编码数据库包括多个第一数据长度,以及各个第一数据长度所对应的数据编码集合:

预设有至少两个第一数据长度,第一数据长度的数量由实际需要进行设置,本实施例中,各第一数据长度从区间[X1,X2]中选取,X1和X2均为大于2的正整数,并且,为了便于后续处理,各个第一数据长度均为偶数,本实施例中,第一数据长度最小为4,比如:4、6、8、10等等。

预设有数据编码数据库,数据编码数据库包括多个第一数据长度,以及各个第一数据长度所对应的数据编码集合。其中,数据编码数据库中涉及到的第一数据长度可以与上述预设的第一数据长度完全相同,也可以包含上述预设的第一数据长度,即除了包括上述预设的第一数据长度之外,还包括其他的第一数据长度。数据编码数据库中,每一个第一数据长度均对应有数据编码集合,数据编码集合中包括多个二进制数据编码。作为一个具体实施方式,数据编码数据库的获取过程,包括:设置多个第二数据长度,第二数据长度与第一数据长度的数量相同,且一一对应,将第一数据长度除以2,得到对应的第二数据长度。

对于任意一个第二数据长度,获取该第二数据长度下所有的二进制数据,将任两个二进制数据分别进行同或和异或运算,得到对应的第一运算数据和第二运算数据,将第一运算数据和第二运算数据进行拼接,构成一个数据编码,获取该第二数据长度下所有的数据编码,构成该第二数据长度对应的数据编码集合,由于第二数据长度与第一数据长度一一对应,进而得到该第二数据长度对应的第一数据长度对应的数据编码集合,其他第一数据长度对应的数据编码集合同理得到。比如:第二数据长度等于2,获取数据长度为2的所有的二进制数据,为:00、01、10和11,将00与01分别进行同或和异或运算,得到的第一运算数据为10,第二运算数据为01,将第一运算数据和第二运算数据进行拼接,构成的数据编码为1001,将00与10分别进行同或和异或运算,得到的第一运算数据为01,第二运算数据为10,将第一运算数据和第二运算数据进行拼接,构成的数据编码为0110,将00与11分别进行同或和异或运算,得到的第一运算数据为00,第二运算数据为11,将第一运算数据和第二运算数据进行拼接,构成的数据编码为0011,将01与10分别进行同或和异或运算,得到的第一运算数据为00,第二运算数据为11,将第一运算数据和第二运算数据进行拼接,构成的数据编码为0011,将01与11分别进行同或和异或运算,得到的第一运算数据为01,第二运算数据为10,将第一运算数据和第二运算数据进行拼接,构成的数据编码为0110,将10与11分别进行同或和异或运算,得到的第一运算数据为10,第二运算数据为01,将第一运算数据和第二运算数据进行拼接,构成的数据编码为1001。将重复的数据编码删去,只保留其中一个数据编码。因此,第二数据长度等于2时所对应的数据编码集合为:1001、0110、0011,即第一数据长度等于4时所对应的数据编码集合为:1001、0110、0011。同理,当第二数据长度等于3时,获取数据长度为3的所有的二进制数据,为:000、001、010、011、100、101、110和111,然后获取任两个二进制数据所对应的数据编码,从而得到数据长度为3时所对应的数据编码集合,即第一数据长度等于6时所对应的数据编码集合。其他第一数据长度的数据编码集合均可以计算得到。

应当理解,采用上述处理方式,能够得到较为准确、可靠、全面的数据编码集合,进而提升后续数据压缩的效率,作为其他的实施方式,还可以根据实际需要对各个第一数据长度所对应的数据编码集合进行设定。

对于任意一个第一数据长度,将二进制数据序列划分成该第一数据长度的多个二进制数据子序列,得到的每一个二进制数据子序列的长度均为该第一数据长度。然后,统计各个二进制数据子序列是否属于数据编码数据库中该第一数据长度对应的数据编码集合中的数据编码,具体地:初始计数为0,对于任意一个二进制数据子序列,若该二进制数据子序列属于数据编码数据库中该第一数据长度对应的数据编码集合中的其中一个数据编码,则计数加1,通过上述方式,各个二进制数据子序列均进行是否属于数据编码数据库中该第一数据长度对应的数据编码集合中的数据编码的判定,最终得到的计数为属于数据编码数据库中该第一数据长度对应的数据编码集合中的数据编码的二进制数据子序列数量,设定为该第一数据长度对应的目标数量。

应当理解,若二进制数据序列无法均分成多个该第一数据长度的二进制数据子序列,即得到的最后一个子序列的长度小于该第一数据长度,则判定最后一个子序列不属于数据编码数据库中该第一数据长度对应的数据编码集合中的数据编码。

采用上述方式,可以得到各个第一数据长度所对应的目标数量。

目标数量越多,即存在于数据编码数据库中的数据编码越多,压缩效率越高,因此,目标数量与压缩效率呈正相关关系。

步骤3:根据所述二进制数据序列的长度、所述目标数量和所述第一数据长度,获取各第一数据长度所对应的数据压缩效率指标,并根据数据压缩效率指标获取最佳第一数据长度:

获取二进制数据序列的长度,即二进制数据序列中二进制数的总数量。

由于二进制数据的长度越小,则压缩效率越高,并且,目标数量越多,压缩效率越高。因此,对于任意一个第一数据长度,计算二进制数据序列的长度与该第一数据长度的比值,得到第一比值,然后,计算第一比值与该第一数据长度所对应的目标数量的乘积,并将该乘积进行归一化,归一化后的乘积值为该第一数据长度所对应的数据压缩效率指标。其中,归一化可以采用现有的归一化方式,比如采用计算公式:1-e

采用上述方式,可以得到各第一数据长度所对应的数据压缩效率指标,从中获取最佳第一数据长度,由于数据压缩效率指标越大,表示对应的压缩效果越好,因此,本实施例中,将其中最大的数据压缩效率指标所对应的第一数据长度确定为最佳第一数据长度。

步骤4:将所述二进制数据序列以所述最佳第一数据长度进行划分,得到多个二进制数据目标子序列,并对各二进制数据目标子序列进行压缩:

将二进制数据序列以最佳第一数据长度进行划分,得到多个二进制数据目标子序列,其中,存在两种情况,若二进制数据序列恰好能够以最佳第一数据长度进行等分,则得到的二进制数据目标子序列的长度均为最佳第一数据长度;若二进制数据序列无法以最佳第一数据长度进行等分,则最后一个二进制数据目标子序列的长度小于最佳第一数据长度。

然后,对各二进制数据目标子序列进行压缩,应当理解,采用现有的数据压缩算法,比如霍夫曼编码、字典压缩算法(如LZW压缩算法)等进行数据压缩,得到压缩后的各个二进制数据目标子序列。

步骤5:对压缩完成的各个二进制数据目标子序列进行存储:

本实施例中,对压缩完成的各个二进制数据目标子序列进行存储之前,银行数据智能压缩存储方法还包括:对压缩完成的各个二进制数据目标子序列进行加密,提升数据存储的安全性。作为一个具体实施方式,如图2所示,加密过程包括:

步骤(1):根据压缩完成的各个二进制数据目标子序列,构成十进制数据矩阵:

由于压缩完成的各个二进制数据目标子序列仍旧是二进制数据序列,因此,将压缩完成的各个二进制数据目标子序列进行拼接,得到一个二进制数据总序列,然后将二进制数据总序列中每预设位数的二进制数据转换为一个十进制数据,比如每8位二进制数据转换为一个十进制数据,使得将二进制数据总序列转化为十进制数据序列,然后,按照十进制数据序列的总位数,将其转换成一个十进制数据矩阵,具体地:将十进制数据矩阵中每M个十进制数据作为矩阵的一行,得到多行多列的十进制数据矩阵。本实施例中,矩阵的原则是:能够将十进制数据序列恰好转换成一个完整的数据矩阵,比如若十进制数据序列的总位数为20,则可以将其转换成一个4*5的十进制数据矩阵。应当理解,若十进制数据序列无法转换成一个完整的数据矩阵,则可以将得到的矩阵中的空白位置置0。应当理解,为了便于后续处理,十进制数据矩阵的行数最小极限情况为3行,本实施例中,设定十进制数据矩阵的最小行数为6行。

步骤(2):根据十进制数据矩阵中各行元素的数值得到各行元素的特征指标:

各行元素的特征指标反映了各行元素的特征信息。由于十进制数据矩阵中的各个元素均为十进制数,即均对应一个具体的数值,那么,本实施例中,对于任意一行元素,获取该行元素的数值中的最大值和最小值,计算最大值和最小值的和值,得到第一和值,计算最大值和最小值的差值,得到第一差值,并计算第一差值和第一和值的比值,得到第一比值。然后,计算该行元素的数值的均值,得到第一均值,并计算十进制数据矩阵中所有元素的数值的均值,得到第二均值,计算第一均值和第二均值的差值绝对值,并计算该差值绝对值和第一预设正数的和值,得到第二和值。第一预设正数用于防止分母为0,其具体数值由实际需要进行设置,比如1。最后计算第一比值和第二和值的比值,作为该行元素的特征指标。

如下给出任意一行元素的特征指标A的计算公式:

其中,Y1为第一比值,Z1为第一均值,Z2为第二均值,B为第一预设正数。

上述计算公式中,分子反映了对应行元素的数值之间的差异情况,分子越大,该行元素的数值的特征越明显。分母反映了该行元素与矩阵整体之间的差异情况,差异越小,该行元素的数值的特征越明显。

步骤(3):对于十进制数据矩阵中的除第一行元素和最后一行元素之外的任意一行元素,获取该行元素的特征指标与其相邻行元素的特征指标之间的差异情况,并确定该行元素是否与其相邻行元素进行叠加:

本实施例中,需要根据每行元素与其上下相邻的行元素进行差异比较,由于十进制数据矩阵中的除第一行元素和最后一行元素不同时具有上下相邻的行元素,因此,第一行元素和最后一行元素不参与后续处理。那么,对于十进制数据矩阵中的除第一行元素和最后一行元素之外的任意一行元素,获取该行元素的特征指标与其相邻行元素的特征指标之间的差异情况,确定该行元素是否与其相邻行元素进行叠加,具体地:

设定十进制数据矩阵中的除第一行元素和最后一行元素之外的任意一行元素为第i行元素,十进制数据矩阵的总行数为n,那么,i=2、3、……、n-1。

计算第i行元素与第i-1行元素的特征指标的差值绝对值,得到第一差值绝对值,并计算第i行元素与第i+1行元素的特征指标的差值绝对值,得到第二差值绝对值,计算第一差值绝对值和第二差值绝对值的均值,得到第三均值。第三均值反映了第i行元素与其上下相邻行元素之间的特征差异情况,第三均值越大,第i行元素与其上下相邻行元素之间的特征差异越明显。

预设一个阈值,该阈值由实际情况进行设置,应当理解,该阈值的设定需要满足最少有一行元素能够进行数据叠加。将第三均值与该预设阈值进行比较,若第三均值大于预设阈值,表示第i行元素与其上下相邻行元素之间的特征差异比较明显,则将第i-1行中的各个元素和第i+1行中的各个元素与第i行中的对应元素的数值进行叠加,将叠加后的数值替换第i行中的对应元素的数值,得到第i行元素对应的加密后的元素,即若各行元素的数量为M,那么,对于第j个元素,j=1、2、3、……、M,将第i-1行中的第j个元素的数值、第i行中的第j个元素的数值和第i+1行中的第j个元素的数值相加,得到的和值替换第i行中第j个元素的数值,从而完成了第i行的元素更新,更新即加密,得到加密后的第i行元素。若第三均值小于或者等于预设阈值,则不对第i行元素进行处理。

应当理解,第i行元素进行加密前后的区别在于各个元素的数值不同,由于第i行元素也是第i-1行的相邻行,若参与第i-1行是否进行叠加判断时,采用第i行元素加密前的原始数据。即,每行元素参与其相邻行元素的叠加判断以及叠加运算时,使用的均是加密前的元素的数值。

步骤(4):获取十进制数据矩阵进行叠加操作后的加密矩阵:

采用上述方式,实现除第一行元素和最后一行元素之外的任意一行元素是否与其相邻行元素进行叠加,其中,参与叠加运算的行,输出加密后的行元素;不参与叠加运算的行,输出其自身;而第一行元素和最后一行元素不做处理,最终输出叠加操作后的加密矩阵。从而完成了对十进制数据矩阵的更新,即加密,得到的十进制数据矩阵进行叠加操作后的加密矩阵为更新后的十进制数据矩阵。

最后,对加密矩阵进行存储,比如存储在预设的存储器中。

本实施例还提供一种计算机设备,包括:存储器和处理器。其中,存储器通过总线与处理器连接。存储器用于存储程序指令。处理器用于在程序指令被执行时,执行上述图1所述的银行数据智能压缩存储方法。

本实施例还提供一种计算机存储介质,其上存储有计算机程序,该计算机程序可被执行实现上述图1所述的银行数据智能压缩存储方法。银行数据智能压缩存储方法的具体实现及有效效果,可参见上述,在此不再赘述。

相关技术
  • 一种硅锭或硅棒的自动检测分拣系统及其操作方法
  • 一种核燃料棒有源检测方法及系统
  • 一种核燃料棒有源检测系统及方法
技术分类

06120116556423