CN116521063B - 一种hdf5的试验数据高效读写方法及装置 - Google Patents
一种hdf5的试验数据高效读写方法及装置 Download PDFInfo
- Publication number
- CN116521063B CN116521063B CN202310336301.0A CN202310336301A CN116521063B CN 116521063 B CN116521063 B CN 116521063B CN 202310336301 A CN202310336301 A CN 202310336301A CN 116521063 B CN116521063 B CN 116521063B
- Authority
- CN
- China
- Prior art keywords
- data
- hdf5
- library
- format
- test data
- 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.)
- Active
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 245
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000007906 compression Methods 0.000 claims abstract description 121
- 230000006835 compression Effects 0.000 claims abstract description 121
- 238000013144 data compression Methods 0.000 claims abstract description 112
- 238000013500 data storage Methods 0.000 claims description 67
- 239000011159 matrix material Substances 0.000 claims description 42
- 239000000969 carrier Substances 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 10
- 238000007726 management method Methods 0.000 description 10
- 238000011160 research Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 8
- 238000013523 data management Methods 0.000 description 8
- 238000007667 floating Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000013135 deep learning Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 238000007405 data analysis Methods 0.000 description 2
- 238000013499 data model Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- VKWMGUNWDFIWNW-UHFFFAOYSA-N 2-chloro-1,1-dioxo-1,2-benzothiazol-3-one Chemical compound C1=CC=C2S(=O)(=O)N(Cl)C(=O)C2=C1 VKWMGUNWDFIWNW-UHFFFAOYSA-N 0.000 description 1
- 238000005481 NMR spectroscopy Methods 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000011068 loading method Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000001556 precipitation Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 102000004169 proteins and genes Human genes 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000000547 structure data Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明公开了一种HDF5的试验数据高效读写方法及装置,该方法包括:获取与试验数据相关的数据源,解析数据源的格式,并利用对应的API接口创建试验数据;根据试验数据的类型,从HDF5库提供的多种数据压缩算法和存储格式中选择目标压缩算法和目标存储格式,并利用目标压缩算法和目标存储格式将试验数据存储至HDF5库;当需要读取试验数据时,从HDF5库中获取对应的试验数据文件,根据试验数据文件的版本信息,确定试验数据文件的压缩算法和存储格式,利用对应的压缩算法和存储格式,对试验数据文件进行解析,生成相应的试验数据。
Description
技术领域
本发明涉及数据读写技术领域,并且更具体地,涉及一种HDF5的试验数据高效读写方法及装置。
背景技术
HDF5(HierarchicalDataFormatversion5)是一种用于存储和处理大规模科学数据的文件格式和库。它是一种开放源代码的技术,由美国国家超级计算应用中心(NCSA)开发和维护。HDF5旨在为科学研究人员提供一种高效、灵活、可扩展的数据存储格式和工具。
HDF5的技术背景和研发背景主要来自于两个方面。一方面,科学研究需要处理越来越大的数据集,这些数据集需要高效地存储和处理。传统的文件格式,如文本文件和二进制文件,无法满足这些要求。因此,需要一种新的、更高效的数据格式和库来处理大规模的科学数据。另一方面,科学数据通常具有多层次的结构,如实验数据的层次结构和元数据。因此,需要一种可以处理这些复杂数据结构的格式和库。
HDF5试验数据读写的研究背景可以追溯到科学和工程领域中需要处理和存储越来越大、越来越复杂的数据集的需求。传统的数据管理方法往往无法满足这些需求,例如使用简单的文本格式或二进制格式存储数据,会导致数据访问和处理效率低下,难以处理大量数据和多维数据。而且,随着科学和工程领域中实验设备和计算机技术的快速发展,数据量和复杂性都在不断增加,因此需要一种更高效、更可扩展、更灵活的数据管理和处理解决方案。HDF5作为一种先进的数据管理格式和库,具有多种高级特性,如多维数组、压缩、加密、并行访问等,能够满足科学和工程领域中大规模、高维度、多类型数据管理的需求。因此,越来越多的科学家和工程师开始使用HDF5来存储和管理试验数据,例如在物理、天文学、生物学、气象学、地球科学等领域。
随着HDF5的不断发展和更新,越来越多的功能和特性被添加到HDF5库中,例如过滤器、对象存储、元数据管理等,这使得HDF5在更多的领域得到了广泛应用,例如机器学习、深度学习等大规模数据处理任务。因此,HDF5试验数据读写的研究背景主要是在面对越来越复杂和庞大的数据集时,需要一种高效、可扩展、可移植、灵活且易于使用的数据管理解决方案。
HDF5的主要设计目标是提供一种高效、可扩展、可移植、灵活且易于使用的数据管理解决方案。它采用层次结构,可在同一文件中组织多个数据集、元数据和属性,支持多种数据类型、压缩、加密和并行访问等高级特性。这些特性使得HDF5成为科学、工程、计算机视觉、机器学习等领域的重要数据格式之一。在HDF5中,数据集可以是多维数组、表格、图像、音频、视频等类型的数据,也可以是更复杂的对象或结构。用户可以使用HDF5的API或其他工具读取和写入HDF5文件中的数据,同时还可以使用HDF5的查询和过滤功能来操作数据。在科学和工程领域,HDF5通常用于存储和共享试验数据、仿真结果、天气数据、地球观测数据、生物医学数据等,以及用于机器学习、深度学习等大规模数据处理任务。HDF5的性能和可扩展性使得它在这些应用中得到了广泛的应用。
目前,HDF5被广泛应用于各种领域的科学研究和工程应用中。例如,HDF5用于存储气象数据、卫星图像数据、医学图像数据、生物信息学数据等。除了存储数据之外,HDF5还提供了一些工具和方法来处理数据,如数据压缩、数据筛选、数据分析等。
HDF5的重要性在于它能够提供高效、灵活、可扩展的数据存储和处理方法,能够满足现代科学研究对大规模数据处理的需求。它还能够处理复杂的数据结构和元数据,为数据分析和挖掘提供了更多的可能性。此外,HDF5是一种开放源代码技术,可以免费使用和修改,这为科学研究和工程应用提供了便利。下面举几个例子说明其重要性:
(1)天气预报:气象学家需要收集大量的气象数据,如气温、湿度、降水等。这些数据通常是多维数组或时间序列数据。使用HDF5可以将这些数据存储在同一个文件中,便于管理和共享,而且HDF5库的高效性能可以支持大量的数据处理和分析。
(2)生物医学研究:生物学家和医学研究人员需要存储和处理各种类型的生物数据,如基因组序列、蛋白质结构、医学图像等。使用HDF5可以轻松地组织和存储这些数据,而且HDF5库提供了多种数据类型和压缩方法,可以节省存储空间和提高数据传输速度。
(3)大型实验设备:物理学家和化学家经常使用大型实验设备进行实验研究,如粒子对撞机、核磁共振仪等。这些设备产生的数据通常是大规模、高维度的数据集。使用HDF5可以有效地存储和管理这些数据,而且HDF5库支持并行访问,可以加快数据访问和处理速度。
(4)机器学习和深度学习:在机器学习和深度学习任务中,需要处理大量的数据,如图像、音频、文本等。使用HDF5可以存储这些数据,而且HDF5库提供了多种数据类型和压缩方法,可以减少存储空间和提高数据传输速度。此外,HDF5库还支持多种并行访问和数据过滤器,可以加快数据处理速度。
总之,HDF5试验数据读写在科学和工程领域中具有广泛的应用和重要性,它可以提高数据处理和管理效率,加快科学研究进程,促进数据共享和合作。
虽然HDF5试验数据读写技术具有很多优点,但也存在一些不足之处,主要包括以下几个方面:
(1)学习和使用门槛高:HDF5作为一种高级的数据管理格式和库,需要掌握一定的技术和知识才能使用它进行数据读写和管理。对于初学者和非计算机专业的科学家和工程师来说,学习和使用门槛可能较高,需要花费一定的时间和精力。
(2)兼容性和移植性不足:HDF5库的不同版本之间存在兼容性问题,使用不同版本的HDF5库读写同一个文件可能会出现问题。此外,HDF5库在不同的操作系统和计算机体系结构上的移植性也存在一定的问题,这可能会影响文件的可移植性和数据的交换和共享。
(3)性能问题:虽然HDF5库具有高效的数据访问和处理能力,但在处理大型数据集时,可能会遇到性能问题。例如,HDF5库的压缩和解压缩过程可能会消耗大量的CPU时间,而且HDF5库在多线程和分布式计算环境中的性能可能不够理想。
(4)数据安全性和可靠性问题:HDF5库虽然提供了一些数据安全和可靠性保护机制,如加密、校验和、错误恢复等,但这些机制可能并不够完善,不能完全保障数据的安全和可靠性。
综上所述,HDF5试验数据读写技术虽然具有很多优点,但也存在不足之处。对于需要使用HDF5进行数据管理和处理的科学家和工程师来说,需要充分了解HDF5库的优缺点,针对实际需求选择合适的解决方案。
发明内容
为了解决上述背景技术所述的至少一个问题,本发明提供一种HDF5的试验数据高效读写方法及装置。
根据本发明的一个方面,提供了一种HDF5的试验数据高效读写方法,包括:
获取与试验数据相关的数据源,解析数据源的格式,并利用对应的API接口创建试验数据;
根据试验数据的类型,从HDF5库提供的多种数据压缩算法和存储格式中选择目标压缩算法和目标存储格式,并利用目标压缩算法和目标存储格式将试验数据存储至HDF5库;
当需要读取试验数据时,从HDF5库中获取对应的试验数据文件,根据试验数据文件的版本信息,确定试验数据文件的压缩算法和存储格式,利用对应的压缩算法和存储格式,对试验数据文件进行解析,生成相应的试验数据。
可选地,所述获取与试验数据相关的数据源,解析数据源的格式,并利用对应的API接口创建试验数据,包括:
根据与试验数据相关的数据源的格式,从试验数据分析软件提供的多个插件中选择目标插件,其中试验数据分析软件为每种格式的数据源创建一个对应的插件;
调用目标插件获取与试验数据相关的数据源,并解析数据源的格式;
在解析完成数据源的格式后,利用数据层提供的API接口创建试验数据。
可选地,所述根据试验数据的类型,从HDF5库提供的多种数据压缩算法和存储格式中选择目标压缩算法和目标存储格式,并利用目标压缩算法和目标存储格式将试验数据存储至HDF5库,包括:
当试验数据的类型为通道数据时,根据压缩需求,从HDF5库提供的多种数据压缩算法中选择对应压缩等级的通道数据压缩算法;
从HDF5库提供的多种存储格式中选择通道数据存储格式;
利用通道数据压缩算法和通道数据存储格式,将通道数据存储至HDF5库。
可选地,所述根据试验数据的类型,从HDF5库提供的多种数据压缩算法和存储格式中选择目标压缩算法和目标存储格式,并利用目标压缩算法和目标存储格式将试验数据存储至HDF5库,包括:
当试验数据的类型为图像数据时,根据压缩需求,从HDF5库提供的多种数据压缩算法中选择对应压缩等级的图像数据压缩算法;
从HDF5库提供的多种存储格式中选择图像数据存储格式;
利用图像数据压缩算法和图像数据存储格式,将图像数据存储至HDF5库。
可选地,所述根据试验数据的类型,从HDF5库提供的多种数据压缩算法和存储格式中选择目标压缩算法和目标存储格式,并利用目标压缩算法和目标存储格式将试验数据存储至HDF5库,包括:
当试验数据的类型为二进制数据时,根据压缩需求,从HDF5库提供的多种数据压缩算法中选择对应压缩等级的二进制数据压缩算法;
从HDF5库提供的多种存储格式中选择二进制数据存储格式;
利用二进制数据压缩算法和二进制数据存储格式,将二进制数据存储至HDF5库。
可选地,所述根据试验数据的类型,从HDF5库提供的多种数据压缩算法和存储格式中选择目标压缩算法和目标存储格式,并利用目标压缩算法和目标存储格式将试验数据存储至HDF5库,包括:
当试验数据的类型为表数据时,根据压缩需求,从HDF5库提供的多种数据压缩算法中选择对应压缩等级的表数据压缩算法;
从HDF5库提供的多种存储格式中选择表数据存储格式;
利用表数据压缩算法和表数据存储格式,将表数据存储至HDF5库。
可选地,所述根据试验数据的类型,从HDF5库提供的多种数据压缩算法和存储格式中选择目标压缩算法和目标存储格式,并利用目标压缩算法和目标存储格式将试验数据存储至HDF5库,包括:
当试验数据的类型为矩阵数据时,根据压缩需求,从HDF5库提供的多种数据压缩算法中选择对应压缩等级的矩阵数据压缩算法;
从HDF5库提供的多种存储格式中选择矩阵数据存储格式;
利用矩阵数据压缩算法和矩阵数据存储格式,将矩阵数据存储至HDF5库。
可选地,所述根据试验数据的类型,从HDF5库提供的多种数据压缩算法和存储格式中选择目标压缩算法和目标存储格式,并利用目标压缩算法和目标存储格式将试验数据存储至HDF5库,包括:
当试验数据的类型为文本数据时,根据压缩需求,从HDF5库提供的多种数据压缩算法中选择对应压缩等级的文本数据压缩算法;
从HDF5库提供的多种存储格式中选择文本数据存储格式;
利用文本数据压缩算法和文本数据存储格式,将文本数据存储至HDF5库。
可选地,所述根据试验数据的类型,从HDF5库提供的多种数据压缩算法和存储格式中选择目标压缩算法和目标存储格式,并利用目标压缩算法和目标存储格式将试验数据存储至HDF5库,包括:
当试验数据的类型为视频数据时,根据压缩需求,从HDF5库提供的多种数据压缩算法中选择对应压缩等级的视频数据压缩算法;
从HDF5库提供的多种存储格式中选择视频数据存储格式;
利用视频数据压缩算法和视频数据存储格式,将视频数据存储至HDF5库。
可选地,HDF5的试验数据高效读写方法还包括:
当需要传输和交换HDF5库中存储的试验数据文件时,计算试验数据文件的第一MD5值,并将第一MD5值和试验数据文件同时保存、传输和分发;
当接收到试验数据文件时,计算试验数据文件的第二MD5值,将第二MD5值与第一MD5值进行比较,并根据比较的结果判断试验数据文件是否损坏。
根据本发明的又一个方面,提供了一种HDF5的试验数据高效读写装置,包括:
试验数据生成模块,用于获取与试验数据相关的数据源,解析数据源的格式,并利用对应的API接口创建试验数据;
试验数据存储模块,用于根据试验数据的类型,从HDF5库提供的多种数据压缩算法和存储格式中选择目标压缩算法和目标存储格式,并利用目标压缩算法和目标存储格式将试验数据存储至HDF5库:
试验数据读取模块,用于当需要读取试验数据时,从HDF5库中获取对应的试验数据文件,根据试验数据文件的版本信息,确定试验数据文件的压缩算法和存储格式,利用对应的压缩算法和存储格式,对试验数据文件进行解析,生成相应的试验数据。
根据本发明的又一个方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行本发明上述任一方面所述的方法。
根据本发明的又一个方面,提供了一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现本发明上述任一方面所述的方法。
与现有技术相比,本发明具有以下技术效果:
1)高效的数据压缩和存储:HDF5库提供了多种数据压缩算法和存储格式,可以有效地减小数据文件的大小,节省存储空间。
2)快速的数据读写和访问:HDF5库具有高效的数据访问和处理能力,能够快速地读写大型数据集,提高数据处理的效率。
3)灵活的数据组织和管理:HDF5库采用基于对象的数据模型,可以灵活地组织和管理数据文件,支持多种数据类型和数据结构,满足不同实验数据的需求。
4)跨平台和可移植性:HDF5库是一种跨平台的数据格式和库,可以在多种操作系统和计算机体系结构上运行,具有很好的可移植性和兼容性。
5)高度可扩展性:HDF5库支持多种数据压缩和存储格式,可以根据需要进行定制和扩展,满足不同实验数据的需求。
从而,本发明提出的HDF5的试验数据高效读写方法及装置具有高效、快速、灵活、可移植和可扩展等技术效果,能够有效地提高实验数据的管理、处理和共享效率,满足科学研究和工程应用的需求。
附图说明
通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式:
图1是本发明一示例性实施例提供的HDF5的试验数据高效读写方法的流程示意图;
图2是本发明一示例性实施例提供的试验数据逻辑组织架构图;
图3是本发明一示例性实施例提供的通道数据存储结构图;
图4是本发明一示例性实施例提供的通道LOD存储的示意图;
图5是本发明一示例性实施例提供的通用的数据保存和结构特点的示意图;
图6是本发明一示例性实施例提供的用DatTable保存数据的示意图;
图7是本发明一示例性实施例提供的HDF5的试验数据高效读写装置的结构示意图;
图8是本发明一示例性实施例提供的电子设备的结构图。
具体实施方式
下面,将参考附图详细地描述根据本发明的示例实施例。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,应理解,本发明不受这里描述的示例实施例的限制。
应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
图1示出了本发明所提供的HDF5的试验数据高效读写方法的流程示意图。如图1所示,HDF5的试验数据高效读写方法,包括:
步骤S101:获取与试验数据相关的数据源,解析数据源的格式,并利用对应的API接口创建试验数据。
可选地,所述获取与试验数据相关的数据源,解析数据源的格式,并利用对应的API接口创建试验数据,包括:根据与试验数据相关的数据源的格式,从试验数据分析软件提供的多个插件中选择目标插件,其中试验数据分析软件为每种格式的数据源创建一个对应的插件;调用目标插件获取与试验数据相关的数据源,并解析数据源的格式;在解析完成数据源的格式后,利用数据层提供的API接口创建试验数据。
在本发明实施例中,
步骤S102:根据试验数据的类型,从HDF5库提供的多种数据压缩算法和存储格式中选择目标压缩算法和目标存储格式,并利用目标压缩算法和目标存储格式将试验数据存储至HDF5库。
在本发明实施例中,试验数据使用四个抽象的逻辑对象来组织管理:
a)文件。作为试验数据的载体和容器。
b)分组。基于HDF5格式中的分组对象,可以对应试验数据中的类别、工况和批次等,根据这些不同的分类将试验数据组织为多级分组,数据本身保存这些分组下面。
c)试验数据对象。对应于HDF5格式中的数据集,用不同布局的数据集来保存不同的试验数据。
d)属性。对应于HDF5格式中的属性对象。属性依附于分组和试验数据对象,不能独立保存。比如可以将数据采集时的属性信息和计算后的参数信息都以属性的形式,附加在数据上进行保存。
在本发明实施例中,试验数据对象,根据其不同的特性,分为7种不同的类型,分别用不同的数据集对象布局来描述,如图2所示。
可选地,所述根据试验数据的类型,从HDF5库提供的多种数据压缩算法和存储格式中选择目标压缩算法和目标存储格式,并利用目标压缩算法和目标存储格式将试验数据存储至HDF5库,包括:当试验数据的类型为通道数据时,根据压缩需求,从HDF5库提供的多种数据压缩算法中选择对应压缩等级的通道数据压缩算法;从HDF5库提供的多种存储格式中选择通道数据存储格式;利用通道数据压缩算法和通道数据存储格式,将通道数据存储至HDF5库。
在本发明实施例中,通道数据的存储,从两方面来描述:
1、通道数据的分类组织,利用HDF5格式中的分组,将通道数据保存在任意分组下;
2、通道数据本身的存储,必须遵照一定的规则。
因此,通道数据的每个通道使用一个一维数据集来保存数据。来源于同一个数据表中的多个通道,使用一个分组对应该数据表,在分组下面,构造多个一维数据集,分别保存不同通道的数据,如图3所示。
在本发明实施例中,通道数据的时间标记分三种情况:一是通道不需要时间标记,比如频谱数据,存储时只用保存每列通道即可。二是通道的时间标记需要单独一列来保存(非等间隔采样数据),规定必须保存在第1个位置,并且设置其角色为X。三是通道的时间标记,通过起始值和间隔可以算出来(等间隔采样数据),在通道的属性集合中,保存起始时间和时间间隔2个值。使用数据时,通过这两个值计算出通道的时间列。
在本发明实施例中,为了大数据的快速显示,需要存储原始数据的抽取数据,按以下步骤进行数据抽取:
(a)存储原始数据;
(b)遍历读取原始数据,按比例从原始数据的10个数据点中,提取2个数据点(按特征值提取);
(c)将提取出来的2个数据值保存在一个新的数据集中(包括时间序列);
(d)原始数据遍历提取完成后,继续遍历之前产生的新数据集,用同样的方法抽取数据;
(e)每形成一个新数据集,就继续上述操作,形成新的下一级数据集;直到产生的数据点数小于1000个点为止。
提取出来的数据集,与原始数据并列存储在另一个分组中。
如图4所示,每个通道的LOD,作为一个分组保存在文件中,该分组下有多级LOD数据,每一级LOD数据以数据集的形式保存,数据集是一个Nx2的二维矩阵,保存时间和值两列数。数值均以双精度浮点数保存。
在本发明实施例中,只有简单类型的数值支持LOD存储,字符串和复数暂不支持LOD数据的生成。
在本发明实施例中,依赖于HDF5的属性集合,保存通道数据的属性,属性项的数量不做限制,并且可以任意增加或者删除。属性项分为属性名称和属性值,属性名称由字符和数字组成,属性值支持浮点数、整数、字符串等几种类型。属性区分为固有属性和扩展属性,存储时并不做区分,只是固有属性的名称是关键字被占用,不能再被用户使用。固定属性包括:“unit”、“ObjClass”、“Order”、“designation”、“min”、“max”、“avg”这几个属性。
在本发明实施例中,通道保存原始值时,原始值的类型支持如下格式:
1字节整数(有符号/无符号);
2字节整数(有符号/无符号);
4字节整数(有符号/无符号);
8字节整数(有符号/无符号);
4字节单精度浮点数;
8字节双精度浮点数;
复数;
固定长度字符串(4、8、16、32、64、128、256、512字节长度);
不固定长度的字符串;
上述类型中的整数和浮点数称之为简单类型。
写数据之前,必须先确定数据列的数据值类型,之后写数据的时候,简单类型之间支持自动转换。
在本发明实施例中,通道数据写入时,设置标记的情况下,会自动进行统计,写数据完成时,设置统计结束标志,统计值写入通道数据集的属性集合中,统计值包括:最大、最小和平均。
可选地,所述根据试验数据的类型,从HDF5库提供的多种数据压缩算法和存储格式中选择目标压缩算法和目标存储格式,并利用目标压缩算法和目标存储格式将试验数据存储至HDF5库,包括:当试验数据的类型为图像数据时,根据压缩需求,从HDF5库提供的多种数据压缩算法中选择对应压缩等级的图像数据压缩算法;从HDF5库提供的多种存储格式中选择图像数据存储格式;利用图像数据压缩算法和图像数据存储格式,将图像数据存储至HDF5库。
在本发明实施例中,试验数据的图像存储基于HDF5对于图像数据的规范,略有修改。图像数据使用一个三维数据集保存的每个像素点的RGB值,数据集中的每个值,是一个1字节的无符号整数(0-255)。三维数据集中二个维度对应图像的宽度和高度方向的像素点,另外一个维度固定长度是3,保存某个像素点的RGB三个分量。图像数据存储时,需要保存一个固定的属性,属性名称是“CLASS”,属性值是“IMAGE”,以便让第三方软件识别。
可选地,所述根据试验数据的类型,从HDF5库提供的多种数据压缩算法和存储格式中选择目标压缩算法和目标存储格式,并利用目标压缩算法和目标存储格式将试验数据存储至HDF5库,包括:当试验数据的类型为二进制数据时,根据压缩需求,从HDF5库提供的多种数据压缩算法中选择对应压缩等级的二进制数据压缩算法;从HDF5库提供的多种存储格式中选择二进制数据存储格式;利用二进制数据压缩算法和二进制数据存储格式,将二进制数据存储至HDF5库。
在本发明实施例中,不需要解析其内部格式的原始二进制数据,完全按原样存储在文件中,不对数据进行解析和整理。由于格式不透明,读取数据时也不进行解析,取出数据块给上层应用即可。
可选地,所述根据试验数据的类型,从HDF5库提供的多种数据压缩算法和存储格式中选择目标压缩算法和目标存储格式,并利用目标压缩算法和目标存储格式将试验数据存储至HDF5库,包括:当试验数据的类型为表数据时,根据压缩需求,从HDF5库提供的多种数据压缩算法中选择对应压缩等级的表数据压缩算法;从HDF5库提供的多种存储格式中选择表数据存储格式;利用表数据压缩算法和表数据存储格式,将表数据存储至HDF5库。
在本发明实施例中,表数据由若干条记录组成,每条记录又由相同结构的若干个值类型不同的字段组成。利用HDF5格式中的组合类型,可以存储任意多条记录的表数据。表数据在存储的时候,需要预先规定好记录的结构,包括字段的数量,每个字段的值类型,把记录的结构定义好,整体当作一个类型存到文件后,再进行数据记录的存储。每条记录的类型都是定长的,不支持变长记录的存储,所以不支持变长字符串的字段类型。表数据支持属性的存储,每个表数据支持不限数量的属性的存储。
可选地,所述根据试验数据的类型,从HDF5库提供的多种数据压缩算法和存储格式中选择目标压缩算法和目标存储格式,并利用目标压缩算法和目标存储格式将试验数据存储至HDF5库,包括:当试验数据的类型为矩阵数据时,根据压缩需求,从HDF5库提供的多种数据压缩算法中选择对应压缩等级的矩阵数据压缩算法;从HDF5库提供的多种存储格式中选择矩阵数据存储格式;利用矩阵数据压缩算法和矩阵数据存储格式,将矩阵数据存储至HDF5库。
在本发明实施例中,矩阵数据是一个MxN的二维结构数据,矩阵数据中的每个值都是同一种类型。矩阵数据的物理存储布局如下:矩阵数据依托于HDF5格式中的二维数据集对象进行存储。矩阵数据完成存储后,支持随时增加行或列。矩阵数据支持属性集合的存储。同一个矩阵数据的每个单元的值保持一致,支持以下类型:
1字节整数(有符号/无符号);
2字节整数(有符号/无符号);
4字节整数(有符号/无符号);
8字节整数(有符号/无符号);
4字节单精度浮点数;
8字节双精度浮点数;
复数。
可选地,所述根据试验数据的类型,从HDF5库提供的多种数据压缩算法和存储格式中选择目标压缩算法和目标存储格式,并利用目标压缩算法和目标存储格式将试验数据存储至HDF5库,包括:当试验数据的类型为文本数据时,根据压缩需求,从HDF5库提供的多种数据压缩算法中选择对应压缩等级的文本数据压缩算法;从HDF5库提供的多种存储格式中选择文本数据存储格式;利用文本数据压缩算法和文本数据存储格式,将文本数据存储至HDF5库。
在本发明实施例中,文本数据又称为字符串数据,字符串数据用于描述性信息的保存。数据保存于数据集对象中,每个数据集对象保存一个字符串数据,长度不做限制。UTF-8编码的字符串数据直接保存到数据集中,其他编码方式的字符串,需要先在上层应用转换成UTF-8再保存。因此从HDF5数据中取到字符串值数据统一都是UTF-8编码方式。字符串数据支持属性的存储,每个数据绑定的属性数量不限。
可选地,所述根据试验数据的类型,从HDF5库提供的多种数据压缩算法和存储格式中选择目标压缩算法和目标存储格式,并利用目标压缩算法和目标存储格式将试验数据存储至HDF5库,包括:当试验数据的类型为视频数据时,根据压缩需求,从HDF5库提供的多种数据压缩算法中选择对应压缩等级的视频数据压缩算法;从HDF5库提供的多种存储格式中选择视频数据存储格式;利用视频数据压缩算法和视频数据存储格式,将视频数据存储至HDF5库。
在本发明实施例中,视频数据存储于数据集对象中,存储时对格式不做解析,直接存储其原始内容。在数据的属性中,使用名称为“format”的属性记录其格式。读取数据时通过该属性得到其视频格式。
步骤S103:当需要读取试验数据时,从HDF5库中获取对应的试验数据文件,根据试验数据文件的版本信息,确定试验数据文件的压缩算法和存储格式,利用对应的压缩算法和存储格式,对试验数据文件进行解析,生成相应的试验数据。
在本发明实施例中,出于节约存储空间的考虑,生成数据时,可以选择是否将数据压缩存储。相对于普通的存储,压缩存储可以节省磁盘空间,但是在性能上会有一定的损失。压缩比例与数据的类型和数据的值的分布情况有关,预先无法获得结果。存储完成后,可以通过第三方软件查看具体的压缩比例。试验数据的内部,仅对数据集保存的数据进行压缩(其他的分组、元信息、属性等并不压缩)。压缩算法使用gzip,在1-9的压缩等级中,缺省以等级5进行存储。
在本发明实施例中,试验数据文件可以分层和分类存储不同类型和不限量的数据对象,为了在整个数据中对数据进行定位和查找的方便,每个数据对象均为其分配一个GUID,此GUID的生成机制保证其唯一性,可以用来对数据对象进行唯一的标识。在别的应用中引用试验数据对象,保存其ID,下次再打开程序根据该ID可以定位此数据。出于节省空间的考虑,通道数据不保存GUID,而是为其父对象数据表分配和保存GUID,引用通道时,需要通过数据表对象的GUID,再加上通道在数据表中的索引进行定位。
在本发明实施例中,试验数据在试验数据分析软件中通过导入方式生成。试验数据在试验数据分析软件中以统一的格式存储,而数据源的格式是完全不相同的,试验数据分析软件提供一种插件机制,每种格式创建一个插件,程序框架以统一的方式调用插件来导入数据。插件开发完成后,放到安装目录,再加入到配置文件,程序即可识别该插件,从而调用插件解析导入数据。导入插件运行时,解析数据源的格式,然后利用数据层提供的API创建试验数据,生成的结果试验数据被程序框架加入到工程中。
在本发明实施例中,试验数据存储格式复杂,需通过试验数据分析软件进行数据加载和后续读取。试验数据分析软件打开试验数据文件,首先找到版本,再根据该版本的规范,就可以解析出数据结构,在内存中生成相应的数据对象,得到数据值和信息。试验数据分析软件读取试验数据后,可以通过导出的方式,将数据保存为用户需要的格式。
可选地,HDF5的试验数据高效读写方法还包括:当需要传输和交换HDF5库中存储的试验数据文件时,计算试验数据文件的第一MD5值,并将第一MD5值和试验数据文件同时保存、传输和分发;当接收到试验数据文件时,计算试验数据文件的第二MD5值,将第二MD5值与第一MD5值进行比较,并根据比较的结果判断试验数据文件是否损坏。
在本发明实施例中,试验数据内部格式复杂,只有在数据完整的情况下才能得到解读,因此在传输和交换时需要保持完整性。推荐使用文件数字签名的办法来证明文件是否完整。拷贝和传输文件之前,计算文件的MD5值,并将该值与文件同时保存和传输、分发。接收试验数据时通过再次计算文件的MD5值,然后与文件共同存储的MD5值比较,可以得知文件是否损坏。
在本发明实施例中,由于HDF5的主要对象有文件、分组、数据表、属性。文件本身作为根分组。分组可无限多层级,无限多子分组。数据表建在分组下。数据表可以多维。每个对象有属性列表。试验数据对象与HDF5的对应以示意图来描述数据对象之间的对应关系。
如图5所示,通用的数据保存和结构的特点为:工程文件(project.h5)只保存结构和文件链接,具体的数据文件独立保存在磁盘上。优点是灵活,缺点是工程管理和文件管理复杂。
如图6所示,可以用DatTable保存数据。DatTable允许每一列类型不一致,类似于数据库表中的table,它可以按行读取(DatRows、DatRow),也可以按列读取。DatTable本身不能对应一个文件,它只能是其他类型的子对象。
在本发明实施例中,HDF5的试验数据完全保存一个文件中的复杂结构。里面有所有的数据类型。自描述,根据规范,从文件中可以构建出整个树,创建出各种对象。
从而,本发明所提出的HDF5的试验数据高效读写方法,具有以下技术效果:
1)高效的数据压缩和存储:HDF5库提供了多种数据压缩算法和存储格式,可以有效地减小数据文件的大小,节省存储空间。
2)快速的数据读写和访问:HDF5库具有高效的数据访问和处理能力,能够快速地读写大型数据集,提高数据处理的效率。
3)灵活的数据组织和管理:HDF5库采用基于对象的数据模型,可以灵活地组织和管理数据文件,支持多种数据类型和数据结构,满足不同实验数据的需求。
4)跨平台和可移植性:HDF5库是一种跨平台的数据格式和库,可以在多种操作系统和计算机体系结构上运行,具有很好的可移植性和兼容性。
5)高度可扩展性:HDF5库支持多种数据压缩和存储格式,可以根据需要进行定制和扩展,满足不同实验数据的需求。
从而,本发明提出的HDF5的试验数据高效读写方法及装置具有高效、快速、灵活、可移植和可扩展等技术效果,能够有效地提高实验数据的管理、处理和共享效率,满足科学研究和工程应用的需求。
示例性装置
图7是本发明一示例性实施例提供的HDF5的试验数据高效读写装置的结构示意图。如图7所示,装置700包括:
试验数据生成模块710,用于获取与试验数据相关的数据源,解析数据源的格式,并利用对应的API接口创建试验数据;
试验数据存储模块720,用于根据试验数据的类型,从HDF5库提供的多种数据压缩算法和存储格式中选择目标压缩算法和目标存储格式,并利用目标压缩算法和目标存储格式将试验数据存储至HDF5库:
试验数据读取模块730,用于当需要读取试验数据时,从HDF5库中获取对应的试验数据文件,根据试验数据文件的版本信息,确定试验数据文件的压缩算法和存储格式,利用对应的压缩算法和存储格式,对试验数据文件进行解析,生成相应的试验数据。
本发明的实施例的HDF5的试验数据高效读写装置与本发明的另一个实施例的HDF5的试验数据高效读写方法相对应,在此不再赘述。
示例性电子设备
图8是本发明一示例性实施例提供的电子设备的结构。如图8所示,电子设备80包括一个或多个处理器81和存储器82。
处理器81可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备中的其他组件以执行期望的功能。
存储器82可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器81可以运行所述程序指令,以实现上文所述的本发明的各个实施例的软件程序的方法以及/或者其他期望的功能。在一个示例中,电子设备还可以包括:输入装置83和输出装置84,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
此外,该输入装置83还可以包括例如键盘、鼠标等等。
该输出装置84可以向外部输出各种信息。该输出装置84可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图8中仅示出了该电子设备中与本发明有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本发明的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本发明各种实施例的方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本发明实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本发明的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本发明各种实施例的方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、系统或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是,在本发明中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本发明的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本发明为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明中涉及的器件、系统、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、系统、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
还需要指出的是,在本发明的系统、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本发明。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本发明的范围。因此,本发明不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本发明的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (3)
1.一种HDF5的试验数据高效读写方法,其特征在于,包括:
获取与试验数据相关的数据源,解析数据源的格式,并利用对应的API接口创建试验数据;其中,试验数据使用文件、分组、试验数据对象、属性这四个抽象的逻辑对象来组织管理;文件作为试验数据的载体和容器;基于HDF5格式中的分组对象对应试验数据中的类别、工况和批次;试验数据对象对应于HDF5格式中的数据集,用不同布局的数据集来保存不同的试验数据;属性对应于HDF5格式中的属性对象,依附于分组和试验数据对象;根据试验数据对象不同的特性,分为7种不同的类型,分别用不同的数据集对象布局来描述,包括通道数据、图像数据、二进制数据、表数据、矩阵数据、文本数据和视频数据;
当试验数据的类型为通道数据时,根据压缩需求,从HDF5库提供的多种数据压缩算法中选择对应压缩等级的通道数据压缩算法;从HDF5库提供的多种存储格式中选择通道数据存储格式;利用通道数据压缩算法和通道数据存储格式,利用HDF5格式中的分组,将通道数据存储至HDF5库中的任意分组下;其中,通道数据的每个通道使用一个一维数据集来保存数据,来源于同一个数据表中的多个通道,使用一个分组对应该数据表,在分组下面,构造多个一维数据集,分别保存不同通道的数据;
当试验数据的类型为图像数据时,根据压缩需求,从HDF5库提供的多种数据压缩算法中选择对应压缩等级的图像数据压缩算法;从HDF5库提供的多种存储格式中选择图像数据存储格式;利用图像数据压缩算法和图像数据存储格式,将图像数据存储至HDF5库;其中,图像数据使用一个三维数据集保存每个像素点的RGB值,三维数据集中的每个值,是一个1字节的无符号整数,三维数据集中二个维度对应图像的宽度和高度方向的像素点,另外一个维度固定长度是3,保存某个像素点的RGB三个分量;
当试验数据的类型为二进制数据时,根据压缩需求,从HDF5库提供的多种数据压缩算法中选择对应压缩等级的二进制数据压缩算法;从HDF5库提供的多种存储格式中选择二进制数据存储格式;利用二进制数据压缩算法和二进制数据存储格式,将二进制数据存储至HDF5库;其中,不需要解析二进制数据,完全按原样存储在文件中,不对数据进行解析和整理;
当试验数据的类型为表数据时,根据压缩需求,从HDF5库提供的多种数据压缩算法中选择对应压缩等级的表数据压缩算法;从HDF5库提供的多种存储格式中选择表数据存储格式;利用表数据压缩算法和表数据存储格式,将表数据存储至HDF5库;其中,利用HDF5格式中的组合类型,存储任意多条记录的表数据,表数据在存储的时候,需要预先规定好记录的结构,包括字段的数量,每个字段的值类型,把记录的结构定义好,整体当作一个类型存到文件后,再进行数据记录的存储,每条记录的类型都是定长的,不支持变长记录的存储,不支持变长字符串的字段类型,表数据支持属性的存储,每个表数据支持不限数量的属性的存储;
当试验数据的类型为矩阵数据时,根据压缩需求,从HDF5库提供的多种数据压缩算法中选择对应压缩等级的矩阵数据压缩算法;从HDF5库提供的多种存储格式中选择矩阵数据存储格式;利用矩阵数据压缩算法和矩阵数据存储格式,将矩阵数据存储至HDF5库;其中,矩阵数据依托于HDF5格式中的二维数据集对象进行存储,矩阵数据完成存储后,支持随时增加行或列,矩阵数据支持属性集合的存储,同一个矩阵数据的每个单元的值保持一致;
当试验数据的类型为文本数据时,根据压缩需求,从HDF5库提供的多种数据压缩算法中选择对应压缩等级的文本数据压缩算法;从HDF5库提供的多种存储格式中选择文本数据存储格式;利用文本数据压缩算法和文本数据存储格式,将文本数据存储至HDF5库;其中,文本数据又称为字符串数据,字符串数据保存于数据集对象中,每个数据集对象保存一个字符串数据,长度不做限制,UTF-8编码的字符串数据直接保存到数据集中,其他编码方式的字符串,需要先在上层应用转换成UTF-8再保存,因此从HDF5数据中取到字符串值数据统一都是UTF-8编码方式,字符串数据支持属性的存储,每个数据绑定的属性数量不限;
当试验数据的类型为视频数据时,根据压缩需求,从HDF5库提供的多种数据压缩算法中选择对应压缩等级的视频数据压缩算法;从HDF5库提供的多种存储格式中选择视频数据存储格式;利用视频数据压缩算法和视频数据存储格式,将视频数据存储至HDF5库;其中,视频数据存储于数据集对象中,存储时对格式不做解析,直接存储视频数据的原始内容,在视频数据的属性中,使用名称为format的属性记录视频数据的格式,读取数据时通过该属性得到视频数据的视频格式;
当需要读取试验数据时,从HDF5库中获取对应的试验数据文件,根据试验数据文件的版本信息,确定试验数据文件的压缩算法和存储格式,利用对应的压缩算法和存储格式,对试验数据文件进行解析,生成相应的试验数据。
2.根据权利要求1所述的方法,其特征在于,所述获取与试验数据相关的数据源,解析数据源的格式,并利用对应的API接口创建试验数据,包括:
根据与试验数据相关的数据源的格式,从试验数据分析软件提供的多个插件中选择目标插件,其中试验数据分析软件为每种格式的数据源创建一个对应的插件;
调用目标插件获取与试验数据相关的数据源,并解析数据源的格式;
在解析完成数据源的格式后,利用数据层提供的API接口创建试验数据。
3.一种HDF5的试验数据高效读写装置,其特征在于,包括:
试验数据生成模块,用于获取与试验数据相关的数据源,解析数据源的格式,并利用对应的API接口创建试验数据;其中,试验数据使用文件、分组、试验数据对象、属性这四个抽象的逻辑对象来组织管理;文件作为试验数据的载体和容器;基于HDF5格式中的分组对象对应试验数据中的类别、工况和批次;试验数据对象对应于HDF5格式中的数据集,用不同布局的数据集来保存不同的试验数据;属性对应于HDF5格式中的属性对象,依附于分组和试验数据对象;根据试验数据对象不同的特性,分为7种不同的类型,分别用不同的数据集对象布局来描述,包括通道数据、图像数据、二进制数据、表数据、矩阵数据、文本数据和视频数据;
试验数据存储模块,用于根据试验数据的类型,从HDF5库提供的多种数据压缩算法和存储格式中选择目标压缩算法和目标存储格式,并利用目标压缩算法和目标存储格式将试验数据存储至HDF5库:
试验数据读取模块,用于当需要读取试验数据时,从HDF5库中获取对应的试验数据文件,根据试验数据文件的版本信息,确定试验数据文件的压缩算法和存储格式,利用对应的压缩算法和存储格式,对试验数据文件进行解析,生成相应的试验数据;其中
根据试验数据的类型,从HDF5库提供的多种数据压缩算法和存储格式中选择目标压缩算法和目标存储格式,并利用目标压缩算法和目标存储格式将试验数据存储至HDF5库,包括:
当试验数据的类型为通道数据时,根据压缩需求,从HDF5库提供的多种数据压缩算法中选择对应压缩等级的通道数据压缩算法;从HDF5库提供的多种存储格式中选择通道数据存储格式;利用通道数据压缩算法和通道数据存储格式,利用HDF5格式中的分组,将通道数据存储至HDF5库中的任意分组下;其中,通道数据的每个通道使用一个一维数据集来保存数据,来源于同一个数据表中的多个通道,使用一个分组对应该数据表,在分组下面,构造多个一维数据集,分别保存不同通道的数据;
当试验数据的类型为图像数据时,根据压缩需求,从HDF5库提供的多种数据压缩算法中选择对应压缩等级的图像数据压缩算法;从HDF5库提供的多种存储格式中选择图像数据存储格式;利用图像数据压缩算法和图像数据存储格式,将图像数据存储至HDF5库;其中,图像数据使用一个三维数据集保存每个像素点的RGB值,三维数据集中的每个值,是一个1字节的无符号整数,三维数据集中二个维度对应图像的宽度和高度方向的像素点,另外一个维度固定长度是3,保存某个像素点的RGB三个分量;
当试验数据的类型为二进制数据时,根据压缩需求,从HDF5库提供的多种数据压缩算法中选择对应压缩等级的二进制数据压缩算法;从HDF5库提供的多种存储格式中选择二进制数据存储格式;利用二进制数据压缩算法和二进制数据存储格式,将二进制数据存储至HDF5库;其中,不需要解析二进制数据,完全按原样存储在文件中,不对数据进行解析和整理;
当试验数据的类型为表数据时,根据压缩需求,从HDF5库提供的多种数据压缩算法中选择对应压缩等级的表数据压缩算法;从HDF5库提供的多种存储格式中选择表数据存储格式;利用表数据压缩算法和表数据存储格式,将表数据存储至HDF5库;其中,利用HDF5格式中的组合类型,存储任意多条记录的表数据,表数据在存储的时候,需要预先规定好记录的结构,包括字段的数量,每个字段的值类型,把记录的结构定义好,整体当作一个类型存到文件后,再进行数据记录的存储,每条记录的类型都是定长的,不支持变长记录的存储,不支持变长字符串的字段类型,表数据支持属性的存储,每个表数据支持不限数量的属性的存储;
当试验数据的类型为矩阵数据时,根据压缩需求,从HDF5库提供的多种数据压缩算法中选择对应压缩等级的矩阵数据压缩算法;从HDF5库提供的多种存储格式中选择矩阵数据存储格式;利用矩阵数据压缩算法和矩阵数据存储格式,将矩阵数据存储至HDF5库;其中,矩阵数据依托于HDF5格式中的二维数据集对象进行存储,矩阵数据完成存储后,支持随时增加行或列,矩阵数据支持属性集合的存储,同一个矩阵数据的每个单元的值保持一致;
当试验数据的类型为文本数据时,根据压缩需求,从HDF5库提供的多种数据压缩算法中选择对应压缩等级的文本数据压缩算法;从HDF5库提供的多种存储格式中选择文本数据存储格式;利用文本数据压缩算法和文本数据存储格式,将文本数据存储至HDF5库;其中,文本数据又称为字符串数据,字符串数据保存于数据集对象中,每个数据集对象保存一个字符串数据,长度不做限制,UTF-8编码的字符串数据直接保存到数据集中,其他编码方式的字符串,需要先在上层应用转换成UTF-8再保存,因此从HDF5数据中取到字符串值数据统一都是UTF-8编码方式,字符串数据支持属性的存储,每个数据绑定的属性数量不限;
当试验数据的类型为视频数据时,根据压缩需求,从HDF5库提供的多种数据压缩算法中选择对应压缩等级的视频数据压缩算法;从HDF5库提供的多种存储格式中选择视频数据存储格式;利用视频数据压缩算法和视频数据存储格式,将视频数据存储至HDF5库;其中,视频数据存储于数据集对象中,存储时对格式不做解析,直接存储视频数据的原始内容,在视频数据的属性中,使用名称为format的属性记录视频数据的格式,读取数据时通过该属性得到视频数据的视频格式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310336301.0A CN116521063B (zh) | 2023-03-31 | 2023-03-31 | 一种hdf5的试验数据高效读写方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310336301.0A CN116521063B (zh) | 2023-03-31 | 2023-03-31 | 一种hdf5的试验数据高效读写方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116521063A CN116521063A (zh) | 2023-08-01 |
CN116521063B true CN116521063B (zh) | 2024-03-26 |
Family
ID=87398453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310336301.0A Active CN116521063B (zh) | 2023-03-31 | 2023-03-31 | 一种hdf5的试验数据高效读写方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116521063B (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103366015A (zh) * | 2013-07-31 | 2013-10-23 | 东南大学 | 一种基于Hadoop的OLAP数据存储与查询方法 |
CN103559185A (zh) * | 2013-08-13 | 2014-02-05 | 西安航天动力试验技术研究所 | 试验数据文档解析入库方法 |
CN104298726A (zh) * | 2014-09-26 | 2015-01-21 | 惠州市亿能电子有限公司 | 一种基于数据库的bms数据存储系统及其方法 |
CN104462524A (zh) * | 2014-12-24 | 2015-03-25 | 福建江夏学院 | 一种物联网数据压缩存储方法 |
CN105718538A (zh) * | 2016-01-18 | 2016-06-29 | 中国科学院计算技术研究所 | 一种分布式文件系统的自适应压缩方法及系统 |
CN110930069A (zh) * | 2019-12-10 | 2020-03-27 | 航天新长征大道科技有限公司 | 数据采集打包方法和系统,可读存储介质和计算机 |
CN111611209A (zh) * | 2020-03-30 | 2020-09-01 | 北京瑞风协同科技股份有限公司 | 一种用于分任务存储虚拟试验数据的方法及系统 |
WO2021074272A1 (en) * | 2019-10-18 | 2021-04-22 | Koninklijke Philips N.V. | Customizable delimited text compression framework |
CN114118224A (zh) * | 2021-11-02 | 2022-03-01 | 中国运载火箭技术研究院 | 一种基于神经网络的全系统遥测参数异常检测系统 |
CN114116635A (zh) * | 2020-08-25 | 2022-03-01 | 辉达公司 | 压缩数据流的并行解压缩 |
CN114556482A (zh) * | 2019-10-18 | 2022-05-27 | 皇家飞利浦有限公司 | 用于对各种各样的表列数据进行有效压缩、表示和解压缩的系统和方法 |
CN115297183A (zh) * | 2022-07-29 | 2022-11-04 | 天翼云科技有限公司 | 一种数据处理方法、装置、电子设备和存储介质 |
WO2022245294A2 (en) * | 2021-05-20 | 2022-11-24 | Envision Digital International Pte. Ltd. | Method and apparatus for managing accounts, and server and storage medium thereof |
CN115391298A (zh) * | 2021-05-25 | 2022-11-25 | 戴尔产品有限公司 | 基于内容的动态混合数据压缩 |
CN115686382A (zh) * | 2022-12-30 | 2023-02-03 | 南京鲸鲨数据科技有限公司 | 一种数据存储及读取方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080016023A1 (en) * | 2006-07-17 | 2008-01-17 | The Mathworks, Inc. | Storing and loading data in an array-based computing environment |
EP2499565B1 (en) * | 2009-11-13 | 2019-01-09 | Ab Initio Technology LLC | Managing record format information |
US10860526B2 (en) * | 2012-12-01 | 2020-12-08 | The Regents Of The University Of California | System and method of managing large data files |
GB2507838B (en) * | 2013-05-09 | 2014-09-24 | Imagination Tech Ltd | Vertex parameter data compression |
US10594790B2 (en) * | 2017-06-28 | 2020-03-17 | International Business Machines Corporation | Data compression in a dispersed storage network |
US20200167076A1 (en) * | 2018-11-26 | 2020-05-28 | Ati Technologies Ulc | Compressed memory access improvement through compression-aware partial writes |
-
2023
- 2023-03-31 CN CN202310336301.0A patent/CN116521063B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103366015A (zh) * | 2013-07-31 | 2013-10-23 | 东南大学 | 一种基于Hadoop的OLAP数据存储与查询方法 |
CN103559185A (zh) * | 2013-08-13 | 2014-02-05 | 西安航天动力试验技术研究所 | 试验数据文档解析入库方法 |
CN104298726A (zh) * | 2014-09-26 | 2015-01-21 | 惠州市亿能电子有限公司 | 一种基于数据库的bms数据存储系统及其方法 |
CN104462524A (zh) * | 2014-12-24 | 2015-03-25 | 福建江夏学院 | 一种物联网数据压缩存储方法 |
CN105718538A (zh) * | 2016-01-18 | 2016-06-29 | 中国科学院计算技术研究所 | 一种分布式文件系统的自适应压缩方法及系统 |
CN114556482A (zh) * | 2019-10-18 | 2022-05-27 | 皇家飞利浦有限公司 | 用于对各种各样的表列数据进行有效压缩、表示和解压缩的系统和方法 |
WO2021074272A1 (en) * | 2019-10-18 | 2021-04-22 | Koninklijke Philips N.V. | Customizable delimited text compression framework |
CN110930069A (zh) * | 2019-12-10 | 2020-03-27 | 航天新长征大道科技有限公司 | 数据采集打包方法和系统,可读存储介质和计算机 |
CN111611209A (zh) * | 2020-03-30 | 2020-09-01 | 北京瑞风协同科技股份有限公司 | 一种用于分任务存储虚拟试验数据的方法及系统 |
CN114116635A (zh) * | 2020-08-25 | 2022-03-01 | 辉达公司 | 压缩数据流的并行解压缩 |
WO2022245294A2 (en) * | 2021-05-20 | 2022-11-24 | Envision Digital International Pte. Ltd. | Method and apparatus for managing accounts, and server and storage medium thereof |
CN115391298A (zh) * | 2021-05-25 | 2022-11-25 | 戴尔产品有限公司 | 基于内容的动态混合数据压缩 |
CN114118224A (zh) * | 2021-11-02 | 2022-03-01 | 中国运载火箭技术研究院 | 一种基于神经网络的全系统遥测参数异常检测系统 |
CN115297183A (zh) * | 2022-07-29 | 2022-11-04 | 天翼云科技有限公司 | 一种数据处理方法、装置、电子设备和存储介质 |
CN115686382A (zh) * | 2022-12-30 | 2023-02-03 | 南京鲸鲨数据科技有限公司 | 一种数据存储及读取方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116521063A (zh) | 2023-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Marchet et al. | Data structures based on k-mers for querying large collections of sequencing data sets | |
Junker et al. | Exploration of biological network centralities with CentiBiN | |
Karnitis et al. | Migration of relational database to document-oriented database: Structure denormalization and data transformation | |
Nelli | Python data analytics: Data analysis and science using PANDAs, Matplotlib and the Python Programming Language | |
CN1297936C (zh) | 用来比较两个计算机文件的方法及系统 | |
CA2997061C (en) | Method and system for parallelization of ingestion of large data sets | |
US11907203B2 (en) | Path encoded tree structures for operations | |
CN111611266A (zh) | 知识驱动的联合大数据查询和分析平台 | |
Spasić et al. | MeMo: a hybrid SQL/XML approach to metabolomic data management for functional genomics | |
Duke et al. | Data storage architectures to accelerate chemical discovery: data accessibility for individual laboratories and the community | |
CN109473178B (zh) | 医疗数据整合的方法、系统、设备及存储介质 | |
CN116521063B (zh) | 一种hdf5的试验数据高效读写方法及装置 | |
AU2015211043A1 (en) | Optimized data condenser and method | |
US20180060404A1 (en) | Schema abstraction in data ecosystems | |
CN111984745A (zh) | 数据库字段动态扩展方法、装置、设备及存储介质 | |
Kvet et al. | Data block and tuple identification using master index | |
Maarala et al. | Scalable reference genome assembly from compressed pan-genome index with spark | |
CN116303359A (zh) | 一种数据库结构多类型文档导出的实现方法 | |
da Silva et al. | Savime: An array dbms for simulation analysis and ml models prediction | |
Ueno et al. | Processing sequence annotation data using the Lua programming language | |
Lustosa et al. | SAVIME: A multidimensional system for the analysis and visualization of simulation data | |
CN113127496A (zh) | 数据库中变更数据的确定方法及装置、介质和设备 | |
He et al. | A parallel Hyper-Surface Classifier for high dimensional data | |
Minkley et al. | Suffix tree searcher: exploration of common substrings in large DNA sequence sets | |
US11797485B2 (en) | Frameworks for data source representation and compression |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |