System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种泛矩阵数据文件结构及其索引方法技术_技高网

一种泛矩阵数据文件结构及其索引方法技术

技术编号:44879653 阅读:6 留言:0更新日期:2025-04-08 00:17
本发明专利技术公开了一种泛矩阵数据文件结构,由4个主要部分组成:元数据段、配置数据段、输入数据段和结果数据段。所述元数据段存储文件的元数据,包括其余三种数据段的索引;所述配置数据段包括配置段索引和配置数据,配置段索引用于存储每个配置数据的索引信息;所述输入数据段包括输入段索引和输入数据,输入段索引用于存储每个输入数据的索引信息;所述结果数据段包括结果段索引和结果数据,结果段索引用于存储每个结果数据的索引信息。本发明专利技术还公开了其索引方法,包括读写SDK识别元数据段、读取配置数据、读取输入数据、写入结果数据的步骤。本发明专利技术具有数据格式统一、数据存储多样性好、可随机读取数据、读取效率高、动态存储等优点。

【技术实现步骤摘要】

本专利技术涉及一种数据文件结构及索引方法,尤其涉及一种泛矩阵数据文件结构及其索引方法


技术介绍

1、在大规模并行计算场景中,传统的数据文件通常为几种:csv或excel格式、feather 格式、parquet 格式、数据库存储。

2、csv 或excel格式: csv是一种简单、通用的文本格式,易于人类阅读和编写,同时被广泛支持,兼容性好。二者的存储和读取速度相对较慢,尤其是处理大规模数据时效率较低。它不支持复杂的查询和分析操作,且没有内置的数据完整性检查机制。excel与之类似。

3、feather 格式:feather 是一种高效的二进制列存储格式,用于数据帧的存储与交换,支持快速读写,改善了数据集的读取速度,但缺乏多数据段和复杂数据结构的支持。

4、parquet 格式:parquet 是一个高效的列式存储格式,广泛用于hadoop生态系统,支持压缩和编码方案,以提高存储效率,但缺少在单一数据文件中存储多样化数据的支持。

5、数据库存储:数据库存储可以方便的支持多种类型数据的存储的读取,但一方面在矩阵类数据存储和读取效率上不如列存储,且数据交换、分发方面不具备数据文件的优势。

6、发动机健康状态监测分析场景是一种典型的大规模并行计算场景,其传感器采样数据主要为csv文件或excel文件。分析引擎在处理上述csv文件或excel文件等传统的数据文件时,面临极大挑战。以某机型为例,一个发动机并发数据有300多个通道即300多项并行数据。采样频率平均每秒40赫兹,就是说每秒产生40条、每条300列的数据,整个的试验周期大概两到四个小时,产生的数据文件少则2-3g、多则10g以上,并且是完整的一个csv文件。分析引擎的处理中,经常面临计算机内存不够用的难题。因为数据处理是按照逐个通道来处理的,即逐列处理。但是csv它本身是一个表格类型的数据,要处理这种数据就要把这个数据先全部读到计算机的内存,然后再找到待处理列,将其数据读出来,再交给算法执行,那这样的话就会导致分析引擎在处理发动机数据时,首先计算机配置要求很高,同时处理过程很不稳定,其它软件占用内存,就经常容易出现内存不足导致应用崩溃。

7、综上所述,传统的数据文件存储方式在存储数据时存在如下问题:

8、1、数据格式不统一:传统数据存储文件(例如 excel、csv 等)多以非结构化方式存储数据,写入和读取均需要进行编解码及数据格式转换;本专利通过标准结构化存储规范,为不同类型数据提供数据存储标准,以满足数据在各个系统之间统一交换;

9、2、数据存储多样性:传统数据存储文件一般只能存储单一结构数据,对于多种数据类型数据往往需要引入不同存储格式的多种文件,带来文件管理的复杂性;本专利支持在一个文件中同时存储数组、字符串、json、xml、矩阵等多种数据格式,即可在一个数据文件中管理整个业务所需的全部数据;

10、3、无法随机读取数据:传统数据存储文件需要一次性读取到计算机内存中,才能进一步读取指定数据,无法直接从文件的指定位置提取数据片段;本专利通过引入多层次索引结构,为数据文件提供了可逐层检索的能力,可精确定位要读取数据的位置,达到对存储数据的随机读取目的;

11、4、读取效率低下:对于一个二维矩阵数据,传统数据存储文件多以行方式进行顺序存储,在需要按列读取或同时按行列读取的情况下,需要遍历数据文件,读取效率低下;本专利通过多级索引,优化了

12、5、非动态存储:传统数据存储文件在存储数据时一般为静态存储,无法不改动文件其余部分的情况下只修改部分数据内容,必须将数据读取到内存并进行修改后一次性写回文件,导致效率低下。


技术实现思路

1、本专利技术旨在提供一种数据格式统一、数据存储多样性好、可随机读取数据、读取效率高、动态存储、安全性隐私性更好的泛矩阵数据文件结构及其索引方法。

2、为了实现上述目的,本专利技术采用以下技术方案:一种泛矩阵数据文件结构,由4个主要部分组成:元数据段、配置数据段、输入数据段和结果数据段;所述元数据段存储文件的元数据,包括其余三种数据段的索引;所述配置数据段包括配置段索引和配置数据,配置段索引用于存储配置数据信息中每个配置数据的索引信息;所述输入数据段包括输入段索引和输入数据,输入段索引用于存储输入数据信息中每个输入数据的索引信息;所述结果数据段包括结果段索引和结果数据,结果段索引用于存储结果数据信息中每个结果数据的索引信息。

