CN111475473A - 一种基于文件系统的流式动态数据存储方法及系统 - Google Patents
一种基于文件系统的流式动态数据存储方法及系统 Download PDFInfo
- Publication number
- CN111475473A CN111475473A CN202010291464.8A CN202010291464A CN111475473A CN 111475473 A CN111475473 A CN 111475473A CN 202010291464 A CN202010291464 A CN 202010291464A CN 111475473 A CN111475473 A CN 111475473A
- Authority
- CN
- China
- Prior art keywords
- data
- file
- paging
- page
- data storage
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
Abstract
本发明公开了一种基于文件系统的流式动态数据存储方法及系统,所述方法包括:S1,获取待写入的数据;S2,将所述待写入的数据按照表进行分组;S3,确定各个表所需的分页容量,创建对应的分页;S4,将所述数据按照分页指向的数据文件位置对应写入记录内容。实现物联网大并发的数据存储需求,提高检索性能。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种基于文件系统的流式动态数据存储方法及系统。
背景技术
随着物联网产业的发展和5G通讯技术的普及,末端传感器的数据采集能力趋于成熟,以车载终端为例,每5秒采集一次的车身状态数据大约70字节,如:经纬度,发动机转速,电压,电流,刹车状态等,10万辆车并发在线的车辆每天产生的数据量约110GB,传统关系型数据库面向关系的设计在面对如此大量的数据时显得无能为力。
现有的数据库存储系统是将数据分块按顺序存储在一个文件中,然后采用BTree等建立存储索引,在查询时先根据索引检索符合条件的数据指针,最后根据索引的数据指针读取数据;而物联网的数据特点是定时上报,当大量设备并发上报数据时会造成某个设备的数据平均分布在数据文件的各个位置,当需要查询时会造成磁盘寻道时间,大大影响查询性能,而随着时间增长,索引文件的长度超过极限时也将造成索引无法全部加载到内存高校检索,从而再次降低检索性能。
发明内容
本发明所要解决的技术问题是针对上述现有技术的不足提供一种基于文件系统的流式动态数据存储方法及系统,从而实现物联网大并发的数据存储需求,提高检索性能。
为实现上述目的,本发明提供一种基于文件系统的流式动态数据存储方法,包括:
S1,获取待写入的数据;
S2,将所述待写入的数据按照表进行分组;
S3,确定各个表所需的分页容量,创建对应的分页;
S4,将所述数据按照分页指向的数据文件位置对应写入记录内容。
优选的,在步骤S2中,根据一个设备的数据建立一张表进行分组。
优选的,在步骤S4中,每个分页对应指向数据文件的一个数据块,根据分页指示的数据文件位置确定分页头,确定当前写入的位置。
优选的,所述表存储设备的基本属性字段,至少包括设备唯一标识、设备号、当前分页字段。
优选的,所述分页存储分页的基本属性字段,至少包括设备唯一标识、数据文件位置、当前写入位置、字段。
为实现上述目的,本发明还提供一种基于文件系统的流式动态数据存储系统,包括:
索引文件模块,用于索引数据的存储位置;至少包括表信息以及分页信息;其中,所述表信息为根据一个设备的数据建立一张表;所述分页信息为根据各个表所需的分页容量,创建对应的分页;
数据文件模块,用于存储数据的记录内容;根据所述索引文件模块建立的索引,构建指向所述数据文件模块对应的数据块进行存储记录内容。
优选的,所述表存储设备的基本属性字段,至少包括设备唯一标识、设备号、当前分页字段。
优选的,所述分页存储分页的基本属性字段,至少包括设备唯一标识、数据文件位置、当前写入位置字段。
有益效果:
1、本发明提出的方案不用依赖专业的存储设备即可满足物联网大并发的数据存储需求。
2、在同等的硬件条件下,性能比传统的数据库引擎更优。
3、因为不依赖第三方技术,在使用的过程中更简洁,可以降低安装维护成本。
4、突破物联网领域动态数据存储的瓶颈,降低物联网业务应用的项目建设难度。
5、降低物联网行业的数据存储成本。
附图说明
图1为本发明一实施例提供的一种基于文件系统的流式动态数据存储方法的流程图。
图2为本发明一实施例提供的一种基于文件系统的流式动态数据存储系统的结构示意图。
图3为本发明一实施例提供的索引文件模块存储的结构层次示意图。
图4为本发明一实施例提供的数据文件模块存储的结构层次示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下结合实施例详细阐述本发明的内容。
参照图1所示,为本发明一实施例提供的一种基于文件系统的流式动态数据存储方法的流程图。具体为:
一种基于文件系统的流式动态数据存储方法,包括:
S1,获取待写入的数据;
S2,将所述待写入的数据按照表进行分组;
S3,确定各个表所需的分页容量,创建对应的分页;
S4,将所述数据按照分页指向的数据文件位置对应写入记录内容。
优选的,在步骤S2中,根据一个设备的数据建立一张表进行分组。
优选的,在步骤S4中,每个分页对应指向数据文件的一个数据块,根据分页指示的数据文件位置确定分页头,确定当前写入的位置。
因为物联网行业中设备量大,在本实施例中,按照一个设备一张表的方式存储,这在传统数据库中是无法实现的。本方案与传统的BTree索引不同,本发明的方案可使数据写入和查询更高效。
优选的,所述表存储设备的基本属性字段,至少包括设备唯一标识、设备号、当前分页、最后一次写入时间、循环写入标识等字段。
优选的,所述分页存储分页的基本属性字段,至少包括设备唯一标识、数据文件位置、当前写入位置、分页大小、开始记录ID、结束记录ID、记录书等字段。
在本实施例中,对数据实现查询为:首先根据索引找到数据存储的位置,再从数据文件中调取数据。即,根据设备号找到索引文件的表信息中设备号字段(Device),根据在该表信息的当前分页字段(CurPage)找到对应的分页信息,根据分页信息中的数据文件位置字段(DataPosition)确定写入的具体位置,从而读取数据文件中对应的数据记录内容。
参照图2所示,为本发明一实施例提供的一种基于文件系统的流式动态数据存储系统的结构示意图,包括:
索引文件模块,用于索引数据的存储位置;至少包括表信息以及分页信息;其中,所述表信息为根据一个设备的数据建立一张表;所述分页信息为根据各个表所需的分页容量,创建对应的分页;
优选的,所述表存储设备的基本属性字段,至少包括设备唯一标识、设备号、当前分页字段。
现有的技术通过建立BTree,在满足数据可插入的同时牺牲了写入性能,而在物联网行业中的数据99%都是追加而不需要进行插入操作,本发明的方案主要是根据这个特点重新设计索引结构,在满足数据可查询的前提下最大化地提高数据追加性能。
在本实施例中,对数据实现查询为:首先根据索引找到数据存储的位置,再从数据文件中调取数据。即,根据设备号找到索引文件的表信息中设备号字段(Device),根据在该表信息的当前分页字段(CurPage)找到对应的分页信息,根据分页信息中的数据文件位置字段(DataPosition)确定写入的具体位置,从而读取数据文件中对应的数据记录内容。
参照图3所示,为本发明一实施例提供的索引文件模块存储的结构层次示意图。
索引文件模块主要用于存储数据库描述信息、表信息、分页信息,在存储数据时,我们为每个设备建立一张表,索引文件存储了表的基础信息,包含如下:
表信息也就是设备信息(device):用于存储设备的一些基本属性,其中具有设备号(devicenum)、唯一标识(DeviceId)、最后一次写入时间(lastTime)、循环写入标识(isLooped)、当前分页(CurPage);
分页信息(page):用于存储分页的基础属性,其中具有设备唯一标识(DeviceId)、数据文件位置(DataPosition)、分页大小(pageSize)、当前写入位置(CurPosition)、开始记录Id(StartRowId)、结束记录Id(EndRowId)、记录书(Count)。
参照图4所示,为本发明一实施例提供的数据文件模块存储的结构层次示意图。
数据文件模块,用于存储数据的记录内容;根据所述索引文件模块建立的索引,构建指向所述数据文件模块对应的数据块进行存储记录内容。
优选的,所述分页存储分页的基本属性字段,至少包括设备唯一标识、数据文件位置、当前写入位置字段。
数据文件模块存储的是实际的数据内容,按块分割,每一块仅属于一个表,在索引文件中的一个分页信息指向了数据文件中的一个块,根据索引文件的分页信息的DataPosition指示的位置确定分页头,根据分页信息中的CurPosition确定当前写入的具体位置,每个数据块中包含如下信息:设备唯一标识(DeviceId)、记录Id(RowId)、记录长度(RowLen)、数据内容(RowData)。
有益效果:1、本发明提出的方案不用依赖专业的存储设备即可满足物联网大并发的数据存储需求。
2、在同等的硬件条件下,性能比传统的数据库引擎更优。
3、因为不依赖第三方技术,在使用的过程中更简洁,可以降低安装维护成本。
4、突破物联网领域动态数据存储的瓶颈,降低物联网业务应用的项目建设难度。
5、降低物联网行业的数据存储成本。
上述实施例中的实施方案可以进一步组合或者替换,且实施例仅仅是对本发明的优选实施例进行描述,并非对本发明的构思和范围进行限定,在不脱离本发明设计思想的前提下,本领域中专业技术人员对本发明的技术方案作出的各种变化和改进,均属于本发明的保护范围。
Claims (8)
1.一种基于文件系统的流式动态数据存储方法,其特征在于,包括:
S1,获取待写入的数据;
S2,将所述待写入的数据按照表进行分组;
S3,确定各个表所需的分页容量,创建对应的分页;
S4,将所述数据按照分页指向的数据文件位置对应写入记录内容。
2.根据权利要求1所述的一种基于文件系统的流式动态数据存储方法,其特征在于,在步骤S2中,根据一个设备的数据建立一张表进行分组。
3.根据权利要求1所述的一种基于文件系统的流式动态数据存储方法,其特征在于,在步骤S4中,每个分页对应指向数据文件的一个数据块,根据分页指示的数据文件位置确定分页头,确定当前写入的位置。
4.根据权利要求2所述的一种基于文件系统的流式动态数据存储方法,其特征在于,所述表存储设备的基本属性字段,至少包括设备唯一标识、设备号、当前分页。
5.根据权利要求3所述的一种基于文件系统的流式动态数据存储方法,其特征在于,所述分页存储分页的基本属性字段,至少包括设备唯一标识、数据文件位置、当前写入位置。
6.一种基于文件系统的流式动态数据存储系统,其特征在于,包括:
索引文件模块,用于索引数据的存储位置;至少包括表信息以及分页信息;其中,所述表信息为根据一个设备的数据建立一张表;所述分页信息为根据各个表所需的分页容量,创建对应的分页;
数据文件模块,用于存储数据的记录内容;根据所述索引文件模块建立的索引,构建指向所述数据文件模块对应的数据块进行存储记录内容。
7.根据权利要求6所述的一种基于文件系统的流式动态数据存储系统,其特征在于,所述表存储设备的基本属性字段,至少包括设备唯一标识、设备号、当前分页。
8.根据权利要求6所述的一种基于文件系统的流式动态数据存储系统,其特征在于,所述分页存储分页的基本属性字段,至少包括设备唯一标识、数据文件位置、当前写入位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010291464.8A CN111475473A (zh) | 2020-04-14 | 2020-04-14 | 一种基于文件系统的流式动态数据存储方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010291464.8A CN111475473A (zh) | 2020-04-14 | 2020-04-14 | 一种基于文件系统的流式动态数据存储方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111475473A true CN111475473A (zh) | 2020-07-31 |
Family
ID=71751961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010291464.8A Pending CN111475473A (zh) | 2020-04-14 | 2020-04-14 | 一种基于文件系统的流式动态数据存储方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111475473A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101819602A (zh) * | 2010-05-07 | 2010-09-01 | 北京飞天诚信科技有限公司 | 一种数据文件引擎的实现方法 |
CN103617277A (zh) * | 2013-12-09 | 2014-03-05 | 山东瀚高基础软件股份有限公司 | 一种还原误删除的数据表内容的方法 |
CN104978361A (zh) * | 2014-04-11 | 2015-10-14 | 深圳中兴力维技术有限公司 | 动力环境实时监控数据存储方法及装置 |
US20160147904A1 (en) * | 2014-11-25 | 2016-05-26 | David Wein | Fast row to page lookup of data table using capacity index |
CN110825742A (zh) * | 2019-10-31 | 2020-02-21 | 北京东方通科技股份有限公司 | 一种数据分页检索的方法、装置、电子设备及存储介质 |
-
2020
- 2020-04-14 CN CN202010291464.8A patent/CN111475473A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101819602A (zh) * | 2010-05-07 | 2010-09-01 | 北京飞天诚信科技有限公司 | 一种数据文件引擎的实现方法 |
CN103617277A (zh) * | 2013-12-09 | 2014-03-05 | 山东瀚高基础软件股份有限公司 | 一种还原误删除的数据表内容的方法 |
CN104978361A (zh) * | 2014-04-11 | 2015-10-14 | 深圳中兴力维技术有限公司 | 动力环境实时监控数据存储方法及装置 |
US20160147904A1 (en) * | 2014-11-25 | 2016-05-26 | David Wein | Fast row to page lookup of data table using capacity index |
CN110825742A (zh) * | 2019-10-31 | 2020-02-21 | 北京东方通科技股份有限公司 | 一种数据分页检索的方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110149803B (zh) | 数据存储方法、系统及终端设备 | |
CN104346357B (zh) | 一种嵌入式终端的文件存取方法及系统 | |
CN104462141A (zh) | 一种数据存储与查询的方法、系统及存储引擎装置 | |
CN107045531A (zh) | 一种优化hdfs小文件存取的系统及方法 | |
CN101901248A (zh) | 一种布隆过滤器的生成、更新以及查询元素方法和装置 | |
CN107741947B (zh) | 基于hdfs文件系统的随机数密钥的存储与获取方法 | |
CN103744913A (zh) | 一种基于搜索引擎技术的数据库检索方法 | |
CN102129435A (zh) | 数据存储业务控制方法及系统 | |
CN105138282A (zh) | 一种存储空间回收的方法及存储系统 | |
CN105718218A (zh) | 一种适用于电能表或集中器负荷记录的压缩存储方法及系统 | |
CN111639072A (zh) | 一种车联网场景下的数据存储方法及系统、可读存储介质 | |
CN106528649A (zh) | 一种新能源汽车的海量数据存储检索系统和方法 | |
CN103383690A (zh) | 分布式数据存储方法及系统 | |
CN116257523A (zh) | 一种基于非易失存储器的列式存储索引方法及装置 | |
CN104714898B (zh) | 一种Cache的分配方法和装置 | |
CN116756253B (zh) | 关系型数据库的数据存储、查询方法、装置、设备和介质 | |
CN111475473A (zh) | 一种基于文件系统的流式动态数据存储方法及系统 | |
CN113190180A (zh) | 一种基于混合介质的存储装置及分布式存储系统 | |
CN109521954B (zh) | 一种配网ftu定点文件管理方法及装置 | |
CN102902731B (zh) | 邮件索引的存储方法 | |
CN106909623A (zh) | 一种支持高效海量数据分析和检索的数据装置及数据存储方法 | |
CN115129244B (zh) | 基于flash芯片的电池管理系统数据存储管理方法 | |
CN109213760A (zh) | 非关系数据存储的高负载业务存储及检索方法 | |
CN112069172B (zh) | 一种电网数据处理方法及装置、电子设备及存储介质 | |
CN111767436A (zh) | 一种hash索引数据的存储、读取方法与系统 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 350000 Floor 15-16 of Technology Transfer Center Building of Strait No. 611 Industrial Road, Gulou District, Fuzhou City, Fujian Province Applicant after: Fuxin Futong Technology Co.,Ltd. Address before: 350002 15-16 / F, Strait technology transfer center, 611 Gongye Road, Gulou District, Fuzhou City, Fujian Province Applicant before: FUJIAN FORTUNETONE NETWORK TECHNOLOGY Co.,Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200731 |