CN113254480B - 一种数据查询方法及装置 - Google Patents
一种数据查询方法及装置 Download PDFInfo
- Publication number
- CN113254480B CN113254480B CN202010089925.3A CN202010089925A CN113254480B CN 113254480 B CN113254480 B CN 113254480B CN 202010089925 A CN202010089925 A CN 202010089925A CN 113254480 B CN113254480 B CN 113254480B
- Authority
- CN
- China
- Prior art keywords
- query
- data
- rule
- loaded
- service system
- 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
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000012545 processing Methods 0.000 claims abstract description 45
- 239000000872 buffer Substances 0.000 claims description 122
- 238000003860 storage Methods 0.000 claims description 68
- 230000000875 corresponding effect Effects 0.000 claims description 57
- 238000004891 communication Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 16
- 230000002596 correlated effect Effects 0.000 claims description 3
- 238000013499 data model Methods 0.000 abstract description 22
- 238000004458 analytical method Methods 0.000 abstract description 15
- 238000010586 diagram Methods 0.000 description 12
- 238000012423 maintenance Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000007405 data analysis Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000003672 processing method Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009118 appropriate response Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012517 data analytics Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种数据查询方法及装置,其中,该方法包括:接收业务系统发送的数据查询请求,其中,数据查询请求包括待查询数据的查询标识和查询参数;根据查询标识,获取第一查询规则;其中,第一查询规则为预先基于业务系统发送的预注册请求所确定的最优的查询规则;根据第一查询规则和查询参数,从缓存中进行数据查询处理,得到查询结果;其中,缓存中存储的数据为基于预注册请求所加载的数据;将查询结果发送给业务系统。由此,基于预先注册的查询规则和查询标识,以及预先加载至缓存中的数据,进行数据查询,通过同一数据模型,不仅满足了分析型业务的数据需求,而且满足了事件触发型业务的数据需求,实现了高性能的数据查询。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据查询方法及装置。
背景技术
数据模型(数据库表)是商业智能(英文全称:Business Intelligence;简称:BI)领域的核心,既要用于基于规则的数据分析型业务,又要用于基于事件模型的事件触发型业务。其中,基于规则的数据分析型业务,主要是基于用户自定义的规则,进行任意自定义规则的过滤、分段统计等操作,然后展示各种统计图表,供用户研究数据规律、探索用户的行为特征,从而为制定市场策略、营销规则提供基础。基于事件模型的事件触发型业务,则是用户根据上述数据分析型业务的分析结果,制定营销规则和其他对用户行为的响应规则;当用户的某个行为发生时,根据用户的属性数据,给出系统的合适的响应特征。
一般来说,为了满足快速响应数据分析型业务的需求,数据需要按照列的方式进行存储,而为了满足极高吞吐量的数据按照用户ID进行查询,又需要数据按照行的方式预先组织好。因此,当前多是将数据进行重复存储,通过维护多个数据模型,来同时满足分析型业务的数据需求和事件型业务的数据需求。而维护多个数据模型不仅会占用过多的存储空间,而且维护成本较高。
发明内容
本发明实施例的目的是提供一种数据查询方法及装置,以解决维护多个数据模型占用过多的存储空间,而且维护成本较高的问题。
为了解决上述技术问题,本发明实施例是这样实现的:
第一方面,本发明实施例提供了一种数据查询方法,包括:
接收业务系统发送的数据查询请求,其中,所述数据查询请求包括待查询数据的查询标识和查询参数;
根据所述查询标识,获取第一查询规则;其中,所述第一查询规则为预先基于所述业务系统发送的预注册请求所确定的最优的查询规则;
根据所述第一查询规则和所述查询参数,从缓存中进行数据查询处理,得到查询结果;其中,所述缓存中存储的数据为基于所述预注册请求所加载的数据;
将所述查询结果发送给所述业务系统。
第二方面,本发明实施例提供了一种数据查询装置,包括:
数据接收模块,用于接收业务系统发送的数据查询请求,其中,所述数据查询请求包括待查询数据的查询标识和查询参数;
规则获取模块,用于根据所述查询标识,获取第一查询规则;其中,所述第一查询规则为预先基于所述业务系统发送的预注册请求所确定的最优的查询规则;
查询处理模块,用于根据所述第一查询规则和所述查询参数,从缓存中进行数据查询处理,得到查询结果;其中,所述缓存中存储的数据为基于所述预注册请求所加载的数据;
结果发送模块,用于将所述查询结果发送给所述业务系统。
第三方面,本发明实施例提供了一种计算机设备,包括处理器、通信接口、存储器和通信总线;其中,所述处理器、所述通信接口以及所述存储器通过总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现如第一方面所述的数据查询方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如第一方面所述的数据查询方法的步骤。
本发明实施例中的数据查询方法及装置,业务系统预先向服务端注册查询标识和对应的查询规则,服务端基于该查询规则向缓存中加载对应的数据,以在服务端接收到业务系统发送的数据查询请求时,根据查询请求包括的查询标识获取第一查询规则,并根据第一查询规则和数据查询请求包括的查询参数从缓存中进行数据查询处理。由此,基于同一个数据模型,通过预先注册查询标识和查询规则,以及预先将查询规则对应的数据加载至缓存中,并基于缓存中的数据进行数据查询,不仅满足了分析型业务的数据需求,而且了满足事件触发型业务的数据需求,实现了高性能的数据查询;解决了维护多个数据模型,需占用过多存储空间且维护成本高的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的数据查询方法的第一种流程示意图;
图2为本发明实施例提供的数据查询方法的第二种流程示意图;
图3为本发明实施例提供的数据查询方法的第三种流程示意图;
图4为本发明实施例提供的数据查询方法的第四种流程示意图;
图5为本发明实施例提供的数据查询方法的第五种流程示意图;
图6为本发明实施例提供的向缓冲区中加载数据的示意图;
图7为本发明实施例提供的数据查询装置的模块组成示意图;
图8为本发明实施例提供的计算机设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
附图1为本发明实施例提供的数据查询方法的第一种流程示意图,图1中的方法能够由服务端执行,如数据库系统的服务端;其中,服务端可以为单独的服务器,还可以为多个服务器所构成的服务器集群;如图1所示,该方法至少包括以下步骤:
S102,接收业务系统发送的数据查询请求,其中,数据查询请求包括待查询数据的查询标识和查询参数;
为了实现高性能的数据查询,基于同一个数据模型,同时满足分析型业务和事件触发型业务的数据需求,如图2所示,本发明实施例中,S102之前还包括:
S1002,接收业务系统发送的预注册请求,其中,预注册请求包括待注册的查询标识和第二查询规则;
具体的,对于业务系统而言,存储系统中的各存储表的表名称、各存储表所存储的字段的字段名称等信息是已知的,例如业务系统已知表名称为t1的存储表中,存储有字段名称为attr0、attr1、attr2…等的字段,已知表名称为t2的存储表中,存储有字段名称为f1、f2、f3…等的字段。当业务系统需要进行某个业务的数据查询时,根据需要查询的表、字段等信息构造至少一个第二查询规则,并生成查询标识,根据第二查询规则和查询标识向服务端发送预注册请求;服务端接收业务系统发送的预注册请求。需要指出的,一个查询标识可以对应多个第二查询规则,由此,无需业务系统与服务端进行多次数据通信,而是通过一次数据通信即可完成所有查询规则的注册,降低了数据通信次数,减少了网络通信流量的使用。
S1004,对第二查询规则进行优化处理,得到第一查询规则,将第一查询规则和待注册的查询标识关联保存;
通常的,存储系统包括多个存储表,不同的表之间还可能存在关联关系,业务系统构造的查询规则很大程度上不是最快捷、最简单的查询方式,并且不同的业务系统发起的查询可能类似;基于此,本说明书实施例中,当服务端接收到业务系统发送的预注册请求之后,若确定预注册请求包括的第二查询规则是非最优的查询规则,则对查询规则进行优化,并在确定存在类似的查询(如均包括基于表t1中的字段attr3、表t2中的字段f2的查询)时,对该类似的查询进行合并,得到最优的第一查询规则,以在将相应的数据加载至缓存之后,可基于相同的缓存数据进行不同的查询,不仅能够提升缓存数据的利用率,而且能够避免因数据的重复缓存而造成的存储空间的浪费。
S1006,确定第一查询规则对应的待加载数据,从存储系统中查询确定的待加载数据,将查询到的待加载数据加载至缓存的列缓冲区中;
具体的,将第一查询规则包括的查询信息(如表名称、字段名称等)所对应的数据确定为待加载数据,以及根据第一查询规则包括的查询信息从存储系统中查询对应的待加载数据,并将查询到的待加载数据加载至缓存的列缓冲区中。
S1008,确定第一查询规则的元数据信息,将元数据信息和待注册的查询标识关联发送给业务系统,以使业务系统根据元数据信息更新第二查询规则。
其中,元数据信息包括第一查询规则的描述信息,由于第二查询规则已优化,因此将第一查询规则的元数据信息和待注册的查询标识关联发送给业务系统,以使业务系统根据元数据信息更新查询标识对应的第二查询规则,并根据更新后的第二查询规则进行数据查询操作。
由此,通过向服务端注册查询标识和第二查询规则,使得在后续的查询过程中,业务系统仅向服务端传递查询标识,即可实现相应的数据查询;再者,通过对第二查询规则进行优化,并基于优化而得的第一查询规则缓存数据及进行数据查询,不仅能够提升数据查询效率,而且能够在后续根据不同类型的数据查询请求,对缓存中的数据进行行列转换,从而同时满足数据分析型业务和事件触发型业务的数据需求。
进一步的,当业务系统接收到服务端发送的元数据信息和查询标识时,可根据元数据信息更新查询标识对应的第二查询规则,并在检测到用户的查询操作时,确定待查询数据的查询标识和查询参数,根据确定的查询标识和查询参数,向服务端发送数据查询请求;服务端接收业务系统发送的数据查询请求。其中,查询参数随待查询数据的不同而不同,查询参数可以为基于更新后的第二查询规则所确定的参数(如表名称等),还可以为用户提供的参数(如需要查询某个用户的信息,可提供该用户的用户标识)。
S104,根据查询标识,获取第一查询规则;其中,第一查询规则为预先基于业务系统发送的预注册请求所确定的最优的查询规则;
具体的,根据查询标识,获取关联保存的第一查询规则。
S106,根据第一查询规则和查询参数,从缓存中进行数据查询处理,得到查询结果;其中,缓存中存储的数据为基于预注册请求所加载的数据;
具体的,根据数据查询请求包括的类型标识,确定数据查询请求的类型,若数据查询请求为第一类型的查询请求,则从缓存的列缓冲区中进行数据查询处理;若数据查询请求为第二类型的查询请求,则从缓存的行缓冲区中进行数据查询处理。其中,第一类型的查询请求包括数据分析型业务的分析型查询,第二类型的查询请求包括事件触发型业务的事件型查询。
更加具体的,如图3所示,当数据查询请求为第一类型的查询请求时,S106包括:
S106-2,确定第一查询规则对应的待加载数据是否全部加载至列缓冲区中,是则执行S106-4,否则执行S106-6;
S106-4,从列缓冲区中进行数据查询处理,得到查询结果;
S106-6,从存储系统中查询第一查询规则对应的未加载数据,将未加载数据加载至列缓冲区中,并从列缓冲区中进行数据查询处理,得到查询结果。
考虑到可能存在因网络故障等因素而造成向缓存中加载数据失败,因此,服务端在根据第一类型的数据查询请求进行查询处理时,首先根据第一查询规则包括的查询信息,确定对应的待加载数据是否全部加载至列缓冲区中;若是,则根据查询参数从列缓冲区中进行数据查询,得到查询结果;若否,则根据查询信息和列缓冲区中的已加载数据,确定第一查询规则对应的未加载数据;从存储系统中查询未加载数据,并将查询到的未加载数据加载至列缓冲区中;从列缓冲区中进行数据查询,得到查询结果。
例如,进行用户A的流量使用情况查询,以分析用户A的流量使用情况进行流量套餐推荐;存储系统中的存储表t1中包括各用户的用户标识和流量使用数据的对应关系;则第一查询规则包括的查询信息可以包括表名称t1,数据查询请求中的查询参数可以包括待查询用户的用户标识ID4;服务端根据第一查询规则包括的查询信息t1,确定t1中的数据已全部加载至列缓冲区,则根据用户标识ID4从列缓冲区查询对应的流量使用数据,得到查询结果。
进一步的,如图4所示,当数据查询请求为第二类型的查询请求时,S106包括:
S106-8,确定第一查询规则对应的待加载数据是否全部加载至缓存的行缓冲区中,若是,则执行S106-10,若否,则执行S106-12;
S106-10,根据查询参数从行缓冲区中进行数据查询处理,得到查询结果;
S106-12,获取第一查询规则在行缓冲区中所对应的未加载数据,将获取的未加载数据加载至行缓冲区中,并根据查询参数从行缓冲区中进行数据查询处理,得到查询结果。
具体的,当进行首次事件型查询时,初始化行缓冲区且行缓冲区为空,根据第一查询规包括的查询信息确定待加载数据,并将确定的待加载数据作为第一查询规则在行缓冲区中所对应的未加载数据,获取未加载数据并加载至行缓存区中,根据查询参数从行缓冲区中进行数据查询。当进行非首次事件型查询时,根据第一查询规包括的查询信息和行缓冲区中已加载的数据,确定第一查询规则在行缓冲区中所对应的未加载数据,获取未加载数据并加载至行缓存区中,根据查询参数从行缓冲区中进行数据查询。其中,行缓冲区中每行的长度相等。
进一步的,如图5所示,S106-12包括:
S106-122,确定列缓冲区中是否存储有第一查询规则在行缓冲区中所对应的未加载数据,若是,则执行S106-124,若否,则执行S106-126;
S106-124,将列缓冲区中存储的所述未加载数据,加载至行缓冲区中,执行S106-128;
S106-126,从存储系统中查询所述未加载数据,将未加载数据加载至行缓冲区中,执行S106-128;
S106-128,根据查询参数从行缓冲区中进行数据查询,得到查询结果。
在进行分析型查询时,通过将列缓冲区中的数据加载至行缓冲区中,并基于行缓冲区中的数据进行数据查询,满足了分析型查询对于数据的行式存储的要求。由此可见,基于同一个存储系统,通过在注册查询标识和查询规则时,将相应的数据加载至列缓冲区中,满足了事件型查询对于数据的列式存储要求,并在进行分析型查询时,将列缓冲区中的数据转换到行缓冲区中,满足了分析型查询对于数据的行式存储要求;即基于同一个数据模型,在满足了分析型业务的基础上,可以做到高频率的事件触发,而无需维护多个数据模型,提升了数据模型的维护效率,降低了数据模型的维护成本。
进一步的,考虑到行缓冲区的存储空间通常有限,前述将获取的未加载数据加载至行缓冲区中,包括:
若确定行缓冲区的存储空间不足以存储未加载数据,则创建行缓冲区的子缓冲区,将获取的未加载数据加载至创建的子缓冲区中。
其中,创建的子缓冲区中的第一行,与原始缓冲区中的第一行是同一行。
S108,将查询结果发送给业务系统。
当查询结束后,为了提升缓冲区的利用率,还可以将一些无用的数据及时清理。具体的,本说明书实施例中,步骤S100-6中将待加载数据加载至缓存的列缓冲区中之后,还包括:
将待加载数据在列缓冲区中的位置信息与预注册请求所对应的会话建立关联关系;以及,
若确定位置信息所关联的会话均失效,则删除位置信息所对应的存储空间中的数据。
具体而言,由于某一列数据可能被多个查询所使用,因此,将待加载数据在列缓冲区中的位置信息与预注册请求所对应的会话建立关联关系,以确定某一列数据关联的一个或多个查询;当某一列数据关联的回话均失效时,即关联的多个查询均结束,关联的位置信息所对应的存储空间中的数据已无查询使用,即为失效数据,删除该失效数据以释放列缓冲区的存储空间。其中,位置信息如列号。
进一步的,由于事件型查询的查询规则和查询标识的注册,也是首先将数据加载至列缓冲区中,并从列缓冲区中转换至行缓冲区中,因此在确定某一列数据关联的回话均失效时,还可以同时删除行缓冲区中相应的失效数据,以释放行缓冲区的存储空间。更进一步的,当从行缓冲区中删除失效数据后,所释放的存储空间可以继续存储其他数据。示例如下:
行缓冲区中存储有以下数据:
列1 | 列2 | 列3 | 列4 | 列5 | ||
列1 | 列2 | 列3 | 列4 | 列5 | ||
列1 | 列2 | 列3 | 列4 | 列5 |
删除失效数据“列2”后,行缓冲区的结构如下:
列1 | 列3 | 列4 | 列5 | |||
列1 | 列3 | 列4 | 列5 | |||
列1 | 列3 | 列4 | 列5 |
当有新增数据“列7”时,行缓冲区的结构如下:
列1 | 列7 | 列3 | 列4 | 列5 | ||
列1 | 列7 | 列3 | 列4 | 列5 | ||
列1 | 列7 | 列3 | 列4 | 列5 |
需要指出的是,本说明书中的行缓冲区与现有数据库的行缓冲区有所差异,通常的,一个星形模型是一个行缓冲区,而本申请中的行缓冲区可以分成多个子缓冲区,并且当子缓冲区较多(例如超过3个)时,可以进行子缓冲区的合并,并增加行缓冲区默认的行长度。
为了更好的理解上述数据查询过程,本说明书中给出一个具体示例,如图6所示,存储系统中以列的形式进行数据存储,包括列1存储、列2存储…列8存储;当服务端接收到预注册请求时,根据优化而得的第一查询规则,将确定的待加载数据列1、列3、列5加载至列缓冲区中;以及在接收到第二类型的数据查询请求时,根据待查询数据的查询标识获取关联保存的第一查询规则,根据获取的第一查询规则确定在行缓冲区中的未加载数据为列3和列5,其在列缓冲区中,则从列缓冲区中加载列3和列5至行缓冲区中,并从行缓冲区中进行数据查询。
本说明书实施例中,业务系统预先向服务端注册查询标识和对应的查询规则,服务端基于该查询规则向缓存中加载对应的数据,以在服务端接收到业务系统发送的数据查询请求时,根据查询请求包括的查询标识获取第一查询规则,并根据第一查询规则和数据查询请求包括的查询参数从缓存中进行数据查询处理。由此,基于同一个数据模型,通过预先注册查询标识和查询规则,以及预先将查询规则对应的数据加载至缓存中,并基于缓存中的数据进行数据查询,不仅满足了分析型业务的数据需求,而且了满足事件触发型业务的数据需求,实现了高性能的数据查询;解决了维护多个数据模型,需占用过多存储空间且维护成本高的问题。
对应上述实施例提供的数据查询方法,基于相同的技术构思,本发明实施例还提供了一种数据查询装置,图7为本发明实施例提供的数据查询装置的模块组成示意图,该数据查询装置用于执行图1至图5描述的数据查询方法,如图7所示,该数据查询装置包括:
数据接收模块701,用于接收业务系统发送的数据查询请求,其中,所述数据查询请求包括待查询数据的查询标识和查询参数;
规则获取模块702,用于根据所述查询标识,获取第一查询规则;其中,所述第一查询规则为预先基于所述业务系统发送的预注册请求所确定的最优的查询规则;
查询处理模块703,用于根据所述第一查询规则和所述查询参数,从缓存中进行数据查询处理,得到查询结果;其中,所述缓存中存储的数据为基于所述预注册请求所加载的数据;
结果发送模块704,用于将所述查询结果发送给所述业务系统。
本发明实施例中,基于预先注册的查询标识、查询标识所对应的查询规则、以及基于该查询规则向缓存中加载的数据,使得在接收到业务系统发送的数据查询请求时,能够根据查询请求包括的查询标识获取第一查询规则,并根据第一查询规则和数据查询请求包括的查询参数从缓存中进行数据查询处理。由此,基于同一个数据模型,通过预先注册查询标识和查询规则,以及预先将查询规则对应的数据加载至缓存中,并基于缓存中的数据进行数据查询,不仅满足了分析型业务的数据需求,而且了满足事件触发型业务的数据需求,实现了高性能的数据查询;解决了维护多个数据模型,需占用过多存储空间且维护成本高的问题。
可选地,所述装置还包括:注册模块;
所述数据接收模块701,还用于在接收业务系统发送的数据查询请求之前,接收所述业务系统发送的所述预注册请求,其中,所述预注册请求包括待注册的查询标识和第二查询规则;
所述注册模块,用于对所述第二查询规则进行优化处理,得到所述第一查询规则,将所述第一查询规则和所述待注册的查询标识关联保存;以及,
确定所述第一查询规则对应的待加载数据,从存储系统中查询所述待加载数据,将查询到的所述待加载数据加载至所述缓存的列缓冲区中;
确定所述第一查询规则的元数据信息,将所述元数据信息和所述待注册的查询标识关联发送给所述业务系统,以使所述业务系统根据所述元数据信息更新所述第二查询规则;
所述规则获取模块702,用于根据所述查询标识,获取关联保存的第一查询规则。
可选地,所述数据查询请求为第一类型的查询请求;对应的,所述查询处理模块703具体用于:
确定所述第一查询规则对应的所述待加载数据是否全部加载至所述列缓冲区中;
若是,则根据所述查询参数从所述列缓冲区中进行数据查询处理;
若否,则从所述存储系统中查询所述第一查询规则对应的未加载数据,将所述未加载数据加载至所述列缓冲区中,并根据所述查询参数从所述列缓冲区中进行数据查询处理。
可选地,所述数据查询请求为第二类型的查询请求;对应的,所述查询处理模块703具体用于:
确定所述第一查询规则对应的所述待加载数据是否全部加载至所述缓存的行缓冲区中;
若是,则根据所述查询参数从所述行缓冲区中进行数据查询处理;
若否,则获取所述第一查询规则在所述行缓冲区中所对应的未加载数据,将获取的所述未加载数据加载至所述行缓冲区中,并根据所述查询参数从所述行缓冲区中进行数据查询处理。
可选地,所述查询处理模块,进一步具体用于:
确定所述列缓冲区中是否存储有所述未加载数据;
若是,则将所述列缓冲区中存储的所述未加载数据,加载至所述行缓冲区中;
若否,则从所述存储系统中查询所述未加载数据,将所述未加载数据加载至所述行缓冲区中。
可选地,所述查询处理模块703,进一步具体用于:
若确定所述行缓冲区的存储空间不足以存储所述未加载数据,则创建所述行缓冲区的子缓冲区,将获取的所述未加载数据加载至所述子缓冲区中。
可选地,所述装置还包括:关联模块和删除模块;
所述关联模块,在所述注册模块将所述待加载数据加载至所述缓存的列缓冲区中之后,将所述待加载数据在所述列缓冲区中的位置信息与所述预注册请求所对应的会话建立关联关系;
所述删除模块,用于若确定所述位置信息所关联的会话均失效,则删除所述位置信息所对应的存储空间中的数据。
本发明实施例中的业务处理装置,基于预先注册的查询标识、查询标识所对应的查询规则、以及基于该查询规则向缓存中加载的数据,使得在接收到业务系统发送的数据查询请求时,能够根据查询请求包括的查询标识获取第一查询规则,并根据第一查询规则和数据查询请求包括的查询参数从缓存中进行数据查询处理。由此,基于同一个数据模型,通过预先注册查询标识和查询规则,以及预先将查询规则对应的数据加载至缓存中,并基于缓存中的数据进行数据查询,不仅满足了分析型业务的数据需求,而且了满足事件触发型业务的数据需求,实现了高性能的数据查询;解决了维护多个数据模型,需占用过多存储空间且维护成本高的问题。
本发明实施例提供的数据查询装置能够实现上述数据查询方法对应的实施例中的各个过程,为避免重复,这里不再赘述。
需要说明的是,本发明实施例提供的数据查询装置与本发明实施例提供的数据查询方法基于同一发明构思,因此该实施例的具体实施可以参见前述数据查询方法的实施,重复之处不再赘述。
对应上述实施例提供的数据查询方法,基于相同的技术构思,本发明实施例还提供了一种计算机设备,该设备用于执行上述的数据查询方法,图8为实现本发明各个实施例的一种计算机设备的结构示意图,如图8所示。计算机设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器801和存储器802,存储器802中可以存储有一个或一个以上存储应用程序或数据。其中,存储器802可以是短暂存储或持久存储。存储在存储器802的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对计算机设备中的一系列计算机可执行指令。更进一步地,处理器801可以设置为与存储器802通信,在计算机设备上执行存储器802中的一系列计算机可执行指令。计算机设备还可以包括一个或一个以上电源803,一个或一个以上有线或无线网络接口804,一个或一个以上输入输出接口805,一个或一个以上键盘806。
具体在本实施例中,计算机设备包括有处理器、通信接口、存储器和通信总线;其中,处理器、通信接口以及存储器通过总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序,实现以下方法步骤:
接收业务系统发送的数据查询请求,其中,所述数据查询请求包括待查询数据的查询标识和查询参数;
根据所述查询标识,获取第一查询规则;其中,所述第一查询规则为预先基于所述业务系统发送的预注册请求所确定的最优的查询规则;
根据所述第一查询规则和所述查询参数,从缓存中进行数据查询处理,得到查询结果;其中,所述缓存中存储的数据为基于所述预注册请求所加载的数据;
将所述查询结果发送给所述业务系统。
本发明实施例中的计算机设备,基于预先注册的查询标识、查询标识所对应的查询规则、以及基于该查询规则向缓存中加载的数据,使得在接收到业务系统发送的数据查询请求时,能够根据查询请求包括的查询标识获取第一查询规则,并根据第一查询规则和数据查询请求包括的查询参数从缓存中进行数据查询处理。由此,基于同一个数据模型,通过预先注册查询标识和查询规则,以及预先将查询规则对应的数据加载至缓存中,并基于缓存中的数据进行数据查询,不仅满足了分析型业务的数据需求,而且了满足事件触发型业务的数据需求,实现了高性能的数据查询;解决了维护多个数据模型,需占用过多存储空间且维护成本高的问题。
本发明实施例提供的计算机设备能够实现上述数据查询方法对应的实施例中的各个过程,为避免重复,这里不再赘述。
需要说明的是,本发明实施例提供的计算机设备与本发明实施例提供的数据查询方法基于同一发明构思,因此该实施例的具体实施可以参见前述数据查询方法的实施,重复之处不再赘述。
本申请实施例还提供一种计算机可读存储介质,存储介质内存储有计算机程序,计算机程序被处理器执行时实现以下方法步骤:
接收业务系统发送的数据查询请求,其中,所述数据查询请求包括待查询数据的查询标识和查询参数;
根据所述查询标识,获取第一查询规则;其中,所述第一查询规则为预先基于所述业务系统发送的预注册请求所确定的最优的查询规则;
根据所述第一查询规则和所述查询参数,从缓存中进行数据查询处理,得到查询结果;其中,所述缓存中存储的数据为基于所述预注册请求所加载的数据;
将所述查询结果发送给所述业务系统。
本发明实施例中的计算机可读存储介质在被执行时,基于预先注册的查询标识、查询标识所对应的查询规则、以及基于该查询规则向缓存中加载的数据,使得在接收到业务系统发送的数据查询请求时,能够根据查询请求包括的查询标识获取第一查询规则,并根据第一查询规则和数据查询请求包括的查询参数从缓存中进行数据查询处理。由此,基于同一个数据模型,通过预先注册查询标识和查询规则,以及预先将查询规则对应的数据加载至缓存中,并基于缓存中的数据进行数据查询,不仅满足了分析型业务的数据需求,而且了满足事件触发型业务的数据需求,实现了高性能的数据查询;解决了维护多个数据模型,需占用过多存储空间且维护成本高的问题。
本发明实施例提供的计算机可读存储介质能够实现上述业务处理方法对应的实施例中的各个过程,为避免重复,这里不再赘述。
需要说明的是,本发明实施例提供的计算机可读存储介质与本发明实施例提供的业务处理方法基于同一发明构思,因此该实施例的具体实施可以参见前述业务处理方法的实施,重复之处不再赘述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (9)
1.一种数据查询方法,其特征在于,包括:
接收业务系统发送的预注册请求,其中,所述预注册请求包括待注册的查询标识和第二查询规则;
对所述第二查询规则进行优化处理,得到第一查询规则,将所述第一查询规则和所述待注册的查询标识关联保存;
确定所述第一查询规则对应的待加载数据,从存储系统中查询所述待加载数据,将查询到的所述待加载数据加载至缓存的列缓冲区中;以及,
确定所述第一查询规则的元数据信息,将所述元数据信息和所述待注册的查询标识关联发送给业务系统,以使所述业务系统根据所述元数据信息更新所述第二查询规则;
接收所述业务系统发送的数据查询请求,其中,所述数据查询请求包括待查询数据的查询标识和查询参数;
根据所述查询标识,获取关联保存的第一查询规则;其中,所述第一查询规则为预先基于所述业务系统发送的所述预注册请求所确定的最优的查询规则;
根据所述第一查询规则和所述查询参数,从所述缓存中进行数据查询处理,得到查询结果;其中,所述缓存中存储的数据为基于所述预注册请求所加载的数据;
将所述查询结果发送给所述业务系统。
2.根据权利要求1所述的方法,其特征在于,所述数据查询请求为第一类型的查询请求;
所述根据所述第一查询规则和所述查询参数,从缓存中进行数据查询处理,包括:
确定所述第一查询规则对应的所述待加载数据是否全部加载至所述列缓冲区中;
若是,则根据所述查询参数从所述列缓冲区中进行数据查询处理;
若否,则从所述存储系统中查询所述第一查询规则对应的未加载数据,将所述未加载数据加载至所述列缓冲区中,并根据所述查询参数从所述列缓冲区中进行数据查询处理。
3.根据权利要求1所述的方法,其特征在于,所述数据查询请求为第二类型的查询请求;
所述根据所述第一查询规则和所述查询参数,从缓存中进行数据查询处理,包括:
确定所述第一查询规则对应的所述待加载数据是否全部加载至所述缓存的行缓冲区中;
若是,则根据所述查询参数从所述行缓冲区中进行数据查询处理;
若否,则获取所述第一查询规则在所述行缓冲区中所对应的未加载数据,将获取的所述未加载数据加载至所述行缓冲区中,并根据所述查询参数从所述行缓冲区中进行数据查询处理。
4.根据权利要求3所述的方法,其特征在于,所述获取所述第一查询规则在所述行缓冲区中所对应的未加载数据,将获取的所述未加载数据加载至所述行缓冲区中,包括:
确定所述列缓冲区中是否存储有所述未加载数据;
若是,则将所述列缓冲区中存储的所述未加载数据,加载至所述行缓冲区中;
若否,则从所述存储系统中查询所述未加载数据,将所述未加载数据加载至所述行缓冲区中。
5.根据权利要求3所述的方法,其特征在于,所述将获取的所述未加载数据加载至所述行缓冲区中,包括:
若确定所述行缓冲区的存储空间不足以存储所述未加载数据,则创建所述行缓冲区的子缓冲区,将获取的所述未加载数据加载至所述子缓冲区中。
6.根据权利要求2-5任一项所述的方法,其特征在于,所述将所述待加载数据加载至所述缓存的列缓冲区中之后,还包括:
将所述待加载数据在所述列缓冲区中的位置信息与所述预注册请求所对应的会话建立关联关系;以及,
若确定所述位置信息所关联的会话均失效,则删除所述位置信息所对应的存储空间中的数据。
7.一种数据查询装置,其特征在于,包括:
数据接收模块,用于接收业务系统发送的预注册请求,其中,所述预注册请求包括待注册的查询标识和第二查询规则;
注册模块,用于对所述第二查询规则进行优化处理,得到第一查询规则,将所述第一查询规则和所述待注册的查询标识关联保存;确定所述第一查询规则对应的待加载数据,从存储系统中查询所述待加载数据,将查询到的所述待加载数据加载至缓存的列缓冲区中;以及,确定所述第一查询规则的元数据信息,将所述元数据信息和所述待注册的查询标识关联发送给业务系统,以使所述业务系统根据所述元数据信息更新所述第二查询规则;
所述数据接收模块,还用于接收所述业务系统发送的数据查询请求,其中,所述数据查询请求包括待查询数据的查询标识和查询参数;
规则获取模块,用于根据所述查询标识,获取关联保存的第一查询规则;其中,所述第一查询规则为预先基于所述业务系统发送的所述预注册请求所确定的最优的查询规则;
查询处理模块,用于根据所述第一查询规则和所述查询参数,从所述缓存中进行数据查询处理,得到查询结果;其中,所述缓存中存储的数据为基于所述预注册请求所加载的数据;
结果发送模块,用于将所述查询结果发送给所述业务系统。
8.一种计算机设备,其特征在于,包括处理器、通信接口、存储器和通信总线;其中,所述处理器、所述通信接口以及所述存储器通过总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现如权利要求1-6任一项所述的数据查询方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6任一项所述的数据查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010089925.3A CN113254480B (zh) | 2020-02-13 | 2020-02-13 | 一种数据查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010089925.3A CN113254480B (zh) | 2020-02-13 | 2020-02-13 | 一种数据查询方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113254480A CN113254480A (zh) | 2021-08-13 |
CN113254480B true CN113254480B (zh) | 2024-04-19 |
Family
ID=77220062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010089925.3A Active CN113254480B (zh) | 2020-02-13 | 2020-02-13 | 一种数据查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113254480B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113641713A (zh) * | 2021-08-30 | 2021-11-12 | 北京沃东天骏信息技术有限公司 | 一种数据处理的方法和装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104537030A (zh) * | 2014-12-22 | 2015-04-22 | 华为技术有限公司 | 一种业务数据查询方法及装置、数据库系统 |
CN105119752A (zh) * | 2015-09-08 | 2015-12-02 | 北京京东尚科信息技术有限公司 | 一种分布式日志采集方法、装置及系统 |
CN105718455A (zh) * | 2014-12-01 | 2016-06-29 | 阿里巴巴集团控股有限公司 | 一种数据查询方法及装置 |
CN108259563A (zh) * | 2017-12-12 | 2018-07-06 | 平安普惠企业管理有限公司 | 数据缓存方法、装置、服务器和存储介质 |
CN109325089A (zh) * | 2018-10-10 | 2019-02-12 | 北京锐安科技有限公司 | 一种非定点对象查询方法、装置、终端设备及存储介质 |
US10296618B1 (en) * | 2013-05-20 | 2019-05-21 | EMC IP Holding Company LLC | Storage system query mechanism and techniques |
CN110399388A (zh) * | 2019-07-29 | 2019-11-01 | 中国工商银行股份有限公司 | 数据查询方法、系统和设备 |
CN110515979A (zh) * | 2019-09-03 | 2019-11-29 | 深圳乐信软件技术有限公司 | 数据查询方法、装置、设备和存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9563663B2 (en) * | 2012-09-28 | 2017-02-07 | Oracle International Corporation | Fast path evaluation of Boolean predicates |
US10942938B2 (en) * | 2017-08-31 | 2021-03-09 | Sap Se | Caching for query processing systems |
-
2020
- 2020-02-13 CN CN202010089925.3A patent/CN113254480B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10296618B1 (en) * | 2013-05-20 | 2019-05-21 | EMC IP Holding Company LLC | Storage system query mechanism and techniques |
CN105718455A (zh) * | 2014-12-01 | 2016-06-29 | 阿里巴巴集团控股有限公司 | 一种数据查询方法及装置 |
CN104537030A (zh) * | 2014-12-22 | 2015-04-22 | 华为技术有限公司 | 一种业务数据查询方法及装置、数据库系统 |
CN105119752A (zh) * | 2015-09-08 | 2015-12-02 | 北京京东尚科信息技术有限公司 | 一种分布式日志采集方法、装置及系统 |
CN108259563A (zh) * | 2017-12-12 | 2018-07-06 | 平安普惠企业管理有限公司 | 数据缓存方法、装置、服务器和存储介质 |
CN109325089A (zh) * | 2018-10-10 | 2019-02-12 | 北京锐安科技有限公司 | 一种非定点对象查询方法、装置、终端设备及存储介质 |
CN110399388A (zh) * | 2019-07-29 | 2019-11-01 | 中国工商银行股份有限公司 | 数据查询方法、系统和设备 |
CN110515979A (zh) * | 2019-09-03 | 2019-11-29 | 深圳乐信软件技术有限公司 | 数据查询方法、装置、设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
"新型数据管理系统研究进展与趋势";崔斌 等;《软件学报》;20190131;第30卷(第1期);第164-193页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113254480A (zh) | 2021-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107515878B (zh) | 一种数据索引的管理方法及装置 | |
CN109947668B (zh) | 存储数据的方法和装置 | |
CN106095789B (zh) | 一种消息订阅管理装置及方法 | |
CN107103011B (zh) | 终端数据搜索的实现方法和装置 | |
CN105117433A (zh) | 一种基于Hive解析HFile统计查询HBase的方法和系统 | |
CN104657435A (zh) | 一种应用数据的存储管理方法和网络管理系统 | |
CN111414361A (zh) | 标签数据存储方法、装置、设备及可读存储介质 | |
CN114820080A (zh) | 基于人群流转的用户分群方法、系统、装置及介质 | |
CN113254480B (zh) | 一种数据查询方法及装置 | |
CN112860412B (zh) | 业务数据处理方法、装置、电子设备及存储介质 | |
CN104408056B (zh) | 一种数据处理方法和装置 | |
CN112541001A (zh) | 数据查询方法、装置、存储介质及设备 | |
CN115391286A (zh) | 一种链路追踪数据管理方法、装置、设备及存储介质 | |
CN111061719B (zh) | 数据收集方法、装置、设备和存储介质 | |
CN110888847B (zh) | 一种回收站系统及文件回收方法 | |
CN108763498B (zh) | 用户身份识别方法、装置、电子设备及可读存储介质 | |
CN107015999B (zh) | 一种基于分布式环境的信息发送方法及装置 | |
CN105718485A (zh) | 一种将数据录入数据库的方法及装置 | |
CN113055419B (zh) | 一种信息发送方法及装置 | |
CN116760885B (zh) | 算力网络业务管理方法、装置、设备、介质及程序产品 | |
CN110708676A (zh) | 一种s1口集群消息处理方法、网络节点及基站 | |
CN116166671B (zh) | 一种内存数据库表格预关联的处理方法、系统和介质 | |
CN116244258A (zh) | 半结构化数据的处理方法、处理器、系统及存储介质 | |
CN107102905B (zh) | 基于Artifact的大数据服务的平台及平台处理方法 | |
CN115374148A (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 |