3、进一步的,所述三种数据段的数据信息均基于列存储方式存储,通过索引可以访问一项、一列、一行、多列、多行等不同粒度的数据。

4、进一步的,所述元数据段还包括版本号、创建时间和更新时间。

5、进一步的,所述三种数据段的索引信息均包括索引类型、数据名称、数据类型、起始位置和数据长度。

6、进一步的,所述结果数据段具备动态特性。

7、进一步的,所述输入数据和所述结果数据均支持多种数据格式,包括字符串、json、xml、数组和矩阵。

8、进一步的,字符串存储格式为偏移量索引加数据内容,支持长字符串和短字符串的存储。

9、进一步的,数组存储结构支持字符串型或数值型的单一类型的数据存储,其中字符串数组为索引和内容分离存储。

10、进一步的,矩阵存储结构包括一个索引和若干数据列,其中索引项包含列名、列类型和数据列的位置信息。

11、上述的泛矩阵数据文件结构的索引方法,包括以下步骤:

12、s1. 软件系统发出索引指令给所述泛矩阵数据文件结构配套的专用读写sdk;专用读写sdk识别元数据段中的版本号是否为目标版本,如数据段中的版本号高于目标版本(sdk可处理的版本),则报告错误,停止处理;sdk可从数据段中获取文件的创建时间和上次修改时间,用于软件系统确认文件内容是否在有效期内;

13、s2. 软件系统向sdk发出读取配置数据指令,sdk根据元数据段的索引找到配置数据段,并根据配置名称找到对应的配置项索引,根据索引信息读取指定的配置数据信息返回给软件系统;软件根据配置信息查找到对应输入数据的数据块名称,以及所需的数据列名称(如果需要);

14、s3. 软件系统向sdk发出读取输入数据指令,sdk 根据元数据段的索引找到输入数据段,并根据数据块名称找到对应的数据块,根据数据块类型进行如下操作:

15、s3-1. 如果数据块是字符串或数组,则sdk向软件返回字符串或数组全部内容;对于字符串,则可以根据软件系统的指令参数要求,进一步转换为xml,json等结构对象;

16、s3-2.当 sdk 发现存储的字符串是 json 或 xml 格式时,会将字符串进行解码操作,直接返回其表示的结构化数据对象,供调用方使用;

17、s3-3. 如果数据块是矩阵结构(csv),则sdk向软件返回整个矩阵结构的全部内容,或者根据软件系统的本文档来自技高网...

【技术保护点】

1.一种泛矩阵数据文件结构,其特征在于,由 4 个主要部分组成:元数据段、配置数据段、输入数据段和结果数据段;

2.如权利要求1所述的一种泛矩阵数据文件结构,其特征在于,所述三种数据段的数据信息均基于列存储方式存储,通过索引可以访问一项、一列、一行、多列、多行等不同粒度的数据。

3.如权利要求2所述的一种泛矩阵数据文件结构,所述元数据段还包括版本号、创建时间和更新时间。

4.如权利要求3所述的一种泛矩阵数据文件结构,其特征在于,所述三种数据段的索引信息均包括索引类型、数据名称、数据类型、起始位置和数据长度。

5.如权利要求4所述的一种泛矩阵数据文件结构,其特征在于,所述结果数据段具备动态特性。

6.如权利要求1至5任一项所述的一种泛矩阵数据文件结构,其特征在于,所述输入数据和所述结果数据均支持多种数据格式,包括字符串、JSON、XML、数组和矩阵。

7.如权利要求6所述的一种泛矩阵数据文件结构,其特征在于,字符串存储格式为偏移量索引加数据内容,支持长字符串和短字符串的存储。

8.如权利要求6所述的一种泛矩阵数据文件结构,其特征在于,数组存储结构支持字符串型或数值型的单一类型的数据存储,其中字符串数组为索引和内容分离存储。

9.如权利要求6所述的一种泛矩阵数据文件结构,其特征在于,矩阵存储结构包括一个索引和若干数据列,其中索引项包含列名、列类型和数据列的位置信息。

10.一种如权利要求6所述的泛矩阵数据文件结构的索引方法,其特征在于,包括以下步骤:

...

【技术特征摘要】

1.一种泛矩阵数据文件结构,其特征在于,由 4 个主要部分组成:元数据段、配置数据段、输入数据段和结果数据段;

2.如权利要求1所述的一种泛矩阵数据文件结构,其特征在于,所述三种数据段的数据信息均基于列存储方式存储,通过索引可以访问一项、一列、一行、多列、多行等不同粒度的数据。

3.如权利要求2所述的一种泛矩阵数据文件结构,所述元数据段还包括版本号、创建时间和更新时间。

4.如权利要求3所述的一种泛矩阵数据文件结构,其特征在于,所述三种数据段的索引信息均包括索引类型、数据名称、数据类型、起始位置和数据长度。

5.如权利要求4所述的一种泛矩阵数据文件结构,其特征在于,所述结果数据段具备动态特性。

6.如权利要求1至5任一项...

【专利技术属性】
技术研发人员:瞿昊
申请(专利权)人:上海涵鲲科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1