掌桥专利:专业的专利平台
掌桥专利
首页

数据处理方法、装置、计算设备及计算机存储介质

文献发布时间:2023-06-19 11:29:13


数据处理方法、装置、计算设备及计算机存储介质

技术领域

本发明实施例涉及数据存储技术领域,具体涉及一种数据处理方法、装置、计算设备及计算机存储介质。

背景技术

流数据是一个随时间延续无限增长的动态数据集合,广泛应用于网络监控、航空航天等技术领域。

现有的流数据存储方法是将获取的实时数据进行流式计算后加载到目标端数据源。在程序自身内存或外部的键值(key-value,KV)数据库缓存该目标数据源中的数据。

本发明实施例的发明人在实践中发现:现有的流数据处理方式直接对内存或KV数据库进行处理,处理程序复杂。

发明内容

鉴于上述问题,本发明实施例提供了一种数据处理方法、装置、计算设备及计算机存储介质,通过本发明实施例,可以直接通过SQL对数据进行操作。

根据本发明实施例的一个方面,提供了一种数据处理方法,所述方法包括:

获取待存储数据;

对所述待存储数据进行结构化,得到结构化数据;

如果初始化的SQLite数据库中存在目标数据表,则将所述结构化数据存储至所述目标数据表中;

如果初始化的SQLite数据库中不存在目标数据表,则在所述初始化的SQLite数据库中构建可加载数据表;

将所述结构化数据存储至所述可加载数据表中。

在一种可选的方式中,所述如果初始化的SQLite数据库中存在目标数据表,则将所述结构化数据存储至所述目标数据表中包括:

根据预设时间窗口将所述结构化数据分为多个结构化数据片段;

将所述多个结构化数据片段存储至所述目标数据表中。

在一种可选的方式中,所述如果初始化的SQLite数据库中存在目标数据表,则将所述结构化数据存储至所述目标数据表中包括:

根据预设数据条数将所述结构化数据分为多个结构化数据片段;

将所述多个结构化数据片段存储至所述目标数据表中。

在一种可选的方式中,在获取待存储数据之前,所述方法还包括:初始化SQLite数据库,所述SQLite数据库中包含静态数据。

在一种可选的方式中,在将所述结构化数据存储至所述可加载数据表中之后,所述方法包括:

通过SQL操作对SQLite数据库中所存储的结构化数据进行处理。

在一种可选的方式中,所述通过SQL操作对SQLite数据库中所存储的结构化数据进行处理,包括:

通过SQL操作对SQLite数据库中所存储的数据进行查询、添加或删除。

在一种可选的方式中,所述通过SQL操作对SQLite数据库中所存储的数据进行查询、添加或删除,包括:

通过SQL操作对SQLite数据库中的数据表按照列进行查询;

通过SQL操作对SQLite数据库中的数据表按照行进行添加或删除。

根据本发明实施例的另一方面,提供了一种数据处理装置,所述装置包括:

获取模块,用于获取待存储数据;

结构化模块,用于对所述待存储数据进行结构化,得到结构化数据;

第一存储模块,用于当初始化的SQLite数据库中存在目标数据表时,将所述结构化数据存储至所述目标数据表中;

构建模块,用于当初始化的SQLite数据库中不存在目标数据表时,在所述初始化的SQLite数据库中构建可加载数据表;

第二存储模块,用于将所述结构化数据存储至所述可加载数据表中。

根据本发明实施例的又一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述的一种数据处理方法。

根据本发明实施例的还一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使所述处理器执行上述的一种数据处理方法。

本发明实施例通过SQLite数据库对流数据的待存储数据进行存储,SQLite数据库不需要进行配置,因此,当SQLite数据库存在目标数据表时,可以直接存储待存储数据,当SQLite数据库不存在目标数据表时,可以在待存储数据存储过程中新建可加载数据表,用于存储待存储数据,SQLite数据库内存结构简单,简化了数据存储的操作流程,避免了复杂的程序编码。

上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本发明实施例提供的一种数据处理方法的流程图;

图2示出了本发明另一实施例提供的一种数据处理方法的流程图;

图3示出了本发明实施例提供的一种数据处理装置的结构示意图;

图4示出了本发明实施例提供的计算设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。

本发明实施例的应用场景是网络监控、航空航天数据监控等技术领域中所获取的流数据处理。将流数据存储在SQLite数据库中,通过SQL操作SQLite数据库。由于SQL语言简洁,从而降低了处理程序的复杂度。下面对本发明各具体实施例进行说明。

图1示出了本发明实施例的一种数据处理方法的流程图。如图1所示,该方法包括以下步骤:

步骤110:获取待存储数据。

