CN105824574A - 一种内存数据存储方法 - Google Patents

一种内存数据存储方法 Download PDF

Info

Publication number
CN105824574A
CN105824574A CN201510882588.2A CN201510882588A CN105824574A CN 105824574 A CN105824574 A CN 105824574A CN 201510882588 A CN201510882588 A CN 201510882588A CN 105824574 A CN105824574 A CN 105824574A
Authority
CN
China
Prior art keywords
data
row
column
compression
packet assembly
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
Application number
CN201510882588.2A
Other languages
English (en)
Inventor
夏同飞
杨栋枢
陈�峰
李志�
徐海青
范叶平
孙飞
刘才华
石磊
魏建国
袁东
王维佳
王超
郭振
胡传胜
乔雄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
State Grid Corp of China SGCC
State Grid Information and Telecommunication Co Ltd
Anhui Jiyuan Software Co Ltd
Nanjing NARI Group Corp
Information and Telecommunication Branch of State Grid Jiangsu Electric Power Co Ltd
Original Assignee
State Grid Corp of China SGCC
State Grid Information and Telecommunication Co Ltd
Anhui Jiyuan Software Co Ltd
Nanjing NARI Group Corp
Information and Telecommunication Branch of State Grid Jiangsu Electric Power Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by State Grid Corp of China SGCC, State Grid Information and Telecommunication Co Ltd, Anhui Jiyuan Software Co Ltd, Nanjing NARI Group Corp, Information and Telecommunication Branch of State Grid Jiangsu Electric Power Co Ltd filed Critical State Grid Corp of China SGCC
Priority to CN201510882588.2A priority Critical patent/CN105824574A/zh
Publication of CN105824574A publication Critical patent/CN105824574A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools

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

一种内存数据存储方法
技术领域
本发明涉及计算机应用技术领域,具体是一种内存数据存储方法。
背景技术
目前内存数据存储大多采用行式或者列式存储,行存储数据加载快,但是无法避免读取不必要的列,海量数据查询性能低,列存储查询性能高,但是加载慢,同时,行或者列存储都存在压缩率低、内存空间使用浪费的问题。
发明内容
本发明的目的在于提供一种内存数据存储方法,采用行、列混合存储模式,能够充分发挥行存储写入性能的优势以及列存储读取性能的优势,提高内存空间利用率。
本发明的技术方案为:
一种内存数据存储方法,包括以下步骤:
(1)将数据表分解成若干数据块;
(2)将每个数据块以行的形式分解成若干大小相同的行数据分组集合,所述行数据分组集合分为四个区域,分别是同步标记区、元数据表头区、数据区和索引区;
(3)将待存储的数据以列的形式存储在行数据分组集合的数据区;
(4)将行数据分组集合中的数据行数、每列数据的字节数写入元数据表头区;
(5)对数据区的数据建立索引,写入索引区;
(6)将同步标记写入同步标记区,以区分连续的行数据分组集合;
(7)分别对行数据分组集合的各个区域进行数据压缩;
(8)对数据块进行数据压缩。
所述的内存数据存储方法,所述步骤(7)具体包括:
a、对元数据表头区中的数据采用行程长度编码算法进行压缩;
b、对数据区进行数据压缩时,对于重复值低于预设阈值的列,若为整型数据,则采用行程长度编码算法进行压缩,若为字符型数据,则采用字典编码算法进行压缩,对于重复值高于预设阈值的列,则采用gzip算法进行压缩。
由上述技术方案可知,本发明采用行、列混合存储模式,具备了相当于行存储的数据加载速度和负载适应能力,避免了数据查询时不必要的列读取,混合了多种数据压缩方式,对列维度进行压缩,有效提升了内存空间的利用率。
附图说明
图1是本发明的方法流程图;
图2是本发明的数据存储示意图。
具体实施方式
下面结合附图和具体实施例进一步说明本发明。
如图1所示,一种内存数据存储方法,包括以下步骤:
S1、将数据表分解成若干数据块Block。
S2、将每个数据块Block以行的形式分解成若干大小相同的行数据分组集合RowGroup,每个RowGroup包含四个区域,分别是同步标记区SyncMarker、元数据表头区MetadataHeader、数据区Data、索引区Index。
SyncMarker用于区分一个Block中两个连续的RowGroup;MetadataHeader用于记录每个RowGroup中有几行数据、每列数据有多少字节以及每列数据中每一行数据的字节数;Data用于按列存储RowGroup中的实际数据,Index用于存储轻量级的索引数据。
S3、将待存储的数据以列的形式存储在RowGroup的Data中;将RowGroup中的数据行数、每列数据的字节数写入MetadataHeader中;对Data中的数据建立索引,写入Index中;将同步标记写入SyncMarker中,以区分连续的RowGroup。
S4、分别对RowGroup的各个区域进行数据压缩:
对于MetadataHeader中的数据采用行程长度编码RLE(RunLengthEncoding)算法进行压缩,因为对于记录每列数据中每一行数据的字节数是一样的,这些数字重复连续出现,因此采用这种算法可以获得较高的压缩比。在对Data中的实际数据进行压缩时,对于重复值较少的列,Integer类型的列采用RLE算法进行压缩,String类型的列采用字典编码DE(DictionaryEncoding)算法进行压缩,对于重复值较多或者数据量较大的列,采用gzip算法进行压缩。
S5、采用gzip算法对Block进行数据压缩,在查询时,可配合延迟解压算法(LazyDecompression)。
本发明将内存数据混合行式和列式进行存储,通过先进行水平分区,将尽可能多的数据记录以行式进行存储,再垂直分区,在每个数据块内进行列式存储,并且保证原始同一行的数据都在同一个结点上,如图2所示。
本发明可应用于电力系统运营监测中心,提升了内存数据的读写性能,同时也提高了内存空间的利用率。
以上所述实施方式仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案作出的各种变形和改进,均应落入本发明的权利要求书确定的保护范围内。

