CN109710611A - 存储表数据的方法、查询表数据的方法、装置及存储介质 - Google Patents
存储表数据的方法、查询表数据的方法、装置及存储介质 Download PDFInfo
- Publication number
- CN109710611A CN109710611A CN201811590576.2A CN201811590576A CN109710611A CN 109710611 A CN109710611 A CN 109710611A CN 201811590576 A CN201811590576 A CN 201811590576A CN 109710611 A CN109710611 A CN 109710611A
- Authority
- CN
- China
- Prior art keywords
- field
- tuple
- data
- fields
- data tuple
- 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种存储表数据的方法、查询表数据的方法、装置及存储介质,方法包括:从原始数据表中获取待处理的多个原始数据元组,所述多个原始数据元组包含字段值相同的第一字段集合;根据所述多个原始数据元组中第二字段集合的字段值生成字段数组,所述第二字段集合为所述多个原始数据元组中除所述第一字段集合之外的字段集合;根据所述第一字段集合的字段值和所述字段数组生成对应于所述多个原始数据元组的一个待存数据元组;存储所述待存数据元组。本申请可以实现将多个原始数据元组压缩为一个待存数据元组,由此可以降低对线上存储空间的占用,并且可以减少后续数据查询过程中所读取的数据量。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种存储表数据的方法、查询表数据的方法、装置及存储介质。
背景技术
随着“大数据”时代的到来,越来越多的企业开始挖掘用户行为数据的商业价值,利用用户行为数据进行精准有效的数字营销。而这些数据在带给企业巨大价值的同时,也为企业施加了数据存储方面的巨大压力。
现有的数据存储方案在采用列式存储表的基础上,主要通过将超过时限的数据归档的方式来降低对线上存储空间的占用。然而这种方案会给后续数据的使用带来极大不便。当需要使用已归档的数据时,须耗费很长时间将数据从存储设备中拉回到线上存储空间,当使用数据后再将数据重新归档,导致数据的查询使用过程中占用较多的网络带宽,且数据查询耗费的时间较长,效率较低。
发明内容
有鉴于此,本申请提供一种存储表数据的方法、查询表数据的方法、装置及存储介质,以解决现有的数据存储技术方案的问题。
具体地,本申请是通过如下技术方案实现的:
根据本申请的第一方面,提出了一种存储表数据的方法,包括:
从原始数据表中获取待处理的多个原始数据元组,所述多个原始数据元组包含字段值相同的第一字段集合;
根据所述多个原始数据元组中第二字段集合的字段值生成字段数组,所述第二字段集合为所述多个原始数据元组中除所述第一字段集合之外的字段集合;
根据所述第一字段集合的字段值和所述字段数组生成对应于所述多个原始数据元组的一个待存数据元组;
存储所述待存数据元组。
在一实施例中,所述方法还包括:
确定所述第一字段集合中目标使用字段的比例;
若所述比例超过预设比例阈值,则执行所述根据所述多个原始数据元组中第二字段集合的字段值生成字段数组的操作。
在一实施例中,所述根据所述多个原始数据元组中第二字段集合的字段值生成字段数组,包括:
确定每个所述原始数据元组中第二字段集合的字段值以及第二字段集合的字段标识;
将所述字段标识和所述字段值作为每个所述原始数据元组对应的元素,生成字段数组。
在一实施例中,所述根据所述第一字段集合的字段值和所述字段数组生成对应于所述多个原始数据元组的一个待存数据元组,包括:
确定所述原始数据元组的数量;
将所述数量、所述第一字段集合的字段值和所述字段数组生成对应于所述多个原始数据元组的一个待存数据元组。
根据本申请的第二方面,提出了一种查询表数据的方法,所述表数据预先基于上述任一项所述的方法进行存储,包括:
接收用于查询目标数据元组信息的查询条件,所述查询条件中包含所述目标数据元组所属目标数据表的表格标识以及所述目标数据元组中包含的至少一个目标字段;
从所述目标数据表中查询包含所述目标字段的目标数据元组,并返回所述目标数据元组。
在一实施例中,所述从所述目标数据表中查询包含所述目标字段的目标数据元组,并返回所述目标数据元组,包括:
从所述目标数据表中获取包含所述目标字段的待存数据元组;
将所述包含所述目标字段的待存数据元组还原为多个原始数据元组,并返回所述多个原始数据元组。
在一实施例中,述目标数据元组信息包括所述目标数据元组的统计量;
所述方法还包括:
基于从所述目标数据表中查询的包含所述目标字段的目标数据元组,确定所述目标数据元组的统计量,并返回所述统计量。
根据本申请的第三方面,提出了一种存储表数据的装置,包括:
数据元组获取模块,用于从原始数据表中获取待处理的多个原始数据元组,所述多个原始数据元组包含字段值相同的第一字段集合;
字段数组生成模块,用于根据所述多个原始数据元组中第二字段集合的字段值生成字段数组,所述第二字段集合为所述多个原始数据元组中除所述第一字段集合之外的字段集合;
待存元组生成模块,用于根据所述第一字段集合的字段值和所述字段数组生成对应于所述多个原始数据元组的一个待存数据元组;
待存元组存储模块,用于存储所述待存数据元组。
根据本申请的第四方面,提出了一种查询表数据的装置,所述表数据预先基于上述的装置进行存储,包括:
查询条件接收模块,用于接收用于查询目标数据元组信息的查询条件,所述查询条件中包含所述目标数据元组所属目标数据表的表格标识以及所述目标数据元组中包含的至少一个目标字段;
数据元组查询模块,用于从所述目标数据表中查询包含所述目标字段的目标数据元组,并返回所述目标数据元组。
根据本申请的第五方面,提出了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述任一所述的存储表数据的方法。
根据本申请的第六方面,提出了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述任一所述的查询表数据的方法。
本申请通过从原始数据表中获取待处理的多个原始数据元组,并根据所述多个原始数据元组中第二字段集合的字段值生成字段数组,然后根据所述第一字段集合的字段值和所述字段数组生成对应于所述多个原始数据元组的一个待存数据元组,进而存储所述待存数据元组,可以实现将多个原始数据元组压缩为一个待存数据元组,由此可以降低对线上存储空间的占用,并且可以减少后续数据查询过程中所读取的数据量,即降低查询IO(Input and Output,输入和输出)。
附图说明
图1是本申请一示例性实施例示出的一种存储表数据的方法的流程图;
图2是本申请又一示例性实施例示出的一种存储表数据的方法的流程图;
图3是本申请一示例性实施例示出的如何生成字段数组的流程图;
图4是本申请一示例性实施例示出的如何生成待存数据元组的流程图;
图5是本申请一示例性实施例示出的一种查询表数据的方法的流程图;
图6是本申请一示例性实施例示出的如何查询目标数据元组的流程图;
图7是本申请又一示例性实施例示出的一种查询表数据的方法的流程图;
图8是本申请一示例性实施例示出的一种存储表数据的装置的结构框图;
图9是本申请又一示例性实施例示出的一种存储表数据的装置的结构框图;
图10是本申请一示例性实施例示出的一种查询表数据的装置的结构框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
随着“大数据”时代的到来,越来越多的企业开始挖掘用户行为数据的商业价值,利用用户行为数据进行精准有效的数字营销。而这些数据在带给企业巨大价值的同时,也为企业施加了数据存储方面的巨大压力。
现有技术中为了提高数据查询的速度,通常采用列式存储表来进行数据存储,即令一列中的数据在存储介质中是连续存储的。在此基础上,还通过将超过一定时限的数据归档的方式来降低对线上存储空间的占用。
然而上述方案会给后续数据的使用带来极大不便——当需要使用已归档的数据时,须耗费很长时间将数据从存储设备中拉回到线上存储空间;并且,当使用数据后需要再将数据重新归档,导致数据的查询使用过程中占用较多的网络带宽,且数据查询耗费的时间较长,效率较低。
有鉴于此,本申请提供一种存储表数据的方法、查询表数据的方法、装置及存储介质,以解决现有的数据存储技术方案的问题。
图1是本申请第一示例性实施例示出的一种存储表数据的方法的流程图;该实施例可以用于存储表数据的服务端(例如,一台服务器和多台服务器组成的服务器集群等)。如图1所示,该方法包括步骤S101-S104:
在步骤S101中:从原始数据表中获取待处理的多个原始数据元组,所述多个原始数据元组包含字段值相同的第一字段集合。
在一实施例中,上述原始数据表可以包括服务端中预先采用列式存储表存储的原始数据,本实施例对此不进行限定。
在一实施例中,服务端可以先从数据库中获取上述原始数据表,进而从该原始数据表中获取待处理的多个原始数据元组。
其中,上述多个原始数据元组包含字段值相同的第一字段集合。
在一实施例中,上述第一字段集合中可以包含一个字段或多个字段,本实施例对此不进行限定。
举例来说,服务端从数据库中获取的原始数据表如下表一所示:
表一
字段A | 字段B | 字段C | 字段H | 字段I | 字段J | |
1 | T1 | T2 | T3 | T111a | T112a | T113a |
2 | T1 | T2 | T3 | T111b | T112b | T113b |
3 | T1 | T2 | T3 | T111c | T112c | T113c |
4 | T1 | T2 | T3 | T111d | T112d | T113d |
5 | T1 | T2 | T3 | T111e | T112e | T113e |
如表一所示,上述5条原始数据元组中,字段A、字段B和字段C分别具有相同的字段值,即字段A的字段值均为“T1”,字段B的字段值均为“T2”,字段C的字段值均为“T3”。因此,字段A、字段B和字段C可以组成第一字段集合{字段A,字段B,字段C},且第一字段集合{字段A,字段B,字段C}的字段值为{T1,T2,T3}。
在步骤S102中:根据所述多个原始数据元组中第二字段集合的字段值生成字段数组,所述第二字段集合为所述多个原始数据元组中除所述第一字段集合之外的字段集合。
在一实施例中,当从原始数据表中获取待处理的多个原始数据元组后,还可以确定多个原始数据元组中除所述第一字段集合之外的第二字段集合。
仍以上述表一所示原始数据表为例,当确定字段值相同的第一字段集合{字段A,字段B,字段C}后,还可以确定字段值不相同的第二字段集合{字段H,字段I,字段J}。
在此基础上,可以确定上述5条原始数据元组的第二字段集合{字段H,字段I,字段J}的字段值分别为(T111a,T112a,T113a)、(T111b,T112b,T113b)、(T111c,T112c,T113c)、(T111d,T112d,T113d)以及(T111e,T112e,T113e)。
在一实施例中,当确定上述5条原始数据元组的第二字段集合的字段值后,可以将该5条原始数据元组中第二字段集合的字段值按顺序放入一个组合中,即可得到如下字段数组:
{(T111a,T112a,T113a),(T111b,T112b,T113b),(T111c,T112c,T113c),(T111d,T112d,T113d),(T111e,T112e,T113e)}。
在步骤S103中:根据所述第一字段集合的字段值和所述字段数组生成对应于所述多个原始数据元组的一个待存数据元组。
在一实施例中,当确定多个原始数据元组中第一字段集合的字段值以及根据多个原始数据元组中第二字段集合的字段值生成字段数组后,可以根据该第一字段集合的字段值和该字段数组,生成对应于上述多个原始数据元组的一个待存数据元组。
举例来说,仍以上述表一所示原始数据表为例,当确定第一字段集合{字段A,字段B,字段C}的字段值{T1,T2,T3}以及根据第二字段集合的字段值生成的字段数组{(T111a,T112a,T113a),(T111b,T112b,T113b),(T111c,T112c,T113c),(T111d,T112d,T113d),(T111e,T112e,T113e)}后,可以对该字段值{T1,T2,T3}和字段数组{(T111a,T112a,T113a),(T111b,T112b,T113b),(T111c,T112c,T113c),(T111d,T112d,T113d),(T111e,T112e,T113e)}进行合成,得到对应于上述5条原始数据元组的一个待存数据元组[T1,T2,T3,{(T111a,T112a,T113a),(T111b,T112b,T113b),(T111c,T112c,T113c),(T111d,T112d,T113d),(T111e,T112e,T113e)}]。
在步骤S104中:存储所述待存数据元组。
在一实施例中,当得到对应于上述多个原始数据元组的一个待存数据元组后,可以对该待存数据元组进行存储。
在一实施例中,服务端采用列式存储表存储的待存数据元组可以如下表二所示:
表二
由上述描述可知,本实施例通过从原始数据表中获取待处理的多个原始数据元组,并根据所述多个原始数据元组中第二字段集合的字段值生成字段数组,然后根据所述第一字段集合的字段值和所述字段数组生成对应于所述多个原始数据元组的一个待存数据元组,进而存储所述待存数据元组,可以实现将多个原始数据元组压缩为一个待存数据元组,由此可以降低对线上存储空间的占用,并且可以减少后续数据查询过程中所读取的数据量,即降低查询IO(Input and Output,输入和输出)。
图2是本申请又一示例性实施例示出的一种存储表数据的方法的流程图;该实施例可以用于存储表数据的服务端(例如,一台服务器和多台服务器组成的服务器集群等)。如图2所示,该方法包括步骤S201-S205:
在步骤S201中,从原始数据表中获取待处理的多个原始数据元组,所述多个原始数据元组包含字段值相同的第一字段集合。
在步骤S202中,确定所述第一字段集合中目标使用字段的比例。
在一实施例中,当从原始数据表中获取待处理的多个原始数据元组后,可以确定该多个原始数据元组中第一字段集合中目标使用字段的比例。
在一实施例中,上述目标使用字段可以由开发人员根据实际业务需要进行设置,例如可以将其设置为实际业务中使用频率或查询频率高于预设阈值的字段等,本实施例对此不进行限定。
在另一实施例中,还可以基于上述原始数据表的监控日志确定上述目标使用字段。
值得说明的是,基于上述原始数据表的监控日志确定目标使用字段的方式可以参见现有技术中的解释和说明,本实施例对此不进行限定。
在一实施例中,当获取待处理的多个原始数据元组后,可以确定第一字段集合中的字段总数量,并确定该第一字段集合中目标使用字段的数量,进而可以计算目标使用字段的数量与字段总数量的比值,即可得到第一字段集合中目标使用字段的比例。
举例来说,若确定第一字段集合中的字段总数量为“10”,且确定该第一字段集合中目标使用字段的数量为“8”,则可以计算目标使用字段的数量与字段总数量的比值为“8/10=0.8”,因而可得到第一字段集合中目标使用字段的比例为0.8。
在步骤S203中,若所述比例超过预设比例阈值,则根据所述多个原始数据元组中第二字段集合的字段值生成字段数组,所述第二字段集合为所述多个原始数据元组中除所述第一字段集合之外的字段集合。
在一实施例中,可以由开发人员根据实际业务需要或业务经验预先设置上述比例阈值,如设置为0.6、0.7或0.8等,本实施例对此不进行限定。
举例来说,若预设比例阈值为0.7,且计算得到第一字段集合中目标使用字段的比例为0.8,则可以确定所述比例超过预设比例阈值,进而可以根据所述多个原始数据元组中第二字段集合的字段值生成字段数组。
在步骤S204中,根据所述第一字段集合的字段值和所述字段数组生成对应于所述多个原始数据元组的一个待存数据元组。
在步骤S205中,存储所述待存数据元组。
其中,步骤S201、S203-S205的相关解释和说明可以参见上述实施例,在此不进行赘述。
由上述描述可知,本实施例通过确定第一字段集合中目标使用字段的比例,进而当比例超过预设比例阈值时,执行所述根据所述多个原始数据元组中第二字段集合的字段值生成字段数组的操作,可以确保后续得到的待存数据元组中目标使用字段占第一字段集合中字段总数的比例超过预设比例阈值,进而可以确保后续基于待存数据元组查询目标使用字段的效率,满足用户需求。
图3是本申请一示例性实施例示出的如何生成字段数组的流程图;本实施在上述实施例的基础上以如何生成字段数组为例进行示例性说明。如图3所示,步骤S102中所述根据所述多个原始数据元组中第二字段集合的字段值生成字段数组,可以包括以下步骤S301-S302:
在步骤S301中,确定每个所述原始数据元组中第二字段集合的字段值以及第二字段集合的字段标识。
在一实施例中,当从原始数据表中获取待处理的多个原始数据元组后,可以确定每个原始数据元组中第二字段集合的字段值以及第二字段集合的字段标识。
举例来说,仍以上述表一所示原始数据表为例,当获取上述5条原始数据元组后,可以确定其中每个原始数据元组中第二字段集合的字段标识以及第二字段集合的字段值,即:
第1条数据:“字段H”以及“T111a”、“字段I”以及“T112a”、“字段J”以及“T113a”;
第2条数据:“字段H”以及“T111b”、“字段I”以及“T112b”、“字段J”以及“T113b”;
第3条数据:“字段H”以及“T111c”、“字段I”以及“T112c”、“字段J”以及“T113c”;
第4条数据:“字段H”以及“T111d”、“字段I”以及“T112d”、“字段J”以及“T113d”;
第5条数据:“字段H”以及“T111e”、“字段I”以及“T112e”、“字段J”以及“T113e”。
在步骤S302中,将所述字段标识和所述字段值作为每个所述原始数据元组对应的元素,生成字段数组。
在一实施例中,当确定每个原始数据元组中第二字段集合的字段值以及第二字段集合的字段标识后,可以将上述字段标识和字段值作为每个原始数据元组对应的元素,生成字段数组。
在一实施例中,可以将标识和字段值生成键值对“key-value”,并将该键值对作为一个元素。
举例来说,当得到步骤S301中所示的第二字段集合的字段标识以及第二字段集合的字段值后,可以分别根据每个字段标识对应的字段值生成键值对,进而生成如下字段数组:
{(字段H:T111a;字段I:T112a;字段J:T113a),(字段H:T111b;字段I:T112b;字段J:T113b),(字段H:T111c;字段I:T112c;字段J:T113c),(字段H:T111d;字段I:T112d;字段J:T113d),(字段H:T111e;字段I:T112e;字段J:T113e)}。
由上述描述可知,本实施例通过确定每个所述原始数据元组中第二字段集合的字段值以及第二字段集合的字段标识,并将所述字段标识和所述字段值作为每个所述原始数据元组对应的元素,生成字段数组,可以实现保留第二字段集合中字段标识和字段值的完整信息,有利于提高后续生成待存数据元组以及查询目标数据元组的准确率。
图4是本申请一示例性实施例示出的如何生成待存数据元组的流程图;本实施在上述实施例的基础上以如何生成待存数据元组为例进行示例性说明。如图4所示,步骤S103中所述根据所述第一字段集合的字段值和所述字段数组生成对应于所述多个原始数据元组的一个待存数据元组,可以包括以下步骤S401-S402:
在步骤S401中,确定所述原始数据元组的数量。
在一实施例中,当从原始数据表中获取待处理的多个原始数据元组后,可以确定该原始数据元组的数量。
举例来说,当从原始数据表中获取上述5条原始数据元组后,可以确定该原始数据元组的数量为“5”。
在步骤S402中,将所述数量、所述第一字段集合的字段值和所述字段数组生成对应于所述多个原始数据元组的一个待存数据元组。
在一实施例中,当确定上述原始数据元组的数量、所述第一字段集合的字段值和所述字段数组后,可以根据所述数量、所述第一字段集合的字段值和所述字段数组生成对应于所述多个原始数据元组的一个待存数据元组。
举例来说,可以在步骤S104所示的待存数据元组中的预设位置添加一表征原始数据元组的数量(即,条数)的字段。在此基础上,服务端采用列式存储表存储的待存数据元组可以如下表三所示:
表三
由上述描述可知,本实施例通过确定所述原始数据元组的数量,并将所述数量、所述第一字段集合的字段值和所述字段数组生成对应于所述多个原始数据元组的一个待存数据元组,可以通过在待存数据元组中添加用于统计数据元组数量的字段,可使压缩数据的数量更加直观,便于后续对目标数据元组进行统计。
图5是本申请一示例性实施例示出的一种查询表数据的方法的流程图;该实施例可以用于存储表数据的服务端(例如,一台服务器和多台服务器组成的服务器集群等)。其中,本实施例的表数据预先基于上述图1~图4所示实施例提供的存储表数据的方法进行存储。如图5所示,该方法包括步骤S501-S502:
在步骤S501中,接收用于查询目标数据元组信息的查询条件,所述查询条件中包含所述目标数据元组所属目标数据表的表格标识以及所述目标数据元组中包含的至少一个目标字段。
在一实施例中,当用户查询目标数据元组时,可以通过客户端(如,服务端的电子设备中安装的数据查询客户端等)输入包含目标数据元组所属目标数据表的表格标识以及所述目标数据元组中包含的至少一个目标字段等信息的查询条件。进而,服务端可以接收到该查询目标数据元组信息的查询条件。
在一实施例中,上述目标数据元组信息可以包括目标数据元组本身。
在步骤S502中,从所述目标数据表中查询包含所述目标字段的目标数据元组,并返回所述目标数据元组。
在一实施例中,当服务端接收到用于查询目标数据元组信息的查询条件后,可以从所述表格标识对应的目标数据表中查询包含所述目标字段的目标数据元组,进而返回所述目标数据元组。
在一实施例中,当服务端接收到用于查询目标数据元组信息的查询条件后,可以确定上述目标字段是否属于第一字段集合:
若确定目标字段属于第一字段集合,则可以直接从所述目标数据表中查询包含所述目标字段的目标数据元组,并返回所述目标数据元组。
举例来说,仍以上述表二所示待存数据元组为例,若确定目标字段为“字段B”,且目标数据元组所属目标数据表的表格标识为“表二”,则可以确定该目标字段属于第一字段集合,因而可以直接从所述目标数据表中查询并返回包含所述目标字段“字段B”的目标数据元组:
[T1,T2,T3,{(T111a,T112a,T113a),(T111b,T112b,T113b),(T111c,T112c,T113c),(T111d,T112d,T113d),(T111e,T112e,T113e)}]。
在另一实施例中,若确定目标字段不属于第一字段集合(即,目标字段属于第二字段集合),则可以参见下述图6所示实施例返回所述目标数据元组,在此先不进行详述。
由上述描述可知,本实施例通过接收用于查询目标数据元组信息的查询条件,并从所述目标数据表中查询包含所述目标字段的目标数据元组,并返回所述目标数据元组,可以实现基于用户输入的目标数据元组信息的查询条件快速、准确地查询并返回用户所需的目标数据元组,满足用户需求。
图6是本申请一示例性实施例示出的如何查询目标数据元组的流程图;本实施例在上述实施例的基础上以如何查询目标数据元组为例进行示例性说明。如图6所示,步骤S502中所述从所述目标数据表中查询包含所述目标字段的目标数据元组,并返回所述目标数据元组,可以包括以下步骤S601-S602:
在步骤S601中,从所述目标数据表中获取包含所述目标字段的待存数据元组。
在一实施例中,当确定上述目标字段不属于第一字段集合(即,目标字段属于第二字段集合),则可以从上述表格标识对应的目标数据表中获取包含所述目标字段的待存数据元组。
仍以上述表三所示待存数据元组为例,若确定目标字段为“字段H”,且目标数据元组所属目标数据表的表格标识为“表三”,则可以从表三中获取包含目标字段“字段H”的待存数据元组:
[T1,T2,T3,{(字段H:T111a;字段I:T112a;字段J:T113a),(字段H:T111b;字段I:T112b;字段J:T113b),(字段H:T111c;字段I:T112c;字段J:T113c),(字段H:T111d;字段I:T112d;字段J:T113d),(字段H:T111e;字段I:T112e;字段J:T113e)}]。
在步骤S602中,将所述包含所述目标字段的待存数据元组还原为多个原始数据元组,并返回所述多个原始数据元组。
在一实施例中,当从所述目标数据表中获取包含所述目标字段的待存数据元组后,可以将所述包含所述目标字段的待存数据元组还原为多个原始数据元组,并返回所述多个原始数据元组。
值得说明的是,将上述待存数据元组还原为多个原始数据元组的方式可以由开发人员根据业务需要从现有技术中选择,例如,可以选择现有的实现数据“行转列”的函数Lateral View等,本实施例对此不进行限定。
由上述描述可知,本实施例通过从所述目标数据表中获取包含所述目标字段的待存数据元组,并将所述包含所述目标字段的待存数据元组还原为多个原始数据元组,并返回所述多个原始数据元组,可以实现返回还原后的多个原始数据元组,满足用户的需求。
图7是本申请又一示例性实施例示出的一种查询表数据的方法的流程图;该实施例可以用于存储表数据的服务端(例如,一台服务器和多台服务器组成的服务器集群等)。其中,本实施例的表数据预先基于上述图1~图4所示实施例提供的存储表数据的方法进行存储。如图7所示,该方法包括步骤S701-S703:
在步骤S701中,接收用于查询目标数据元组信息的查询条件,所述查询条件中包含所述目标数据元组所属目标数据表的表格标识以及所述目标数据元组中包含的至少一个目标字段。
其中,上述目标数据元组信息包括所述目标数据元组的统计量。
在一实施例中,上述查询条件还可以包含所述目标数据元组的统计量的标识。
在步骤S702中,从所述目标数据表中查询包含所述目标字段的目标数据元组,并返回所述目标数据元组。
其中,步骤S701-S702的相关解释和说明可以参见上述实施例,在此不进行赘述。
在步骤S703中,基于从所述目标数据表中查询的包含所述目标字段的目标数据元组,确定所述目标数据元组的统计量,并返回所述统计量。
在一实施例中,当从所述目标数据表中查询包含所述目标字段的目标数据元组后,可以基于查询到的包含所述目标字段的目标数据元组,确定所述目标数据元组的统计量,进而可以返回该统计量。
仍以上述表三所示待存数据元组为例,若确定目标字段为“字段A”,且目标数据元组所属目标数据表的表格标识为“表三”,统计量为“原始数据元组的数量”,则可以从表三中查询包含“字段A”的目标数据元组:
[T1,T2,T3,{(字段H:T111a;字段I:T112a;字段J:T113a),(字段H:T111b;字段I:T112b;字段J:T113b),(字段H:T111c;字段I:T112c;字段J:T113c),(字段H:T111d;字段I:T112d;字段J:T113d),(字段H:T111e;字段I:T112e;字段J:T113e)}]。
在此基础上,可以采用以下两种方式确定上述统计量:
第一种方式:直接从查询到的目标数据元组中获取“数量”字段的字段值“5”;
第二种方式:可以将将所述包含所述目标字段的待存数据元组还原为多个原始数据元组,进而可以统计该多个原始数据元组的数量,同样可以得到数量“5”。
值得说明的是,上述统计量的类型可以由开发人员根据实际需要进行设置,上述“数量”仅用于示例性说明,本实施例对此不进行限定。
由上述描述可知,本实施例通过基于从所述目标数据表中查询的包含所述目标字段的目标数据元组,确定所述目标数据元组的统计量,并返回所述统计量,可以快速、准确地确定目标数据元组的统计量,满足用户的需求。
图8是本申请一示例性实施例示出的一种存储表数据的装置的结构框图;如图8所示,该装置包括:数据元组获取模块110、字段数组生成模块120、待存元组生成模块130以及待存元组存储模块140,其中:
数据元组获取模块110,用于从原始数据表中获取待处理的多个原始数据元组,所述多个原始数据元组包含字段值相同的第一字段集合;
字段数组生成模块120,用于根据所述多个原始数据元组中第二字段集合的字段值生成字段数组,所述第二字段集合为所述多个原始数据元组中除所述第一字段集合之外的字段集合;
待存元组生成模块130,用于根据所述第一字段集合的字段值和所述字段数组生成对应于所述多个原始数据元组的一个待存数据元组;
待存元组存储模块140,用于存储所述待存数据元组。
由上述描述可知,本实施例通过从原始数据表中获取待处理的多个原始数据元组,并根据所述多个原始数据元组中第二字段集合的字段值生成字段数组,然后根据所述第一字段集合的字段值和所述字段数组生成对应于所述多个原始数据元组的一个待存数据元组,进而存储所述待存数据元组,可以实现将多个原始数据元组压缩为一个待存数据元组,由此可以降低对线上存储空间的占用,并且可以减少后续数据查询过程中所读取的数据量,即降低查询IO(Input and Output,输入和输出)。
图9是本申请又一示例性实施例示出的一种存储表数据的装置的结构框图;其中,数据元组获取模块210、字段数组生成模块220、待存元组生成模块230以及待存元组存储模块240与前述图8所示实施例中的数据元组获取模块110、字段数组生成模块120、待存元组生成模块130以及待存元组存储模块140的功能相同,在此不进行赘述。如图9所示,所述装置还包括:
字段比例确定模块250,用于确定所述第一字段集合中目标使用字段的比例;
在此基础上,字段数组生成模块220还可以用于当所述比例超过预设比例阈值时,执行所述根据所述多个原始数据元组中第二字段集合的字段值生成字段数组的操作。
在一实施例中,字段数组生成模块220,可以包括:
数值标识确定单元221,用于确定每个所述原始数据元组中第二字段集合的字段值以及第二字段集合的字段标识;
字段数组生成单元222,用于将所述字段标识和所述字段值作为每个所述原始数据元组对应的元素,生成字段数组。
在一实施例中,待存元组生成模块230,可以包括:
元组数量确定单元231,用于确定所述原始数据元组的数量;
待存元组生成单元232,用于将所述数量、所述第一字段集合的字段值和所述字段数组生成对应于所述多个原始数据元组的一个待存数据元组。
图10是本申请一示例性实施例示出的一种查询表数据的装置的结构框图。其中,本实施例的表数据预先基于上述图8~图9所示实施例提供的存储表数据的装置进行存储。如图10所示,该装置包括:
查询条件接收模块310,用于接收用于查询目标数据元组信息的查询条件,所述查询条件中包含所述目标数据元组所属目标数据表的表格标识以及所述目标数据元组中包含的至少一个目标字段;
数据元组查询模块320,用于从所述目标数据表中查询包含所述目标字段的目标数据元组,并返回所述目标数据元组。
在一实施例中,数据元组查询模块320,可以包括:
待存元组获取单元321,用于从所述目标数据表中获取包含所述目标字段的待存数据元组;
数据元组返回单元322,用于将所述包含所述目标字段的待存数据元组还原为多个原始数据元组,并返回所述多个原始数据元组。
在一实施例中,目标数据元组信息可以包括所述目标数据元组的统计量;
所述装置还可以包括:
统计量确定模块330,用于基于从所述目标数据表中查询的包含所述目标字段的目标数据元组,确定所述目标数据元组的统计量,并返回所述统计量。
值得说明的是,上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
另一方面,本申请还提供了一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序用于执行上述图1~图4所示实施例提供的存储表数据的方法。
另一方面,本申请还提供了一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序用于执行上述图5~图7所示实施例提供的查询表数据的方法。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (11)
1.一种存储表数据的方法,其特征在于,包括:
从原始数据表中获取待处理的多个原始数据元组,所述多个原始数据元组包含字段值相同的第一字段集合;
根据所述多个原始数据元组中第二字段集合的字段值生成字段数组,所述第二字段集合为所述多个原始数据元组中除所述第一字段集合之外的字段集合;
根据所述第一字段集合的字段值和所述字段数组生成对应于所述多个原始数据元组的一个待存数据元组;
存储所述待存数据元组。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述第一字段集合中目标使用字段的比例;
若所述比例超过预设比例阈值,则执行所述根据所述多个原始数据元组中第二字段集合的字段值生成字段数组的操作。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述多个原始数据元组中第二字段集合的字段值生成字段数组,包括:
确定每个所述原始数据元组中第二字段集合的字段值以及第二字段集合的字段标识;
将所述字段标识和所述字段值作为每个所述原始数据元组对应的元素,生成字段数组。
4.根据权利要求1所述的方法,其特征在于,所述根据所述第一字段集合的字段值和所述字段数组生成对应于所述多个原始数据元组的一个待存数据元组,包括:
确定所述原始数据元组的数量;
将所述数量、所述第一字段集合的字段值和所述字段数组生成对应于所述多个原始数据元组的一个待存数据元组。
5.一种查询表数据的方法,其特征在于,所述表数据预先基于权利要求1-4任一项所述的方法进行存储,包括:
接收用于查询目标数据元组信息的查询条件,所述查询条件中包含所述目标数据元组所属目标数据表的表格标识以及所述目标数据元组中包含的至少一个目标字段;
从所述目标数据表中查询包含所述目标字段的目标数据元组,并返回所述目标数据元组。
6.根据权利要求5所述的方法,其特征在于,所述从所述目标数据表中查询包含所述目标字段的目标数据元组,并返回所述目标数据元组,包括:
从所述目标数据表中获取包含所述目标字段的待存数据元组;
将所述包含所述目标字段的待存数据元组还原为多个原始数据元组,并返回所述多个原始数据元组。
7.根据权利要求5所述的方法,其特征在于,所述目标数据元组信息包括所述目标数据元组的统计量;
所述方法还包括:
基于从所述目标数据表中查询的包含所述目标字段的目标数据元组,确定所述目标数据元组的统计量,并返回所述统计量。
8.一种存储表数据的装置,其特征在于,包括:
数据元组获取模块,用于从原始数据表中获取待处理的多个原始数据元组,所述多个原始数据元组包含字段值相同的第一字段集合;
字段数组生成模块,用于根据所述多个原始数据元组中第二字段集合的字段值生成字段数组,所述第二字段集合为所述多个原始数据元组中除所述第一字段集合之外的字段集合;
待存元组生成模块,用于根据所述第一字段集合的字段值和所述字段数组生成对应于所述多个原始数据元组的一个待存数据元组;
待存元组存储模块,用于存储所述待存数据元组。
9.一种查询表数据的装置,其特征在于,所述表数据预先基于权利要求8所述的装置进行存储,包括:
查询条件接收模块,用于接收用于查询目标数据元组信息的查询条件,所述查询条件中包含所述目标数据元组所属目标数据表的表格标识以及所述目标数据元组中包含的至少一个目标字段;
数据元组查询模块,用于从所述目标数据表中查询包含所述目标字段的目标数据元组,并返回所述目标数据元组。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-4任一所述的存储表数据的方法。
11.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求5-7任一所述的查询表数据的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811590576.2A CN109710611B (zh) | 2018-12-25 | 2018-12-25 | 存储表数据的方法、查询表数据的方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811590576.2A CN109710611B (zh) | 2018-12-25 | 2018-12-25 | 存储表数据的方法、查询表数据的方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109710611A true CN109710611A (zh) | 2019-05-03 |
CN109710611B CN109710611B (zh) | 2019-09-17 |
Family
ID=66257532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811590576.2A Active CN109710611B (zh) | 2018-12-25 | 2018-12-25 | 存储表数据的方法、查询表数据的方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109710611B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110781194A (zh) * | 2019-11-05 | 2020-02-11 | 网易(杭州)网络有限公司 | 应用程序的表数据处理方法、装置、电子设备及存储介质 |
CN110837511A (zh) * | 2019-11-15 | 2020-02-25 | 金蝶软件(中国)有限公司 | 一种数据处理方法、系统及相关设备 |
CN111752941A (zh) * | 2019-07-31 | 2020-10-09 | 北京京东尚科信息技术有限公司 | 一种数据存储、访问方法、装置、服务器及存储介质 |
CN112364041A (zh) * | 2020-12-01 | 2021-02-12 | 苏宁金融科技(南京)有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
CN113779001A (zh) * | 2020-11-09 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 数据处理方法及装置、计算机存储介质、电子设备 |
CN113903421A (zh) * | 2021-10-11 | 2022-01-07 | 上海柯林布瑞信息技术有限公司 | 一种医疗科研表单数据的快速处理方法和装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1360700A (zh) * | 1999-05-31 | 2002-07-24 | 特博数据实验室公司 | 用于链接表格式数据的方法以及表现链接的表格式数据的方法 |
US20090281984A1 (en) * | 2008-05-09 | 2009-11-12 | Microsoft Corporation | Packet Compression for Network Packet Traffic Analysis |
CN101799807A (zh) * | 2009-02-10 | 2010-08-11 | 中国移动通信集团公司 | 一种异构数据表的合并方法及其系统 |
CN101902335A (zh) * | 2009-05-27 | 2010-12-01 | 北京启明星辰信息技术股份有限公司 | 一种数据过滤与合并的方法 |
US20130311438A1 (en) * | 2012-05-18 | 2013-11-21 | Splunk Inc. | Flexible schema column store |
CN103761316A (zh) * | 2014-01-26 | 2014-04-30 | 北京中电普华信息技术有限公司 | 一种基于稀疏矩阵的数据压缩存储方法及装置 |
US20140304275A1 (en) * | 2013-03-14 | 2014-10-09 | LightMiner Systems, Inc. | Optimizing wide data-type storage and analysis of data in a column store database |
CN104346458A (zh) * | 2014-10-31 | 2015-02-11 | 易准科技发展(上海)有限公司 | 数据存储方法和存储设备 |
CN107368493A (zh) * | 2016-05-12 | 2017-11-21 | 百度在线网络技术(北京)有限公司 | 数据库查询方法和装置 |
-
2018
- 2018-12-25 CN CN201811590576.2A patent/CN109710611B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1360700A (zh) * | 1999-05-31 | 2002-07-24 | 特博数据实验室公司 | 用于链接表格式数据的方法以及表现链接的表格式数据的方法 |
US20090281984A1 (en) * | 2008-05-09 | 2009-11-12 | Microsoft Corporation | Packet Compression for Network Packet Traffic Analysis |
CN101799807A (zh) * | 2009-02-10 | 2010-08-11 | 中国移动通信集团公司 | 一种异构数据表的合并方法及其系统 |
CN101902335A (zh) * | 2009-05-27 | 2010-12-01 | 北京启明星辰信息技术股份有限公司 | 一种数据过滤与合并的方法 |
US20130311438A1 (en) * | 2012-05-18 | 2013-11-21 | Splunk Inc. | Flexible schema column store |
US20140304275A1 (en) * | 2013-03-14 | 2014-10-09 | LightMiner Systems, Inc. | Optimizing wide data-type storage and analysis of data in a column store database |
CN103761316A (zh) * | 2014-01-26 | 2014-04-30 | 北京中电普华信息技术有限公司 | 一种基于稀疏矩阵的数据压缩存储方法及装置 |
CN104346458A (zh) * | 2014-10-31 | 2015-02-11 | 易准科技发展(上海)有限公司 | 数据存储方法和存储设备 |
CN107368493A (zh) * | 2016-05-12 | 2017-11-21 | 百度在线网络技术(北京)有限公司 | 数据库查询方法和装置 |
Non-Patent Citations (1)
Title |
---|
李敏: ""一种基于AJAX的数据库管理方法"", 《警察技术》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111752941A (zh) * | 2019-07-31 | 2020-10-09 | 北京京东尚科信息技术有限公司 | 一种数据存储、访问方法、装置、服务器及存储介质 |
CN111752941B (zh) * | 2019-07-31 | 2024-05-17 | 北京京东尚科信息技术有限公司 | 一种数据存储、访问方法、装置、服务器及存储介质 |
CN110781194A (zh) * | 2019-11-05 | 2020-02-11 | 网易(杭州)网络有限公司 | 应用程序的表数据处理方法、装置、电子设备及存储介质 |
CN110781194B (zh) * | 2019-11-05 | 2022-06-14 | 网易(杭州)网络有限公司 | 应用程序的表数据处理方法、装置、电子设备及存储介质 |
CN110837511A (zh) * | 2019-11-15 | 2020-02-25 | 金蝶软件(中国)有限公司 | 一种数据处理方法、系统及相关设备 |
CN110837511B (zh) * | 2019-11-15 | 2022-08-23 | 金蝶软件(中国)有限公司 | 一种数据处理方法、系统及相关设备 |
CN113779001A (zh) * | 2020-11-09 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 数据处理方法及装置、计算机存储介质、电子设备 |
CN112364041A (zh) * | 2020-12-01 | 2021-02-12 | 苏宁金融科技(南京)有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
CN113903421A (zh) * | 2021-10-11 | 2022-01-07 | 上海柯林布瑞信息技术有限公司 | 一种医疗科研表单数据的快速处理方法和装置 |
CN113903421B (zh) * | 2021-10-11 | 2022-04-12 | 上海柯林布瑞信息技术有限公司 | 一种医疗科研表单数据的快速处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109710611B (zh) | 2019-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109710611B (zh) | 存储表数据的方法、查询表数据的方法、装置及存储介质 | |
CN105701216B (zh) | 一种信息推送方法及装置 | |
CN103748579B (zh) | 在映射化简框架中处理数据 | |
US8380784B2 (en) | Correlated information recommendation | |
CN104050235B (zh) | 基于集合选择的分布式信息检索方法 | |
CN105608188A (zh) | 数据处理方法和数据处理装置 | |
CN103744966A (zh) | 一种物品推荐方法、装置 | |
EP1916824A2 (en) | Real time web usage reporter using ram | |
CN105590216B (zh) | 实时监控交易风险的方法及系统 | |
KR101622810B1 (ko) | 빅데이터 분산 시스템 및 방법 | |
US9779171B2 (en) | Faceting search results | |
CN102339296A (zh) | 一种查询结果的排序方法和装置 | |
CN105117442B (zh) | 一种基于概率的大数据查询方法 | |
CN104063501B (zh) | 基于hdfs的副本平衡方法 | |
CN106534303B (zh) | 一种应用于对账系统的负载均衡方法和装置 | |
CN106484791B (zh) | 一种数据统计方法和装置 | |
CN103744918A (zh) | 基于垂直领域的微博搜索排序方法及系统 | |
CN107133367A (zh) | 一种信息处理方法及系统、服务器 | |
CN104778177A (zh) | 数据处理方法及装置 | |
CN107729500A (zh) | 一种联机分析处理的数据处理方法、装置及后台设备 | |
CN105677645A (zh) | 一种数据表比对方法和装置 | |
CN110737432A (zh) | 一种基于词根表的脚本辅助设计方法及装置 | |
CN106789147A (zh) | 一种流量分析方法及装置 | |
US20160342899A1 (en) | Collaborative filtering in directed graph | |
CN104573113A (zh) | 一种信息处理方法及服务器 |
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 |