其中,待存储数据是某一时间段内缓存的流数据。流数据的具体类型与具体的应用场景相关。例如,当应用场景为航天数据采集时,流数据是实时的航天数据相关的指标数据。该指标数据的来源可以是消息队列、实时文件或者实时推送的消息,本发明实施例并不对流数据的来源做限定。待存储数据是从流数据缓存时相应的内存中获取的,流数据产生后缓存在某一存储空间中,以待存储。由于流数据是随时间延续而不断增长的动态数据,数据量较大,因此,在获取待存储数据时,可以按照一定的频率周期性的获取待存储数据。

步骤120:对待存储数据进行结构化,得到结构化数据。

其中,待存储数据的数据类型一般是二进制或者JS对象简谱(JavaScriptObjectNotation)类型的数据,无法写入SQLite数据库。因此,需要对待存储数据进行结构化,得到可以写入SQLite数据库的结构化数据。在对待存储数据进行结构化时,使用反序列化方法进行结构化。待存储数据一般是经过对象序列化之后生成的字节序列;反序列化方法是将字节序列恢复为可以写入SQLite数据库的对象的过程。

步骤130:如果初始化的SQLite数据库中存在目标数据表,则将该结构化数据存储至目标数据表中。

SQLite在获取待存储数据之前,对SQLite数据库进行初始化。由于SQLite数据库在第一次建立的时候即读取SQLite数据库中存储的数据。因此,在对SQLite数据库进行初始化时,在新建的SQLite数据库中存储一些静态数据。静态数据包括历史获取的可在SQLite数据库中存储的一些静态数据。例如,数据指标以及每一数据指标所对应的具体数值。新建的SQLite数据库默认类型为“.db3”、“.db”或者“.sqlite”具体的后缀名称可以由本领域技术人员进行人为定义,本发明实施例并不以此为限。在新建SQLite数据库后,可以在初始化过程中,在新建的SQLite数据库中新建数据表,也可以在存储待存储数据的过程中新建的数据表,本发明实施例并不以此为限。新建的数据表包含若干列,每一列表示的具体内容可以人为设定,新建的数据表用于存储结构化的待存储数据。

目标数据表是可直接导入待存储数据的一些数据表。在一些实施例中,初始化的SQLite数据库中包含的数据表所存储的数据与待存储数据为同类型数据,则待存储数据可直接导入目标数据表中。例如,初始化SQLite数据库时,在SQLite数据库中存储的静态数据与待存储数据均为某些固定指标的数据,则可以直接将待存储数据存储至目标数据表中对应的数据指标下。

步骤140:如果初始化的SQLite数据库中不存在目标数据表,则在初始化的SQLite数据库中构建可加载数据表。

如果初始化的SQLite数据库中不存在目标数据表,则通过再次初始化SQLite数据库构建可加载数据表。其中,对SQLite再次初始化包括再次新建可加载数据表,新建的可加载数据表可以用于存储待存储数据。例如,在对SQLite数据库进行初始化时,初始化的SQLite包含表1,表1可用于存储数据指标为A、B、C所对应的待存储数据。在获取待存储数据的过程中,获取到的待存储数据为数据指标D所对应的待存储数据,无法存储至初始化的表1中。在这种情况下,通过对SQLite再次进行初始化,建立表2,用于存储数据指标D所对应的待存储数据。在另外一些实施例中,可以通过再次初始化对表1进行更新,增加数据指标D所对应的待存储数据,不需要重新建立一个可加载数据表。

步骤150:将结构化数据表存储至可加载数据表中。

如果初始化的SQLite数据库不存在目标数据表,则将待存储数据存储在步骤140新建的可加载数据表中。

本发明实施例通过SQLite数据库对流数据的待存储数据进行存储,SQLite数据库不需要进行配置,因此,当SQLite数据库存在目标数据表时,可以直接存储待存储数据,当SQLite数据库不存在目标数据表时,可以在待存储数据存储过程中新建可加载数据表,用于存储待存储数据,SQLite数据库内存结构简单,简化了数据存储的操作流程,避免了复杂的程序编码。

在一些实施例中,由于流数据存在连续性和无界性,在进行数据存储时,可以同时存储一个范围内的待存储数据。在一些实施例中,待存储数据的存储范围通过预设时间窗口进行划分。根据预设时间窗口将结构化的待存储数据分为多个结构化数据片段,每一个结构化数据片段位于一个预设时间窗口内。将多个结构化数据片段存储至目标数据表中。在另外一些实施例中,待存储数据的存储范围通过预设数据条数进行划分。根据预设数据条数将结构化数据分为多个结构化数据片段,每一个结构化数据片段包含有预设数据条数的结构化数据。将多个结构化数据片段存储至目标数据表中。通过上述方式,本发明实施例提高了数据存储的效率。

图2示出了本发明另一个实施例的一种数据处理方法的流程图。如图2所示,该方法包括以下步骤:

步骤210:获取待存储数据。

步骤220:对待存储数据进行结构化,得到结构化数据。

步骤230:如果初始化的SQLite数据库中存在目标数据表,则将结构化数据存储至目标数据表中。

步骤240:如果初始化的SQLite数据库中不存在目标数据表,则在初始化的SQLite数据库中构建可加载数据表。

步骤250:将结构化数据存储至可加载数据表中。

步骤210~步骤250的具体说明请参照上一实施例中的步骤110~步骤150的说明,在此不再赘述。

步骤260:通过SQL操作对SQLite数据库中所存储的结构化数据进行处理。

其中,SQLite数据库支持SQL操作。通过SQL语句可以实现对SQLite数据库中所存储的数据的数据处理。该数据处理包括但不仅限于数据的查询、添加或删除。

在进行数据查询时,通过SQLite中预设的查询逻辑可以直接从SQLite数据库的数据表中获取数据。在查询数据时,可以通过数据表的名称进行查找,也可以通过数据表某一列所表示的数据指标的名称进行查找。查询结果以数据表的形式返回。

在进行数据添加时,数据以行的形式添加至数据库中某一数据表中。通过SQLite中相应的插入数据指令,可以将数据插入数据库中的某一数据表中。在插入数据时,需要指明所插入数据对应的列。每一列所表示的数据指标和所插入数据的具体数据相对应。

在进行数据删除时,可以删除SQLite数据库中的某一数据表,也可以删除SQLite数据库中某一数据表中的选定行。值得说明的是,在不选定行的情况下,默认删除SQLite数据库中指定的整个数据表。

本发明实施例通过SQL语句对SQLite所存储的结构化数据进行操作,实现了高效数据处理。

图3示出了本发明实施例的结构示意图。如图3所示,该装置包括:获取模块310,用于获取待存储数据;结构化模块320,用于对所述待存储数据进行结构化,得到结构化数据;第一存储模块330,用于当初始化的SQLite数据库中存在目标数据表时,将所述结构化数据存储至所述目标数据表中;构建模块340,用于当初始化的SQLite数据库中不存在目标数据表时,在所述初始化的SQLite数据库中构建可加载数据表;第二存储模块350,用于将所述结构化数据存储至所述可加载数据表中。

在一种可选的方式中,第一存储模块330进一步用于:根据预设时间窗口将所述结构化数据分为多个结构化数据片段;将所述多个结构化数据片段存储至所述目标数据表中。

在一种可选的方式中,第一存储模块330进一步用于:根据预设数据条数将所述结构化数据分为多个结构化数据片段;将所述多个结构化数据片段存储至所述目标数据表中。

在一种可选的方式中,所述装置还包括初始化模块360,用于初始化SQLite数据库,所述SQLite数据库中包含静态数据。

在一种可选的方式中,所述装置还包括数据处理模块370,用于通过SQL操作对SQLite数据库中所存储的结构化数据进行处理。

在一种可选的方式中,所述处理模块370进一步用于,通过SQL操作对SQLite数据库中所存储的数据进行查询、添加或删除。

在一种可选的方式中,所述处理模块370进一步用于:通过SQL操作对SQLite数据库中的数据表按照列进行查询;通过SQL操作对SQLite数据库中的数据表按照行进行添加或删除。

本发明实施例通过SQLite数据库对流数据的待存储数据进行存储,SQLite数据库不需要进行配置,因此,当SQLite数据库存在目标数据表时,可以直接存储待存储数据,当SQLite数据库不存在目标数据表时,可以在待存储数据存储过程中新建可加载数据表,用于存储待存储数据,SQLite数据库内存结构简单,简化了数据存储的操作流程,避免了复杂的程序编码。

本发明实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的一种数据处理方法。

图4示出了本发明实施例的一种计算设备的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。

如图4所示,该计算设备可以包括:处理器(processor)402、通信接口(Communications Interface)404、存储器(memory)406、以及通信总线408。

其中:处理器402、通信接口404、以及存储器406通过通信总线408完成相互间的通信。通信接口404,用于与其它设备比如客户端或其它服务器等的网元通信。处理器402,用于执行程序410,具体可以执行上述用于数据处理方法实施例中的相关步骤。

具体地,程序410可以包括程序代码,该程序代码包括计算机操作指令。

处理器402可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。

存储器406,用于存放程序410。存储器406可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。

程序410具体可以用于使得处理器402执行如图1所示的步骤110~步骤150、图2所示的步骤210~步骤260以及实现图3中模块310~模块370的功能。

在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。

相关技术
  • 数据处理方法、装置、计算设备及计算机存储介质
  • 点云数据处理方法、装置、计算设备及计算机存储介质
技术分类

06120112941690