Claims (2)

1.一种内存数据存储方法,其特征在于,包括以下步骤:
(1)将数据表分解成若干数据块;
(2)将每个数据块以行的形式分解成若干大小相同的行数据分组集合,所述行数据分组集合分为四个区域,分别是同步标记区、元数据表头区、数据区和索引区;
(3)将待存储的数据以列的形式存储在行数据分组集合的数据区;
(4)将行数据分组集合中的数据行数、每列数据的字节数写入元数据表头区;
(5)对数据区的数据建立索引,写入索引区;
(6)将同步标记写入同步标记区,以区分连续的行数据分组集合;
(7)分别对行数据分组集合的各个区域进行数据压缩;
(8)对数据块进行数据压缩。
2.根据权利要求1所述的内存数据存储方法,其特征在于,所述步骤(7)具体包括:
a、对元数据表头区中的数据采用行程长度编码算法进行压缩;
b、对数据区进行数据压缩时,对于重复值低于预设阈值的列,若为整型数据,则采用行程长度编码算法进行压缩,若为字符型数据,则采用字典编码算法进行压缩,对于重复值高于预设阈值的列,则采用gzip算法进行压缩。
CN201510882588.2A 2015-12-07 2015-12-07 一种内存数据存储方法 Pending CN105824574A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510882588.2A CN105824574A (zh) 2015-12-07 2015-12-07 一种内存数据存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510882588.2A CN105824574A (zh) 2015-12-07 2015-12-07 一种内存数据存储方法

Publications (1)

Publication Number Publication Date
CN105824574A true CN105824574A (zh) 2016-08-03

Family

ID=56514636

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510882588.2A Pending CN105824574A (zh) 2015-12-07 2015-12-07 一种内存数据存储方法

Country Status (1)

