CN105574021A - 一种数据库的数据压缩方法和装置 - Google Patents
一种数据库的数据压缩方法和装置 Download PDFInfo
- Publication number
- CN105574021A CN105574021A CN201410542357.2A CN201410542357A CN105574021A CN 105574021 A CN105574021 A CN 105574021A CN 201410542357 A CN201410542357 A CN 201410542357A CN 105574021 A CN105574021 A CN 105574021A
- Authority
- CN
- China
- Prior art keywords
- character string
- data
- type
- source data
- mapping
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据库的数据压缩方法和装置。该方法包括:当有源数据要存入数据库中时,判断源数据的数据类型是否属于数字类型;若源数据属于数字类型,将源数据转换成数字型字符串,根据第一映射表对数字型字符串进行映射,得到缩位字符串;其中,第一映射表中保存有00~99十进制的二位数字与一位字符的对应关系;若源数据属于非数字类型,先根据第二映射表对非数字类型的源数据进行映射,得到数字型字符串,然后再根据第一映射表对得到的数字型字符串进行映射,得到缩位字符串;将得到的缩位字符串保存到数据库中。本发明提供的技术方案能够解决现有的键值对形式存储的非关系型的数据库,由于数据冗余存在需要占用大量额外的内存的问题。
Description
技术领域
本发明涉及计算机领域,特别是涉及一种数据库的数据压缩方法和装置。
背景技术
HBase(HadoopDatabase,Hadoop数据库)是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可以在廉价的个人电脑上搭建起大规模结构化存储集群。然而根据HBase(HadoopDatabase,Hadoop数据库)的文件结构机制,为了精确定位查询数据位置,导致每个单元都会重复存储行键RowKey。
对于键值对形式存储的非关系型的数据库或者缓存数据库来讲,键key的长度成倍影响存储数据所占的存储容量。因此,Hbase数据库在提升查询效率的同时,其存储机制会产生两个副作用:
首先,RowKey的重复存储会导致数据容量暴增,一般会有3-7倍的膨胀,再加上HBase集群的高可靠性的特点,会将数据存储3份以应对节点故障,这样整体上数据存储会膨胀9-21倍。
其次,由于数据膨胀导致入库和数据同步效率低下,并且膨胀的数据对网络带宽的要求也很高。
综上所述,现有的键值对形式存储的非关系型的数据库,由于数据冗余存在需要占用大量额外的内存的问题。
发明内容
本发明提供了一种数据库的数据压缩方法和装置,本发明提供的技术方案能够解决现有的键值对形式存储的非关系型的数据库,,由于数据冗余存在需要占用大量额外的内存的问题。
本发明公开了一种数据库的数据压缩方法,该方法包括:
当有源数据要存入数据库中时,判断所述源数据的数据类型是否属于数字类型;
若所述源数据属于数字类型,将所述源数据转换成数字型字符串,根据第一映射表对所述数字型字符串进行映射,得到缩位字符串;其中,所述第一映射表中保存有00~99十进制的二位数字与一位字符的对应关系;
若所述源数据属于非数字类型,先根据第二映射表对非数字类型的源数据进行映射,得到数字型字符串,然后再根据所述第一映射表对得到的所述数字型字符串进行映射,得到缩位字符串;其中所述第二映射表中保存有非数字类型的数据与数字型字符串的一一对应关系;
将得到的缩位字符串保存到数据库中。
可选的,该方法还包括:设置映射二维表;所述映射二维表中设置了源数据的数据类型以及所述数据类型对应的映射方式;
所述当有源数据要存入数据库中时,判断所述源数据的数据类型之后包括:
根据所述源数据的数据类型从所述映射二维表中获取对应的映射方式。
可选的,所述根据第一映射表对所述数字型字符串进行映射包括:
将数字型字符串从低位开始,按照两位一组进行分组,其中当所述数字型字符串的位数不是偶数位时,对最高位进行补零;
根据所述第一映射表,依次将每组中的二位数字字符替换为一位字符。
可选的,所述若所述源数据属于非数字类型,先根据第二映射表对非数字类型的源数据进行映射,得到数字型字符串,然后再根据所述第一映射表对得到的所述数字型字符串进行映射,得到缩位字符串包括:
根据所述第二映射表,将源数据转换为对应的数字型字符串;
将所述数字型字符串从低位开始,按照两位一组进行分组,其中当所述数字型字符串的位数不是偶数位时,对最高位进行补零;
根据所述第一映射表,依次将每组中的二位数字字符替换为一位字符。
可选的,若所述源数据为时间类型,所述将源数据转换成数字型字符串包括:将时间类型的源数据转化为秒值;
将所述时间类型的源数据所在年份的1月1日作为基准值,将所述基准值转化为基准秒值;
将所述秒值减去所述基准秒值得到的秒值差作为所述时间类型的源数据的数字型字符串。
可选的,该方法还包括:当从数据库中读取数据时,根据查询条件对应的数据类型,对所述查询条件进行对应的映射,得到查询映射结果;
根据所述查询映射结果在所述数据库中进行匹配查询;
如果匹配,则将返回的数据进行相应的逆映射,将得到的源数据输出。
依据本发明的另一面,本发明公开了一种数据库的数据压缩装置,该装置包括:输入输出单元、处理单元和存储单元;其中,存储单元中保存有第一映射表和第二映射表,所述第一映射表中保存有00~99十进制的二位数字与一位字符的对应关系;所述第二映射表中保存有非数字类型的数据与数字型字符串的一一对应关系;
所述输入输出单元,用于接收输入的源数据,将所述源数据发送给处理单元;
所述处理单元,用于接收输入输出单元发送的源数据,判断所述源数据的数据类型是否属于数字类型;若所述源数据属于数字类型,将所述源数据转换成数字型字符串后,根据第一映射表对所述数字型字符串进行映射,得到缩位字符串;若所述源数据属于非数字类型,先根据第二映射表对非数字类型的源数据进行映射,得到数字型字符串,然后再根据所述第一映射表对得到的所述数字型字符串进行映射,得到缩位字符串;将得到的缩位字符串保存到所述存储单元中。
可选的,存储单元中还保存有映射二维表;所述映射二维表中设置了源数据的数据类型以及所述数据类型对应的映射方式;
所述处理单元,用于根据源数据的数据类型从所述映射二维表中获取对应的映射方式;
和/或,
所述处理单元,用于在从存储单元中读取数据时,根据查询条件对应的数据类型,对所述查询条件进行对应的映射得到查询映射结果;根据所述查询映射结果在所述数据库中进行匹配查询;如果匹配,则将返回的数据进行相应的逆映射,将得到的源数据发送给输入输出单元。
可选的,所述处理单元,用于将数字型字符串从低位开始,按照两位一组进行分组,其中当所述数字型字符串的位数不是偶数位时,对最高位进行补零;根据所述第一映射表,依次将每组中的二位数字字符替换为一位字符;
和/或,
所述处理单元,用于根据所述第二映射表,将源数据转换为对应的数字型字符串;将所述数字型字符串从低位开始,按照两位一组进行分组,其中当所述数字型字符串的位数不是偶数位时,对最高位进行补零;根据所述第一映射表,依次将每组中的二位数字字符替换为一位字符。
可选的,所述处理单元,用于将时间类型的源数据转化为秒值;将所述时间类型的源数据所在年份的1月1日作为基准值,将所述基准值转化为基准秒值;将所述秒值减去所述基准秒值得到的秒值差作为所述时间类型的数据的数字型字符串。
由此可见,在本发明提供的技术方案中,当有源数据要存入数据库时,先根据待存入的源数据的数据类型,将该源数据转化为数字型字符串,再根据第一映射表,依次将数字型字符串中二位数字字符替换为一位字符后存入所述数据库中。即在本发明中,通过将数字型字符串中二位数字字符替换为一位字符后实现对数字型字符串的缩位处理。进而有效减少了分布式数据库中,存储源数据的所占用的内存的容量。
附图说明
图1是本发明中一种数据库的数据压缩方法的流程图;
图2是本发明中一种数据库的数据压缩方法的详细流程图;
图3是本发明中读取数据库中压缩数据的方法流程图;
图4是本发明中一种数据库的数据压缩装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明中一种数据库的数据压缩方法的流程图;本发明提供的方法适用于分布式数据库中,能够解决现有的基于内存的分布式键值对缓存数据库,由于数据冗余存在需要占用大量额外的内存的问题。如图1所示,该方法包括如下步骤:
步骤101,当有源数据要存入数据库中时,判断所述源数据的数据类型是否属于数字类型,如果是,执行步骤102;如果否,执行步骤S103。
步骤102,将所述源数据转换成数字型字符串,根据第一映射表对所述数字型字符串进行映射,得到缩位字符串;其中,所述第一映射表中保存有00~99十进制的二位数字字符与一位字符的对应关系。其中,所述一位字符可以为任意字符。
在步骤102中,根据第一映射表将数字型字符串每二位替换为对应的一位字符,得到对应的缩位字符串。
步骤103,根据第二映射表对非数字类型的源数据进行映射,得到数字型字符串,然后再根据所述第一映射表对得到的所述数字型字符串进行映射,得到缩位字符串;其中所述第二映射表中保存有非数字类型的数据与数字型字符串的一一对应关系。
在步骤103中,根据第二映射表将非数字类型的数据映射为对应的数字型字符串。
步骤104,将得到的缩位字符串保存到数据库中。
由此可见,在本发明提供的技术方案中,当有源数据要存入数据库时,先将该源数据转化为数字型字符串,再根据第一映射表,依次将数字型字符串中二位数字字符替换为一位字符后存入所述数据库中。即在本发明中,通过将数字型字符串中二位数字字符替换为一位字符后实现对数字型字符串的缩位处理。进而有效减少了分布式数据库中,存储源数据的所占用的内存的容量。
图2是本发明一种数据库的数据压缩方法的详细流程图。为了更加有效的压缩数据库中的数据。通过设置映射二维表,针对不同类型的源数据,设置对应的映射方式,进而能够有效地降低分布式数据库中的源数据占用的存储容量。参见图2所示,该方法包括如下步骤。
步骤201,设置映射二维表、第一映射表和第二映射表。其中,所述映射二维表中设置了源数据的数据类型对应的映射方式。第一映射表中保存有00~99十进制的二位数字与一位字符的对应关系。第二映射表中保存有非数字类型的数据与数字型字符串的一一对应关系。
在本发明的一种实施例中,在步骤201中,在设置的映射二维表中,根据实际情况,分别设置不同数据类型的源数据所对应的映射方式。参见表1,表1是本实施例中的一种映射二维表。
数据类型 | 位数 | 示例 | 映射方式 | 算法解释 |
日期 | 8 | 20140829 | 1 | 仅第一映射表 |
省份 | 3 | Nmg | 2 | 先第二映射表、再第二映射表 |
厂商 | 6 | huawei | 2 | 先第二映射表、再第二映射表 |
制式 | 2 | 4g | 3 | 仅第二映射表 |
表1
参见表1可知,在Hbase数据库中,所存储的源数据类型包括:日期类型数据、时间类型、省份类型数据、厂商类型数据以及制式类型数据等等。其中,属于数字型的数据,例如:日期类型数据。属于非数字型的数据如:省份类型数据、厂商类型数据、制式类型数据等。
在本发明的一种实施例中,在步骤201中,所设置的第一映射表可以为ASCII码表的部分,即从ASCII码表中取00~99十进制的二位数字与一位字符的对应关系。表2为本实施例中的第一映射表的一部分示例。
ASCII码 | 十进制 | 字符 |
100001 | 33 | ! |
100010 | 34 | " |
100011 | 35 | # |
100100 | 36 | $ |
表2
在本发明的一种实施例中,在步骤201中,所设置的第二映射表中保存了非数字类型的源数据与数字型字符串的一一对应关系。表3是本实施例中的第二映射表的部分示例。
省份标识 | 缩写 | 存入的源数据 | 映射后得到数字型字符串 |
北京 | Bj | 0Bj | 01 |
天津 | Tj | 0Tj | 02 |
内蒙古 | Nmg | Nmg | 03 |
黑龙江 | Hlj | Hlj | 04 |
表3
在上述实施例中,由于省份维度个数不超过100,所以采用二位数的数字做映射,每个省份对应一个数字型字符串。例如,数据库中的0Bj可以通过第二映射表映射为01。此外,对于非数字类型的数据,例如厂商类型数据中的huawei也可以做相同方式的映射,映射为二位数的数字型字符串,在此不一一赘述。
步骤202,当有源数据要存入数据库中时,根据所述源数据的数据类型从所述映射二维表中获取所对应的映射方式。
在步骤202中,当有源数据要存入数据库中时,根据所述源数据的数据类型从所述映射二维表中获取所对应的映射方式。在本发明中,由于属于数字类型的源数据与属于非数字类型的源数据所要进行映射的方式并不相同,对于数字类型的源数据,仅仅需要根据第一映射表进行映射即可。对于非数字类型的源数据,需要先根据第二映射表将非数字类型的源数据转换为数字类型的字符串,再将转换得到的数字型字符串根据第一映射表进行映射。举例为:当存入的数据类型为日期类型数据时,根据获取的对应的映射方式为1,表示将该存入的源数据根据第一映射表进行映射。
步骤203,根据所述第二映射表,将所述非数字类型的数据转换为对应的数字型字符串。
在步骤203中,对于非数字类型的源数据,根据第二映射表中保存的非数字类型的数据与数字型字符串的一一对应关系,将该非数字类型的源数据转换为数字型字符串。举例为:将非数字型字符串0Bj根据第二映射表替换为数字型字符串01。
步骤204,将数字型字符串从低位开始,按照两位一组进行分组,其中当所述数字型字符串的位数不是偶数位时,对最高位进行补零。
在步骤204中,若源数据为日期类型的数据时,在本发明的一种实施例中,将源数据转换成数字型字符串具体包括:
步骤A:将时间类型的源数据转化为秒值。
在本发明的具体实施例中,在步骤A中,对于时间类型的数据2014-06-2715:55:17,将该时间类型的源数据转成秒值的long值为1403855717。
步骤B:将所述时间类型的数据所在年份的1月1日作为基准值,将所述基准值转化为基准秒值;
在步骤B中,对应的基准值是2014-01-01,将该基准值转成基准秒值的long值为1388505600。
步骤C:将所述秒值减去所述基准秒值得到的秒值差作为所述时间类型的数据的数字型字符串。
在步骤C中二者之差为15350117,将该差值作为对应的数字型字符串。
则,在步骤205中,对于时间类型的源数据2014-06-2715:55:17转换得到对应的数字型字符串为15350117。将该数字型字符串从低位开始,按照两位一组进行分组,可以组成[15]、[35]、[01]、[17]四组。在本实施例中,由于得到的差值为偶数位,因此不需要进行高位补零。反之,如果得到的差值为奇数位,则需要对高位进行补零,以便能完成分组操作。
在本实施例中,先通过转换秒值,再与基准秒值求差值的方式所得到的该时间类型的数据所对应的数字型字符串的长度最短,至少缩短了4位年(如2014)对应的字符串位数,因此将该数字型字符串再通过第一映射表进行映射,所得到的数据库压缩效果最好。
在本发明的其他实施例中,还可以采用其他方式,将时间类型的源数据转换为数字型字符串。在此不一一赘述。
步骤205,根据所述第一映射表,依次将每组中的二位数字字符替换为一位字符,将得到的替换后的字符串存入数据库中。
在上述实施例中,对于得到的数字型字符串15350117划分得到[15]、[35]、[01]、[17]四组两位数字字符串,根据第一映射表依次进行替换。其中第一映射表可以为ASCII码表,可知[35]在ASCII码表对应的字符为“#”,即用“#”这一个字符替换[35]两位数,其他以此类推,如此就形成了4位字符“SI”“#”“SOH”“DC1”,用于表示原先的“15350117”这8位数字字符串。
在上述实施例中,由于保存在数据库中的rowkey的位数是固定的,对于省份类型的源数据,在不进行缩位的情况下,即直接存储各省份的缩写,则对应的rowkey的位数为3位。所存入的省份类型的源数据必须占3位,不够3位的高位补零。然而,在进行缩位的情况下,通过第二映射表,将对应的省份类型的源数据映射为二位数字型字符串,再根据第一映射表将该两位的数字型字符串映射为一个字符。举例为:对于省份类型数据:北京。在未缩位之前rowkey需要3位才能存储0bj,然而在缩位之后,只需要“SOH”一个字符就能表示。因此,在缩位之后,对于在数据库中保存省份类型数据,只需要设定rowkey为1位即可。
由上述可知,对于时间类型的数据,根据第一映射表可以将原来14位的时间类型数据2014-06-2715:55:17缩短到4位的字符串,不仅可以节约10/14=72%的存储空间,并且大大提升了将源数据存入数据库的效率,还能降低对数据库中的数据进行处理带来的网络拥塞。可见本发明提供的技术方案不仅在节约存储空间的同时,提还升了数据处理能力。解决了现有技术中,尤其是针对基于内存的key/value缓存的数据库,需要占用额外的内存,以及拖延各存储节点间同步的效率,导致无法实现实时数据同步的问题。还能防止在某个存储节点发生故障的情况下,容易导致存储的数据的不一致性,进行影响集群的可靠性的问题。
图3是本发明中读取数据库中压缩数据的方法流程图,参见图3所示,该方法包括如下步骤。
步骤301,根据查询条件对应的数据类型,对所述查询条件进行对应的映射,得到查询映射结果。
在步骤301中,对于需要查询的数据,根据查询条件中数据类型,通过二维映射表获取对应的映射方式,将该查询条件根据对应的映射方式进行映射,得到对应的查询映射结果。
在本发明的具体实施例中,如果要查询2014-06-2715:55:17这个时期的数据,则将该“2014-06-2715:55:17”根据第一映射表转换为对应的4个字符串“SI”“#”“SOH”“DC1”,即得到的对应的查询映射结果。
步骤302,根据所述查询映射结果在所述数据库中进行匹配查询。
在步骤302中,根据对应的查询映射结果“SI”“#”“SOH”“DC1”在数据库中进行匹配查询。如果能匹配,则说明存在相应的数据。如果不匹配,则说明不存在相应的数据。
步骤303,如果匹配,则将返回的数据进行相应的逆映射,将得到的源数据输出。
在步骤303中,查找到匹配数据的情况下,判断返回的数据的数据类型,根据二维映射表,获取对应的映射方式。再将返回的数据根据该映射方式进行相应的逆映射,将得到的源数据输出。在本发明的具体实施例中,返回的数据为“SOH”,并且返回的数据类型为省份数据。根据二维映射表获取到的映射方式为先根据第二映射表,再根据第一映射表。则在对返回的数据进行逆映射时,先跟第一映射表表进行逆映射得到数字字符串“01”,再根据第二映射表进行逆映射得到“0Bj”。则返回的源数据为表示北京市的bj。
在本发明的一种具体实施例中,还可以将源数据写入数据库中,以及从数据库中读取源数据的过程封装到SDK,使得可以通过直接加载SDK实现直接读写HBase数据库中的源数据。
由此可见,在本发明提供的技术方案中,通过设置的二维映射表,分别根据第一映射表和第二映射表将存入的源数据的数据类型将源数据压缩后保存到Hbase中。解决了现有的HBaseNoSQL分布式数据库的rowkey的长度,会导致实际存储数据会有极大的膨胀的问题。并且,在HBaseNoSQL分布式数据库中大量存储着时间类型的数据,根据本发明的技术方案,可以将时间类型的数据的位数有原来的14位缩短到4位,可以节省高达72%的存储空间。并且由于缩短了时间类型的数据的位置,使得数据量变小,进而使得分布式处理时所要经过网络交换的流量就会变小,从而能够提高数据处理的效率。
依据本发明的另一面,还公开了一种数据库的数据压缩装置,图4是本发明中一种数据库的数据压缩装置的结构示意图。参见图4所示,该装置包括:该装置包括:输入输出单元401、处理单元402和存储单元403;
存储单元403中保存有第一映射表和第二映射表,所述第一映射表中保存有00~99十进制的二位数字与一位字符的对应关系;所述第二映射表中保存有非数字类型的数据与数字型字符串的一一对应关系。
输入输出单元401,用于接收输入的源数据,将所述源数据发送给处理单元402;
处理单元402,于接收输入输出单元401发送的源数据,判断所述源数据的数据类型是否属于数字类型;若所述源数据属于数字类型,将所述源数据转换成数字型字符串后,根据第一映射表对所述数字型字符串进行映射,得到缩位字符串;若所述源数据属于非数字类型,先根据第二映射表对非数字类型的源数据进行映射,得到数字型字符串,然后再根据所述第一映射表对得到的所述数字型字符串进行映射,得到缩位字符串;将得到的缩位字符串保存到所述存储单元403中。
在本发明的一种实施例中,存储单元403中还保存有映射二维表;映射二维表中设置了源数据的数据类型以及所述数据类型对应的映射方式;
处理单元402,用于根据源数据的数据类型从所述映射二维表中获取对应的映射方式;
在本发明的一种实施例中,处理单元402,用于从存储单元403中读取数据时,根据查询条件对应的数据类型,对所述查询条件进行对应的映射得到查询映射结果;根据所述查询映射结果在所述数据库中进行匹配查询;如果匹配,则将返回的数据进行相应的逆映射,将得到的源数据发送给输入输出单元401。
在本发明的一种实施例中,处理单元402,用于将数字型字符串从低位开始,按照两位一组进行分组,其中当所述数字型字符串的位数不是偶数位时,对最高位进行补零;根据所述第一映射表,依次将每组中的二位数字字符替换为一位字符。
在本发明的一种实施例中,当源数据属于非数字类型时,处理单元402,根据第二映射表,将所述源数据转换为对应的数字型字符串;将所述数字型字符串从低位开始,按照两位一组进行分组,其中当所述数字型字符串的位数不是偶数位时,对最高位进行补零;根据所述第一映射表,依次将每组中的二位数字字符替换为一位字符。
在本发明的一种实施例中,当源数据为时间类型数据时,处理单元402,用于将所述时间类型的数据转化为秒值;将所述时间类型的数据所在年份的1月1日作为基准值,将所述基准值转化为基准秒值;将所述秒值减去所述基准秒值得到的秒值差作为所述时间类型的数据的数字型字符串。
由此可见,在本发明提供的技术方案中,通过设置的二维映射表,分别根据第一映射表和第二映射表将存入的源数据的数据类型将源数据压缩后保存到Hbase中。解决了现有的HBaseNoSQL分布式数据库的rowkey的长度,会导致实际存储数据会有极大的膨胀的问题。并且,在HBaseNoSQL分布式数据库中大量存储着时间类型的数据,根据本发明的技术方案,可以将时间类型的数据的位数有原来的14位缩短到4位,可以节省高达72%的存储空间。并且由于缩短了时间类型的数据的位置,使得数据量变小,进而使得分布式处理时所要经过网络交换的流量就会变小,从而能够提高数据处理的效率。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种数据库的数据压缩方法,其特征在于,该方法包括:
当有源数据要存入数据库中时,判断所述源数据的数据类型是否属于数字类型;
若所述源数据属于数字类型,将所述源数据转换成数字型字符串,根据第一映射表对所述数字型字符串进行映射,得到缩位字符串;其中,所述第一映射表中保存有00~99十进制的二位数字与一位字符的对应关系;
若所述源数据属于非数字类型,先根据第二映射表对非数字类型的源数据进行映射,得到数字型字符串,然后再根据所述第一映射表对得到的所述数字型字符串进行映射,得到缩位字符串;其中所述第二映射表中保存有非数字类型的数据与数字型字符串的一一对应关系;
将得到的缩位字符串保存到数据库中。
2.根据权利要求1所述的方法,其特征在于,该方法还包括:设置映射二维表;所述映射二维表中设置了源数据的数据类型以及所述数据类型对应的映射方式;
所述当有源数据要存入数据库中时,判断所述源数据的数据类型之后包括:
根据所述源数据的数据类型从所述映射二维表中获取对应的映射方式。
3.根据权利要求1所述的方法,其特征在于,所述根据第一映射表对所述数字型字符串进行映射包括:
将数字型字符串从低位开始,按照两位一组进行分组,其中当所述数字型字符串的位数不是偶数位时,对最高位进行补零;
根据所述第一映射表,依次将每组中的二位数字字符替换为一位字符。
4.根据权利要求1所述的方法,其特征在于,所述若所述源数据属于非数字类型,先根据第二映射表对非数字类型的源数据进行映射,得到数字型字符串,然后再根据所述第一映射表对得到的所述数字型字符串进行映射,得到缩位字符串包括:
根据所述第二映射表,将源数据转换为对应的数字型字符串;
将所述数字型字符串从低位开始,按照两位一组进行分组,其中当所述数字型字符串的位数不是偶数位时,对最高位进行补零;
根据所述第一映射表,依次将每组中的二位数字字符替换为一位字符。
5.根据权利要求3所述的方法,其特征在于,若所述源数据为时间类型,所述将源数据转换成数字型字符串包括:
将时间类型的源数据转化为秒值;
将所述时间类型的源数据所在年份的1月1日作为基准值,将所述基准值转化为基准秒值;
将所述秒值减去所述基准秒值得到的秒值差作为所述时间类型的源数据的数字型字符串。
6.根据权利要求2所述的方法,其特征在于,该方法还包括:
当从数据库中读取数据时,根据查询条件对应的数据类型,对所述查询条件进行对应的映射,得到查询映射结果;
根据所述查询映射结果在所述数据库中进行匹配查询;
如果匹配,则将返回的数据进行相应的逆映射,将得到的源数据输出。
7.一种数据库的数据压缩装置,其特征在于,该装置包括:输入输出单元、处理单元和存储单元;其中,存储单元中保存有第一映射表和第二映射表,所述第一映射表中保存有00~99十进制的二位数字与一位字符的对应关系;所述第二映射表中保存有非数字类型的数据与数字型字符串的一一对应关系;
所述输入输出单元,用于接收输入的源数据,将所述源数据发送给处理单元;
所述处理单元,用于接收输入输出单元发送的源数据,判断所述源数据的数据类型是否属于数字类型;若所述源数据属于数字类型,将所述源数据转换成数字型字符串后,根据第一映射表对所述数字型字符串进行映射,得到缩位字符串;若所述源数据属于非数字类型,先根据第二映射表对非数字类型的源数据进行映射,得到数字型字符串,然后再根据所述第一映射表对得到的所述数字型字符串进行映射,得到缩位字符串;将得到的缩位字符串保存到所述存储单元中。
8.根据权利要求7所述的装置,其特征在于,存储单元中还保存有映射二维表;所述映射二维表中设置了源数据的数据类型以及所述数据类型对应的映射方式;
所述处理单元,用于根据源数据的数据类型从所述映射二维表中获取对应的映射方式;
和/或,所述处理单元,用于从存储单元中读取数据时,根据查询条件对应的数据类型,对所述查询条件进行对应的映射得到查询映射结果;根据所述查询映射结果在所述数据库中进行匹配查询;如果匹配,则将返回的数据进行相应的逆映射,将得到的源数据发送给输入输出单元。
9.根据权利要求7所述的装置,其特征在于,
所述处理单元,用于将数字型字符串从低位开始,按照两位一组进行分组,其中当所述数字型字符串的位数不是偶数位时,对最高位进行补零;根据所述第一映射表,依次将每组中的二位数字字符替换为一位字符;
和/或,所述处理单元,用于根据所述第二映射表,将源数据转换为对应的数字型字符串;将所述数字型字符串从低位开始,按照两位一组进行分组,其中当所述数字型字符串的位数不是偶数位时,对最高位进行补零;根据所述第一映射表,依次将每组中的二位数字字符替换为一位字符。
10.根据权利要求9所述的装置,其特征在于,
所述处理单元,用于将时间类型的源数据转化为秒值;将所述时间类型的源数据所在年份的1月1日作为基准值,将所述基准值转化为基准秒值;将所述秒值减去所述基准秒值得到的秒值差作为所述时间类型的数据的数字型字符串。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410542357.2A CN105574021A (zh) | 2014-10-14 | 2014-10-14 | 一种数据库的数据压缩方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410542357.2A CN105574021A (zh) | 2014-10-14 | 2014-10-14 | 一种数据库的数据压缩方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105574021A true CN105574021A (zh) | 2016-05-11 |
Family
ID=55884167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410542357.2A Pending CN105574021A (zh) | 2014-10-14 | 2014-10-14 | 一种数据库的数据压缩方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105574021A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105930104A (zh) * | 2016-05-17 | 2016-09-07 | 百度在线网络技术(北京)有限公司 | 数据存储方法和装置 |
CN106649859A (zh) * | 2016-12-30 | 2017-05-10 | 中国移动通信集团江苏有限公司 | 用于对基于字符串的文件进行压缩的方法和装置 |
CN106777258A (zh) * | 2016-12-28 | 2017-05-31 | 银江股份有限公司 | 一种医疗大数据存储中Hbase行键的编码及压缩方法 |
CN107301017A (zh) * | 2017-06-06 | 2017-10-27 | 北京云知声信息技术有限公司 | 一种数据存储方法及装置 |
CN107977166A (zh) * | 2017-11-27 | 2018-05-01 | 广西塔锡科技有限公司 | 一种数据存储方法和系统 |
CN108470053A (zh) * | 2018-03-14 | 2018-08-31 | 北京思特奇信息技术股份有限公司 | 一种字符串压缩方法及装置 |
CN110222093A (zh) * | 2019-06-12 | 2019-09-10 | 中国神华能源股份有限公司 | 处理列车数据的方法、装置及存储介质 |
CN110711389A (zh) * | 2019-09-29 | 2020-01-21 | 上海莉莉丝科技股份有限公司 | 数据处理的方法、装置、设备和计算机可读介质 |
CN113158144A (zh) * | 2021-03-16 | 2021-07-23 | 杭州趣链科技有限公司 | 作品内容上链处理方法、装置、计算机设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1317882A (zh) * | 2001-03-22 | 2001-10-17 | 谭伟祥 | 一种对数据库中的数据进行压缩与解压缩的方法 |
US6603414B1 (en) * | 1999-01-29 | 2003-08-05 | Compaq Computer Corporation | Method for digital compression of characters |
CN1770150A (zh) * | 2004-11-03 | 2006-05-10 | 北京神舟航天软件技术有限公司 | 数据库压缩及解压缩方法 |
CN1933427A (zh) * | 2005-09-12 | 2007-03-21 | 上海新纳广告传媒有限公司 | 基于udp协议的网络心跳监控系统及其方法 |
CN1937582A (zh) * | 2006-08-11 | 2007-03-28 | 白杰 | 待压缩数据的预处理方法以及压缩数据的传输方法 |
CN101676899A (zh) * | 2008-09-18 | 2010-03-24 | 上海宝信软件股份有限公司 | 海量数据库记录的归档和查询方法 |
-
2014
- 2014-10-14 CN CN201410542357.2A patent/CN105574021A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6603414B1 (en) * | 1999-01-29 | 2003-08-05 | Compaq Computer Corporation | Method for digital compression of characters |
CN1317882A (zh) * | 2001-03-22 | 2001-10-17 | 谭伟祥 | 一种对数据库中的数据进行压缩与解压缩的方法 |
CN1770150A (zh) * | 2004-11-03 | 2006-05-10 | 北京神舟航天软件技术有限公司 | 数据库压缩及解压缩方法 |
CN1933427A (zh) * | 2005-09-12 | 2007-03-21 | 上海新纳广告传媒有限公司 | 基于udp协议的网络心跳监控系统及其方法 |
CN1937582A (zh) * | 2006-08-11 | 2007-03-28 | 白杰 | 待压缩数据的预处理方法以及压缩数据的传输方法 |
CN101676899A (zh) * | 2008-09-18 | 2010-03-24 | 上海宝信软件股份有限公司 | 海量数据库记录的归档和查询方法 |
Non-Patent Citations (2)
Title |
---|
SENTHIL SHANMUGASUNDARAM 等: "A Comparative Study Of Text Compression Algorithms", 《INTERNATIONAL JOURNAL OF WISDOM BASED COMPUTING》 * |
周伟: "基于Huffman编码的XML文件压缩存储算法研究与实现", 《软件导刊》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105930104B (zh) * | 2016-05-17 | 2019-01-18 | 百度在线网络技术(北京)有限公司 | 数据存储方法和装置 |
CN105930104A (zh) * | 2016-05-17 | 2016-09-07 | 百度在线网络技术(北京)有限公司 | 数据存储方法和装置 |
CN106777258B (zh) * | 2016-12-28 | 2020-01-03 | 银江股份有限公司 | 一种医疗大数据存储中Hbase行键的编码及压缩方法 |
CN106777258A (zh) * | 2016-12-28 | 2017-05-31 | 银江股份有限公司 | 一种医疗大数据存储中Hbase行键的编码及压缩方法 |
CN106649859B (zh) * | 2016-12-30 | 2019-10-29 | 中国移动通信集团江苏有限公司 | 用于对基于字符串的文件进行压缩的方法和装置 |
CN106649859A (zh) * | 2016-12-30 | 2017-05-10 | 中国移动通信集团江苏有限公司 | 用于对基于字符串的文件进行压缩的方法和装置 |
CN107301017A (zh) * | 2017-06-06 | 2017-10-27 | 北京云知声信息技术有限公司 | 一种数据存储方法及装置 |
CN107301017B (zh) * | 2017-06-06 | 2021-03-09 | 云知声智能科技股份有限公司 | 一种数据存储方法及装置 |
CN107977166A (zh) * | 2017-11-27 | 2018-05-01 | 广西塔锡科技有限公司 | 一种数据存储方法和系统 |
CN108470053A (zh) * | 2018-03-14 | 2018-08-31 | 北京思特奇信息技术股份有限公司 | 一种字符串压缩方法及装置 |
CN110222093A (zh) * | 2019-06-12 | 2019-09-10 | 中国神华能源股份有限公司 | 处理列车数据的方法、装置及存储介质 |
CN110711389A (zh) * | 2019-09-29 | 2020-01-21 | 上海莉莉丝科技股份有限公司 | 数据处理的方法、装置、设备和计算机可读介质 |
CN110711389B (zh) * | 2019-09-29 | 2023-03-07 | 上海莉莉丝科技股份有限公司 | 数据处理的方法、装置、设备和计算机可读介质 |
CN113158144A (zh) * | 2021-03-16 | 2021-07-23 | 杭州趣链科技有限公司 | 作品内容上链处理方法、装置、计算机设备和存储介质 |
CN113158144B (zh) * | 2021-03-16 | 2022-08-30 | 杭州趣链科技有限公司 | 作品内容上链处理方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105574021A (zh) | 一种数据库的数据压缩方法和装置 | |
CN102122285B (zh) | 一种数据缓存系统中的数据查询系统和数据查询方法 | |
US8077059B2 (en) | Database adapter for relational datasets | |
CN106326475B (zh) | 一种高效的静态哈希表实现方法及系统 | |
CN107766529B (zh) | 一种用于污水处理行业的海量数据存储方法 | |
CN102024047B (zh) | 数据检索方法及装置 | |
CN106528786B (zh) | 快速迁移多源异构电网大数据到HBase的方法及系统 | |
CN103685589B (zh) | 基于二进制编码的dns数据压缩、解压缩方法及系统 | |
US9292549B2 (en) | Method and system for index serialization | |
CN111563109B (zh) | 基数统计方法、装置、系统、设备和计算机可读存储介质 | |
CN104252526A (zh) | 基于冗余消除的遥测存储方法 | |
CN111580965A (zh) | 数据请求的处理方法及系统 | |
CN102521299B (zh) | 资源描述框架数据的处理方法 | |
CN102521356B (zh) | 基于确定有限状态自动机的正则表达式匹配设备和方法 | |
CN105589908A (zh) | 用于事务集合的关联规则计算方法 | |
US10929366B1 (en) | Systems and methods for ingesting relational data into a delimited column qualifier NOSQL database | |
WO2020224380A1 (zh) | 一种基于区块链的数据处理方法及装置 | |
CN109800228B (zh) | 一种高效快速解决hash冲突的方法 | |
JP2014502756A (ja) | ツリー構造に基づくマスデータストレージの装置および方法 | |
CN103778258A (zh) | 一种数据库数据的发送、接收方法、客户端、服务器 | |
US20180152514A1 (en) | Method and Apparatus for Client Side Encoding in a Data Processing System | |
US20180113912A1 (en) | Method and system for storing query result in distributed server | |
CN105550220A (zh) | 一种异构系统的取数的方法及装置 | |
US11991290B2 (en) | Associative hash tree | |
CN111538730B (zh) | 一种基于哈希桶算法的数据统计的方法及其系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160511 |
|
RJ01 | Rejection of invention patent application after publication |