时序生理数据的存储结构、查询方法、存储介质及系统与流程

文档序号:32165007发布日期:2022-11-12 04:07阅读:45来源:国知局
时序生理数据的存储结构、查询方法、存储介质及系统与流程

1.本公开总体上涉及电数字数据处理领域,更具体地涉及一种时序生理数据的存储结构、查询方法、非暂时性计算机可读存储介质及计算机系统。


背景技术:

2.本部分旨在介绍本领域的一些方面,其可以与下面描述的和/或要求保护的本公开的各个方面相关。相信本部分有助于提供背景信息以便于更好地理解本公开的各个方面。因此,应该理解的是这些介绍应该从这个角度来理解,而不是作为对现有技术的承认。
3.生理采集设备产生的数据会随着采集的时长线性增长,在高采样率的情况下,数据量会比较大,且这些数据有按照时间查询的需求。使用一般的关系型数据库和文档型数据库,其插入效率和性能消耗过大,不能满足查询需求。使用时序性数据库,其性能要求过高。因此,需要一种既能快速存储数据,又能在低资源消耗的情况下按时间查询数据的存储方式。


技术实现要素:

4.本公开的目的在于提供一种时序生理数据的存储结构、查询方法、非暂时性计算机可读存储介质及计算机系统,以实现时序生理数据的快速存储、快速查询。
5.根据本公开的第一方面,提供了一种时序生理数据的存储结构,包括:头文件,用于存储采集所述时序生理数据时的参数信息;数据块文件,用于存储所述时序生理数据的至少一个数据帧的信息;以及索引文件,用于存储所述数据块文件的索引信息。
6.根据本公开的第二方面,提供了一种时序生理数据的查询方法,其中,所述时序生理数据的存储结构包括:头文件,用于存储采集所述时序生理数据时的参数信息;数据块文件,用于存储所述时序生理数据的至少一个数据帧的信息;以及索引文件,用于存储所述数据块文件的索引信息,所述查询方法包括:加载所述索引文件;遍历所述索引文件以确定目标数据块文件;以及根据所述目标数据块文件的起始数据帧和结束数据帧,确定目标数据帧。
7.根据本公开的第三方面,提供了一种存储有时序生理数据的非暂时性计算机可读存储介质,其中,所述时序生理数据的存储结构包括:头文件,用于存储采集所述时序生理数据时的参数信息;数据块文件,用于存储所述时序生理数据的至少一个数据帧的信息;以及索引文件,用于存储所述数据块文件的索引信息。
8.根据本公开的第四方面,提供了一种计算机系统,包括:处理器,与所述处理器进行电子通信的存储器;以及指令,所述指令存储在所述存储器中并且可由所述处理器执行以使所述计算机系统执行根据本公开的第二方面所述的方法。
9.根据本公开提供的各个实施例,可以快速读取指定位置的数据,并且通过控制数据块文件大小可以将数据量的线性增长问题切割分段,防止采集时长过长后产生过大的内存处理瓶颈。
10.应当理解,本部分所描述的内容并不旨在标识所要求保护的发明内容的关键或必要特征,也不旨在单独地用于确定所要求保护的发明内容的范围。
附图说明
11.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的该实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
12.图1示出了根据本公开实施例的时序生理数据的存储结构示意图。
13.图2示出了根据本公开实施例的时序生理数据的查询方法的流程示意图。
14.图3示出了可以用来实施本公开的实施例的示例计算机系统的示意性框图。
具体实施方式
15.下文将参考附图更全面地描述本公开。然而,本公开可以以多种替代形式来体现,并且不应被解释为限于本文描述的实施例。因此,尽管本公开易于进行各种修改和替代形式,但是其具体实施例在附图中以示例的方式示出,并将在本文详细描述。然而,应当理解,这种方式并不旨在将本公开限制于所公开的特定形式,相反,本公开覆盖了落入由权利要求所限定的本公开的精神和范围内的所有修改方案、等同方案和替代方案。
16.应当理解,尽管本文可以用术语第一、第二等描述各种元素,但是这些元素不应该被这些术语所限制。这些术语仅用于区分一个元素和另一个元素。例如,第一元素可以被称为第二元素,并且类似地,第二元素可以被称为第一元素,而不脱离本公开的教导。
17.本文结合框图和/或流程图描述了一些示例,其中每个框表示包括用于实现指定逻辑功能的一个或多个可执行指令的电路元件、模分块或代码的部分。还应该注意的是,在其他实现方式中,框中所述的功能可以不按所述的顺序发生。例如,根据所涉及的功能,连续示出的两个框实际上可以实质上同时执行,或者这些框有时可以以相反的顺序执行。
18.本文提到的“根据...示例”或“在..示例中”意味着结合示例描述的特定特征、结构或特性可以被包括在本公开的至少一个实现方式中。本文中不同地方出现的短语“根据...示例”或“在...示例中”不一定都指同一示例,也不一定是与其他示例相互排斥的单独或替代示例。
19.本公开存储的数据可以为时序生理数据。通常而言,生理采集设备在一个单位时间(例如1秒)采集的数据可以称为一帧(又称数据帧)。在采样时,不同的生理采集设备(例如传感器)可以有不同的通道数。例如加速度器有三个通道,ppg(photoplethysmographic,光电容积脉搏波)信号采集设备有一个通道。一帧数据的数据量与通道数和采样率成正比,在高采样率的情况下,数据量会比较大。而这些时序生理数据有按照时间查询的需求,需要一种既能快速存储数据,又能在低资源消耗的情况下按时间查询数据的存储方式。
20.为此,本公开提出一种时序生理数据的存储结构。本公开提出的存储结构分为三部分:头文件、索引文件、数据块文件。一次采集过程中的一个生理采集设备的数据可以被存储在一个头文件、一个索引文件和至少一个数据块文件中。
21.本公开中的头文件可以用来保存一次采集过程中的参数信息,例如包括生理采集设备的采样率、生理采集设备的采样通道数、生理采集设备的类型等。这里的参数信息可以是采集过程中的工程化参数。在一些实施例中,参数信息可以包括以下中的至少一项:所述时序生理数据的唯一标识、采集设备的类型、采集设备的唯一标识、采样率、采样通道数、采集开始时间、采集结束时间。
22.本公开中的索引文件可以用来存储数据块文件(下面即将详细描述)的索引信息。索引文件可以包含以下索引信息:1、起始帧索引,表示当前数据块的第一帧的索引。
23.2、结束帧索引,表示当前数据块的最后一帧的索引。
24.3、当前数据块的第一帧(又称起始帧)的时间。
25.4、当前数据块的最后一帧(又称结束帧)的时间。
26.示例性地,下表为索引文件的一个示例:在另一些实施例中,索引文件可以包含以下索引信息:1、帧开始索引(下界,包含此帧),表示当前数据块的第一帧的索引。
27.2、帧结束索引(上界,不包含此帧),表示当前数据块的最后一帧的下一帧索引。
28.3、当前数据块的第一帧的时间。
29.4、当前数据块的最后一帧的时间。
30.生理采集设备在采集过程中,采集到的新数据可能有空包(即,没有采集到数据)或者增包(即采集到的数据比理论值多),因此需要解决空包和增包造成的数据非线性增长问题。每一包数据在数据块中作为一帧存储,因为包有可能是空包、正常包或者增包,其大小不同,所以每一个数据块最终的大小也不相同,这就造成数据的存储不是线性排列的。为了解决这一问题,本公开中的索引文件针对数据块记录了此数据块的索引信息,通过调整数据帧的行数可以解决数据非线性增长问题。
31.本公开中的数据块文件可以用来存储具体的采样数据信息。针对不同类型的生理采集设备,采样数据有不同的存储方式,存储方式不同主要体现在数据块文件的结构上。在数据块文件中,可以以固定的数据类型存储采样数据,数据类型可以使用整数(例如int16、int32)、浮点数(例如float型)等计算机存储数据类型(不同的计算机语言中可能名称不同)。每个数据块文件的结构相同,一个块可以存储多帧数据。
32.在一些实施例中,数据块文件的结构如下:

示例性地,下表为数据块文件的一个示例:在这个示例中,数据帧编号为1的数据帧为空包,数据帧编号为7的数据帧为增包。
33.图1示出了根据本公开实施例的时序生理数据的存储结构示意图。如图1所示,该时序生理数据的存储结构,包括:头文件,用于存储采集所述时序生理数据时的参数信息;数据块文件,用于存储所述时序生理数据的至少一个数据帧的信息;以及索引文件,用于存储所述数据块文件的索引信息。
34.根据本公开提供的时序生理数据的存储结构,可以快速读取指定位置的数据,并且通过控制数据块文件大小可以将数据量的线性增长问题切割分段,防止采集时长过长后产生过大的内存处理瓶颈。
35.在一些实施例中,本公开中时序生理数据的采样值以二进制方式进行存储。由于数据块文件是使用二进制进行存储,通过索引可以快速读取指定位置的数据。另外,通过计算机系统基础类型进行二进制存储,不需要通过其他编码协议的二次转录,可以提高数据解析效率。
36.在一些实施例中,本公开中的时间戳为unix毫秒级时间戳。unix时间(或称posix时间)是unix或类unix系统使用的时间表示方式,从协调世界时1970年1月1日0时0分0秒起至现在的总秒数。
37.下面以一个具体的时序生理数据为例,对本公开中的时序生理数据的查询过程进行说明。
38.例如,时序生理数据的索引文件如下:该时序生理数据的数据块文件如下:比如需要查找t+12000ms至t+32000ms的数据信息。在查询时首先加载索引文件,通过遍历索引文件中的c和d信息可以定位所需时间段的数据块为第2/3/4数据块,然后通过a和b信息在数据块中寻找具体的偏移量,其中第3数据块为整块读取,从而可以快速定位数据的具体位置。
39.图2示出了根据本公开实施例的时序生理数据的查询方法的流程示意图。如图2所示,该时序生理数据的查询方法包括以下步骤:步骤s202:加载所述索引文件。
40.步骤s204:遍历所述索引文件以确定目标数据块文件。
41.步骤s206:根据所述目标数据块文件的起始数据帧和结束数据帧,确定目标数据帧。
42.根据本公开提供的时序生理数据的查询方法,可以快速读取指定位置的数据,并且通过控制数据块文件大小可以将数据量的线性增长问题切割分段,防止采集时长过长后产生过大的内存处理瓶颈。
43.图3示出了示例计算机系统300。在特定实施例中,一个或多个计算机系统300执行本文描述或示出的一个或多个方法的一个或多个步骤。在特定实施例中,一个或多个计算机系统300提供本文描述或示出的功能。在特定实施例中,在一个或多个计算机系统300上运行的软件执行本文描述或示出的一个或多个方法的一个或多个步骤,或者提供本文描述或示出的功能。特定实施例包括一个或多个计算机系统300中的一个或多个部分。本文中在适当的情况下,“计算机系统”可以包括计算设备,反之亦然。此外,在适当的情况下,“计算机系统”可以包括一个或多个计算机系统。
44.本公开包括任何合适数量的计算机系统300。本公开包括采用任何合适的物理形式的计算机系统300。作为示例而非限制,计算机系统300可以是嵌入式计算机系统、片上系统(soc)、单板计算机系统(sbc)(例如,计算机模块(computer-on-module,com)或系统模块(system-on-module,som))、台式计算机系统、膝上型或笔记本计算机系统、交互式信息亭、主机、计算机系统网、移动电话、个人数字助理(pda)、服务器、平板计算机系统或这些中的组合。在适当的情况下,计算机系统300可以包括一个或多个计算机系统300;可以为集中式的或分布式的;可以横跨多个位置;可以横跨多台机器;可以横跨多个数据中心;或者可以驻留在云中,其可以包括一个或多个网络中的一个或多个云组件。在适当的情况下,一个或多个计算机系统300可以执行本文描述或示出的一个或多个方法的一个或多个步骤,而没有实质的空间或时间限制。作为示例而非限制,一个或多个计算机系统300可以实时或以批处理模式执行本文描述或示出的一个或多个方法的一个或多个步骤。在适当的情况下,一个或多个计算机系统300可以在不同的时间或不同的位置执行本文描述或示出的一个或多个方法的一个或多个步骤。
45.在特定实施例中,计算机系统300包括处理器302、内存304、硬盘306、输入/输出(i/o)接口308、通信接口310和总线312。尽管本公开描述并示出的特定计算机系统具有特定数量的特定组件,且这些组件以特定的方式布置,但是本公开也包括具有任何适当数量的任何适当组件的任何适当计算机系统,且这些组件可以以任何适当的方式布置。
46.在特定实施例中,处理器302包括用于执行指令(例如构成计算机程序的指令)的硬件。作为示例而非限制,为了执行指令,处理器302可以从内部寄存器、内部缓存、内存304或硬盘306中检索(或获取)指令;解码并执行该指令;然后将一个或多个结果写入内部寄存器、内部缓存、内存304或硬盘306。在特定实施例中,处理器302可以包括用于数据、指令或地址的一个或多个内部缓存。本公开包括处理器302在适当的情况下包括任何适当数量的任何适当的内部缓存。作为示例而非限制,处理器302可以包括一个或多个指令缓存以及一个或多个数据缓存。指令缓存中的指令可以是内存304或硬盘306中的指令的副本,并且指令缓存可以加速处理器302对这些指令的检索。数据缓存中的数据可以是内存304或硬盘306中的数据的副本,用以由在处理器302处执行的指令操作;可以是在处理器302处执行的先前指令的结果,用以由在处理器302处执行的后续指令访问或写入内存304或硬盘306;或可以是其他合适的数据。数据缓存可以加速处理器302的读或写操作。在特定实施例中,处理器302可以包括用于数据、指令或地址的一个或多个内部寄存器。本公开包括处理器302在适当的情况下包括任何适当数量的任何适当的内部寄存器。在适当的情况下,处理器302可以包括一个或多个算术逻辑单元(arithmetic logic unit,alu);是多核处理器;或者包括一个或多个处理器302。尽管本公开描述并示出了特定的处理器,但是本公开也包括任何
合适的处理器。
47.在特定实施例中,内存304包括主内存,用于存储由处理器302执行的指令或由处理器302操作的数据。作为示例而非限制,计算机系统300可以将指令从硬盘306或另一个源(例如,另一个计算机系统300)加载到内存304。处理器302然后可以将指令从内存304加载到内部寄存器或内部缓存。为了执行指令,处理器302可以从内部寄存器或内部缓存中检索指令并解码。在指令执行期间或之后,处理器302可以将一个或多个结果(可以是中间或最终结果)写入内部寄存器或内部缓存。处理器302然后可以将这些结果中的一个或多个写入内存304。在特定实施例中,处理器302仅执行一个或多个内部寄存器或内部缓存或内存304(与硬盘306或其他源相反)中的指令,并且仅对一个或多个内部寄存器或内部缓存或内存304(与硬盘306或其他源相反)中的数据进行操作。一个或多个内存总线(每个内存总线可以包括地址总线和数据总线)可以将处理器302耦合到内存304。如下所述,总线312可以包括一个或多个内存总线。在特定实施例中,一个或多个内存管理单元(memory management unit,mmu)驻留在处理器302和内存304之间,并方便处理器302所请求的对内存304的访问。在特定实施例中,内存304包括随机存取存储器(random access memory,ram)。在适当的情况下,该ram可以是易失性存储器。在适当的情况下,该ram可以是动态ram(dram)或静态ram(sram)。此外,在适当的情况下,该ram可以是单端口或多端口ram。本公开包括任何合适的ram。在适当的情况下,内存304可以包括一个或多个内存304。尽管本公开描述并示出了特定的内存,但是本公开也包括任何合适的内存。
48.在特定实施例中,硬盘306包括用于数据或指令的大容量硬盘。作为示例而非限制,硬盘306可以包括硬盘驱动器(hard disk drive,hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(universal serial bus,usb)驱动器或这些中组合。在适当的情况下,硬盘306可以包括可移动或不可移动(或固定)介质。在适当的情况下,硬盘306可以在计算机系统300的内部或外部。在特定实施例中,硬盘306是非易失性固态存储器。在特定实施例中,硬盘306包括只读存储器(read-only memory,rom)。在适当的情况下,该rom可以是掩模编程的rom、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、电改写rom (earom)、闪存或这些中的组合。本公开包括采用任何合适的物理形式的大容量硬盘306。在适当的情况下,硬盘306可以包括一个或多个硬盘控制单元,以便于处理器302和硬盘306之间的通信。在适当的情况下,硬盘306可以包括一个或多个硬盘306。尽管本公开描述并示出了特定的硬盘,但是本公开也包括任何合适的硬盘。
49.在特定实施例中,i/o接口308包括为计算机系统300和一个或多个i/o设备之间的通信提供一个或多个接口的硬件、软件或两者。在适当的情况下,计算机系统300可以包括一个或多个i/o设备。这些i/o设备中的一个或多个可以实现人和计算机系统300之间的通信。作为示例而非限制,i/o设备可以包括键盘、键盘板、麦克风、监视器、鼠标、打印机、扫描器、扬声器、静态照相机、触笔、图形输入板、触摸屏、轨迹球、摄像机、其他合适的i/o设备或者这些设备中的组合。本公开包括任何合适的i/o设备和用于它们的任何合适的i/o接口308。在适当的情况下,i/o接口308可以包括一个或多个设备或软件驱动,使得处理器302能够驱动这些i/o设备中的一个或多个。在适当的情况下,i/o接口308可以包括一个或多个i/o接口308。尽管本公开描述并示出了特定的i/o接口,但是本公开也包括任何合适的i/o接口。
50.在特定实施例中,通信接口310包括为计算机系统300和一个或多个其他计算机系统300或一个或多个网络之间的通信(例如,基于分组的通信)提供一个或多个接口的硬件、软件或两者。作为示例而非限制,通信接口310可以包括用于与以太网或其他有线网络进行通信的网络接口控制器(network interface controller,nic)或网络适配器,或者用于与诸如wi-fi网络的无线网络进行通信的无线nic(wnic)或无线适配器。本公开包括任何合适的网络及其任何合适的通信接口310。作为示例而非限制,计算机系统300可以与自组织网络、个人区域网(pan)、局域网(lan)、广域网(wan)、城域网(man)或者互联网的一个或多个部分或者这些中的组合进行通信。一个或多个这些网络的一个或多个部分可以是有线的或无线的。作为示例,计算机系统300可以与无线pan(wpan)(例如,蓝牙wpan)、wi-fi网络、wi-max网络、蜂窝电话网络(例如,全球移动通信系统(gsm)网络)、或其他合适的无线网络或这些网络中的组合进行通信。在适当的情况下,计算机系统300可以包括用于任何这些网络的任何合适的通信接口310。在适当的情况下,通信接口310可以包括一个或多个通信接口310。尽管本公开描述并示出了特定的通信接口,但是本公开也包括任何合适的通信接口。
51.在特定实施例中,总线312包括将计算机系统300的组件彼此耦合的硬件、软件或两者。作为示例而非限制,总线312可以包括加速图形接口(accelerate graphical port,agp)或其他图形总线、扩展工业标准结构(extended industry standard architecture,eisa)总线、前端总线(front side bus,fsb)、超传输(ht)互连、工业标准体系结构(industry standard architecture,isa)总线、infiniband互连、低引脚数(low pin count,lpc)总线、内存总线、微通道体系结构(micro channel architecture,mca)总线、外围组件互连(peripheral component interconnect,pci)总线、pci-express(pcie)总线、串行高级技术附加装置(serial advanced technology attachment,sata)、视频电子标准协会局域(video electronics standards association local,vlb)总线或其他合适的总线或这些总线中的组合。在适当的情况下,总线312可以包括一个或多个总线312。尽管本公开描述并示出了特定的总线,但是本公开也包括任何合适的总线或互连。
52.在本文中,一个或多个计算机可读非暂时性存储介质可以包括一个或多个基于半导体的或其他集成电路(ic)(例如,现场可编程门阵列(fpga)或专用ic(asic))、硬盘驱动器(hdd)、混合硬盘驱动器(hhd)、光盘、光盘驱动器(odd)、磁光盘、磁光盘驱动器、软盘、软盘驱动器(fdd)、磁带、固态驱动器(ssd)、ram驱动器、任何其他合适的计算机可读非暂时性存储介质。计算机可读非暂时性存储介质可以是易失性的、非易失性的或者易失性和非易失性的组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1