Country Link
CN (1) CN105824574A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107894875A (zh) * 2017-11-20 2018-04-10 深圳市德传技术有限公司 一种rtu数据存储方法
CN108243207A (zh) * 2016-12-23 2018-07-03 航天星图科技(北京)有限公司 一种网络云盘的数据存储方法
CN108984103A (zh) * 2017-06-02 2018-12-11 伊姆西Ip控股有限责任公司 用于去重的方法和设备
CN109857814A (zh) * 2018-12-28 2019-06-07 北京东方国信科技股份有限公司 一种内存数据处理方法及存储介质
CN110007855A (zh) * 2019-02-28 2019-07-12 华中科技大学 一种硬件支持的3d堆叠nvm内存数据压缩方法及系统
CN110413624A (zh) * 2019-08-07 2019-11-05 南京录信软件技术有限公司 一种基于列存的多列联合存储的方法
CN111030757A (zh) * 2019-12-09 2020-04-17 明格(上海)信息技术有限公司 超声接收数据的处理方法、系统和计算机可读介质
CN114356226A (zh) * 2021-12-17 2022-04-15 广州文远知行科技有限公司 一种传感器数据存储方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140074805A1 (en) * 2009-04-30 2014-03-13 Oracle International Corportion Storing compression units in relational tables
CN104866497A (zh) * 2014-02-24 2015-08-26 华为技术有限公司 分布式文件系统列式存储的元数据更新方法、装置、主机

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140074805A1 (en) * 2009-04-30 2014-03-13 Oracle International Corportion Storing compression units in relational tables
CN104866497A (zh) * 2014-02-24 2015-08-26 华为技术有限公司 分布式文件系统列式存储的元数据更新方法、装置、主机

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
《DATA ENGINEERING (ICDE), 2011 IEEE 27TH INTERNATIONAL CONFERENCE ON》 *
《IEEE INTERNATIONAL CONFERENCE ON ADVANCES IN ENGINEERING & TECHNOLOGY RESEARCH (ICAETR-2014)》 *
《STORAGE NETWORK ARCHITECTURE AND PARALLEL I/OS (SNAPI), 2010 INTERNATIONAL WORKSHOP ON》 *
《THE 8TH INTERNATIONAL CONFERENCE ON COMPUTER SCIENCE & EDUCATION (ICCSE 2013)》 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108243207A (zh) * 2016-12-23 2018-07-03 航天星图科技(北京)有限公司 一种网络云盘的数据存储方法
CN108243207B (zh) * 2016-12-23 2019-03-15 中科星图股份有限公司 一种网络云盘的数据存储方法
CN108984103B (zh) * 2017-06-02 2021-06-22 伊姆西Ip控股有限责任公司 用于去重的方法和设备
CN108984103A (zh) * 2017-06-02 2018-12-11 伊姆西Ip控股有限责任公司 用于去重的方法和设备
US11461276B2 (en) 2017-06-02 2022-10-04 EMC IP Holding Company LLC Method and device for deduplication
CN107894875B (zh) * 2017-11-20 2020-12-04 深圳市德传技术有限公司 一种rtu数据存储方法
CN107894875A (zh) * 2017-11-20 2018-04-10 深圳市德传技术有限公司 一种rtu数据存储方法
CN109857814A (zh) * 2018-12-28 2019-06-07 北京东方国信科技股份有限公司 一种内存数据处理方法及存储介质
CN110007855B (zh) * 2019-02-28 2020-04-28 华中科技大学 一种硬件支持的3d堆叠nvm内存数据压缩方法及系统
CN110007855A (zh) * 2019-02-28 2019-07-12 华中科技大学 一种硬件支持的3d堆叠nvm内存数据压缩方法及系统
CN110413624A (zh) * 2019-08-07 2019-11-05 南京录信软件技术有限公司 一种基于列存的多列联合存储的方法
CN111030757A (zh) * 2019-12-09 2020-04-17 明格(上海)信息技术有限公司 超声接收数据的处理方法、系统和计算机可读介质
CN114356226A (zh) * 2021-12-17 2022-04-15 广州文远知行科技有限公司 一种传感器数据存储方法、装置、设备及存储介质
CN114356226B (zh) * 2021-12-17 2024-07-16 广州文远知行科技有限公司 一种传感器数据存储方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN105824574A (zh) 一种内存数据存储方法
US11132346B2 (en) Information processing method and apparatus
CN105117417B (zh) 一种读优化的内存数据库Trie树索引方法
CN102024047B (zh) 数据检索方法及装置
Fusco et al. Indexing million of packets per second using GPUs
CN104715039A (zh) 基于硬盘和内存的列式存储和查询方法及设备
CN104238962A (zh) 向缓存中写入数据的方法及装置
CN102682108A (zh) 一种行列混合的数据库存储方法
CN103500224B (zh) 一种数据写入方法及装置、数据读取方法及装置
CN103995855A (zh) 存储数据的方法和装置
CN104063384A (zh) 一种数据检索方法及装置
EP4418119A1 (en) Multi-data sending method, apparatus and device based on columnar data scanning, and multi-data receiving method, apparatus and device based on columnar data scanning
CN110413624A (zh) 一种基于列存的多列联合存储的方法
CN103914483A (zh) 文件存储方法、装置及文件读取方法、装置
CN102075430A (zh) 深度报文检测dfa状态转移表的压缩与报文匹配方法
CN116244313B (zh) Json数据存储和访问方法、装置、计算机设备及介质
WO2018232089A1 (en) Extent-based data location table management
CN107423425B (zh) 一种对k/v格式的数据快速存储和查询方法
CN103593447A (zh) 用于数据库表的数据处理方法和装置
CN104679507B (zh) NAND Flash编程器烧录映像文件的生成方法及装置
CN102156759B (zh) 二叉树并行查找方法和设备
CN111813709A (zh) 一种基于fpga存算一体架构的高速并行存储方法
CN105989124B (zh) Sqlite文件恢复自增主键值的方法及其系统
CN103036642A (zh) 一种数据的传输方法及发送端和接收端
CN103049387B (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