CN111858656A - 一种基于分布式架构的静态数据的查询方法和设备 - Google Patents

一种基于分布式架构的静态数据的查询方法和设备 Download PDF

Info

Publication number
CN111858656A
CN111858656A CN202010702502.4A CN202010702502A CN111858656A CN 111858656 A CN111858656 A CN 111858656A CN 202010702502 A CN202010702502 A CN 202010702502A CN 111858656 A CN111858656 A CN 111858656A
Authority
CN
China
Prior art keywords
data
static data
node
storage
query
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.)
Pending
Application number
CN202010702502.4A
Other languages
English (en)
Inventor
刘睿民
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Weixun Boray Data Technology Beijing Co ltd
Original Assignee
Weixun Boray Data Technology Beijing Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Weixun Boray Data Technology Beijing Co ltd filed Critical Weixun Boray Data Technology Beijing Co ltd
Priority to CN202010702502.4A priority Critical patent/CN111858656A/zh
Publication of CN111858656A publication Critical patent/CN111858656A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24539Query rewriting; Transformation using cached or materialised query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

Abstract

本发明公开了一种基于分布式架构的静态数据的查询方法和设备,所述方法应用于包括主节点和存储节点的分布式架构中,所述分布式架构设置于内存中,该方法包括:所述主节点根据用户发送的静态数据查询请求生成执行计划,并将所述执行计划推送至所述存储节点,所述主节点根据所述存储节点的数量和所述存储节点返回的与所述执行计划对应的执行结果确定查询结果,并将所述查询结果返回给所述用户,从而使大规模静态数据的处理效率得到显著提升且不存在性能瓶颈等限制,提高了对大规模静态数据的查询速度以及用户体验。

Description

一种基于分布式架构的静态数据的查询方法和设备
技术领域
本申请涉及数据处理领域,更具体地,涉及一种基于分布式架构的静态数据的查询方法和设备。
背景技术
静态数据可以理解为一段时间的历史数据,是指在运行过程中主要作为控制或参考使用的静态数据集,这些数据一般不会随运行而变,即在很长一段时间内存不会发生变化,其主要特点是数据量大、有界、持久存储。静态数据一般应用于历史账单查询、消费记录查询、经济增长趋势分析预测、用户画像、精准营销等领域。
现有技术中对静态数据进行处理方式主要分为基于传统数据库的并行处理方式和基于内存计算的单机处理方式。
如图1所示为基于传统数据库的并行处理方式的原理示意图,该方式在处理大规模静态数据时,采用的是分布式架构,使用的物理介质为硬盘(包括磁盘和固态硬盘),处理机制为存储与处理分离,即大规模静态数据存储在分布式集群计算节点的磁盘(或固态盘)上,当有用户需要查询时,再将数据批量加载至内存进行处理,一批数据处理结束释放内存空间后再加载下一批数据进行处理,直至所有数据全部处理完毕,再将各个计算节点获取的数据进行合并,向用户反馈查询结果。
这种处理方式在处理大规模静态数据时,尽管采用分布式架构使得分布式集群扩展性和数据并行处理能力获得很大提升,但是仍然没有摆脱与磁盘频繁地交互导致的系统性能瓶颈。由于对磁盘读写数据的操作一方面要进行磁头的机械移动,另一方面收到系统调用(通常通过CPU中断完成,受到CPU时钟周期的制约)时间的影响,当数据量很大,操作频繁且复杂时,产生的延迟就变得十分明显,且延迟会随着数据量的增长呈线性增长,导致查询性能低下、响应速度较慢。因此即使后来使用读写操作更快的固态盘替代了磁盘、架构也从单机转变为分布式,基于传统数据库的并行处理方式的数据处理和查询效率仍无法满足大规模静态数据的实时性要求。
如图2所示为基于内存计算的单机处理方式的原理示意图,该方式采用设置于内存的单机处理机制和架构,即数据存储和处理均在内存中完成。应用该方式在处理大规模静态数据时,首先将大规模静态数据集中存储与单机设备的内存中,在处理用户的静态数据查询请求时,再直接从内存中获取查询结果,返回给用户。相比基于硬盘的数据处理方式,此种处理方式的处理机制更先进,并凭借内存的电信号比硬盘的机械操作的天然优势,使得处理效率得到显著提升。但受到单机本身扩展空间有限、存在性能瓶颈等限制,单台设备所能够处理的数据量和所能提供的数据处理性能都是有上限,一旦数据量超过其负载,数据处理能力会有很大下降。因此,虽然采用物理介质和处理机制更为先进,但是基于内存计算的单机处理方式仍然无法适用于大规模静态数据。
因此,如何提高对大规模静态数据的查询速度,是目前有待解决的技术问题。
发明内容
本发明提供一种基于分布式架构的静态数据的查询方法和设备,用以解决现有技术存在的性能瓶颈,以及数据量超过其负载时数据处理能力会有很大下降的技术问题,所述方法应用于包括主节点和存储节点的分布式架构中,所述分布式架构设置于内存中,所述方法包括:
所述主节点根据用户发送的静态数据查询请求生成执行计划,并将所述执行计划推送至所述存储节点;
所述主节点根据所述存储节点的数量和所述存储节点返回的与所述执行计划对应的执行结果确定查询结果,并将所述查询结果返回所述用户。
优选地,在所述主节点根据用户发送的静态数据查询请求生成执行计划之前,还包括:
所述主节点根据监听到的静态数据接入事件确定待接入静态数据;
所述主节点根据所述待接入静态数据的类型确定数据连接进程;
所述主节点基于所述数据连接进程将所述待接入静态数据批量接入预处理空间,并在所述预处理空间将所述待接入静态数据转换为预设格式的静态数据;
所述主节点根据所述数量将所述预设格式的静态数据存储在所述存储节点上。
优选地,在所述主节点根据所述数量将所述预设格式的静态数据存储在所述存储节点上之前,还包括:
若所述主节点判断所述总可用存储空间小于所述预设格式的静态数据的数据量;
所述主节点对所述总可用存储空间进行扩展,以使扩展后的总可用存储空间大于所述数据量。
优选地,所述主节点根据所述数量将所述预设格式的静态数据存储在所述存储节点上,具体为:
若所述数量为一个,所述主节点将所述预设格式的静态数据存储在所述存储节点上;
若所述数量为多个,所述主节点基于负载均衡将所述预设格式的静态数据均匀存储在各所述存储节点上。
优选地,所述主节点根据所述存储节点的数量和所述存储节点返回的与所述执行计划对应的执行结果确定查询结果,具体为:
若所述数量为一个且所述执行结果为存在与所述静态数据查询请求中的查询条件对应的结果数据,所述主节点根据所述结果数据确定所述查询结果;
若所述数量为多个且所述执行结果为存在所述结果数据,所述主节点根据各所述结果数据的合并结果确定所述查询结果。
相对应的,本发明还提出了一种基于分布式架构的静态数据的查询设备,所述设备应用于包括主节点和存储节点的分布式架构中,所述分布式架构设置于内存中,所述设备包括:
生成模块,用于所述主节点根据用户发送的静态数据查询请求生成执行计划,并将所述执行计划推送至所述存储节点;
确定模块,用于所述主节点根据所述存储节点的数量和所述存储节点返回的与所述执行计划对应的执行结果确定查询结果,并将所述查询结果返回给所述用户。
优选地,还包括存储模块,用于:
所述主节点根据监听到的静态数据接入事件确定待接入静态数据;
所述主节点根据所述待接入静态数据的类型确定数据连接进程;
所述主节点基于所述数据连接进程将所述待接入静态数据批量接入预处理空间,并在所述预处理空间将所述待接入静态数据转换为预设格式的静态数据;
所述主节点根据所述数量将所述预设格式的静态数据存储在所述存储节点上。
优选地,所述存储模块,还用于:
若所述主节点判断所述总可用存储空间小于所述预设格式的静态数据的数据量;
所述主节点对所述总可用存储空间进行扩展,以使扩展后的总可用存储空间大于所述数据量。
优选地,所述存储模块,具体用于:
若所述数量为一个,所述主节点将所述预设格式的静态数据存储在所述存储节点上;
若所述数量为多个,所述主节点基于负载均衡将所述预设格式的静态数据均匀存储在各所述存储节点上。
优选地,所述确定模块,具体用于:
若所述数量为一个且所述执行结果为存在与所述静态数据查询请求中的查询条件对应的结果数据,所述主节点根据所述结果数据确定所述查询结果;
若所述数量为多个且所述执行结果为存在所述结果数据,所述主节点根据各所述结果数据的合并结果确定所述查询结果。
与现有技术相比,本发明具有以下有益效果:
本发明公开了一种基于分布式架构的静态数据的查询方法和设备,所述方法应用于包括主节点和存储节点的分布式架构中,所述分布式架构设置于内存中,该方法包括:所述主节点根据用户发送的静态数据查询请求生成执行计划,并将所述执行计划推送至所述存储节点,所述主节点根据所说存储节点的数量和所述存储节点返回的与所述执行计划对应的执行结果确定查询结果,并将所述查询结果返回所述用户,从而使大规模静态数据的处理效率得到显著提升且不存在性能瓶颈等限制,提高了对大规模静态数据的查询速度以及用户体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了现有技术中基于传统数据库的并行处理方式的原理示意图;
图2示出了现有技术中基于内存计算的单机处理方式的原理示意图;
图3示出了本发明优选实施例中提出的一种基于分布式架构的静态数据的查询方法的流程示意图;
图4示出了本发明具体实施例中提出的一种基于分布式架构的存储静态数据的方法的流程示意图;
图5示出了本发明又一实施例提出的一种基于分布式架构的静态数据的查询方法的流程示意图;
图6示出了本发明实施例提出的一种基于分布式架构的静态数据的查询设备的结构示意图;
图7示出了本优选实施例中提出一种基于分布式架构的静态数据的查询方法的原理示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如背景技术中所述,现有技术对静态数据进行处理的方式主要是基于传统数据库的并行处理方式和基于内存计算的单机处理方式。
基于传统数据库的并行处理方式在数据量很大,操作频繁且复杂时,产生的延迟十分明显,且延迟会随着数据量的增长呈线性增长,导致查询性能低下,响应速度较慢,无法满足大规模静态数据的实时性要求。
而基于内存计算的单机处理方式受到单机本身扩展空间有限、存在性能瓶颈等限制,一旦数据量超过其负载,数据处理能力会有很大下降。
因此,本发明提出了一种基于分布式架构的静态数据的查询方法,用以解决现有技术中存在性能瓶颈,响应速度慢,以及数据量超过其负载时数据处理能力会有很大下降的技术问题。
如图3所示为本申请优选实施例提出的一种基于分布式架构的静态数据的查询方法,所述方法应用于包括主节点和存储节点的分布式架构中,所述分布式架构设置于内存中,该方法包括以下步骤:
步骤S301、所述主节点根据用户发送的静态数据查询请求生成执行计划,并将所述执行计划推送至所述存储节点。
本申请中的分布式架构包含主节点和存储节点,且该分布式架构设置于内存中,静态数据在存储节点中是均匀分布存储的,主节点用来实时接收用户发出的静态数据查询请求,并根据该静态数据查询请求开启一个数据并行查询进程,再根据分布式架构中存储节点的数量创建对应数量的数据并行查询子进程,数据并行查询进程运行于主节点上,数据并行查询子进程运行于存储节点上,与存储节点一一对应。
本步骤中,主节点根据静态数据查询请求开启的数据并行查询进程会根据该请求中提交的SQL语句进行解析、优化,生成对应的执行计划,并将该执行计划推送至各存储节点中上执行。
为了提高静态数据的查询速度,在本申请优选实施例中,在所述主节点根据用户发送的静态数据查询请求生成执行计划之前,还包括:
所述主节点根据监听到的静态数据接入事件确定待接入静态数据;
所述主节点根据所述待接入静态数据的类型确定数据连接进程;
所述主节点基于所述数据连接进程将所述待接入静态数据批量接入预处理空间,并在所述预处理空间将所述待接入静态数据转换为预设格式的静态数据;
所述主节点根据所述数量将所述预设格式的静态数据存储在所述存储节点上。
具体的,可在主节点上设置有监听器,当有静态数据需要接入该系统时,该监听器就会被触发,同时判断并获取待接入静态数据的数据类型,并向主节点发送包含静态数据接入事件和待接入静态数据的数据类型的通知,主节点接收通知并根据通知中监听器监听到的静态数据接入事件确定待接入静态数据,主节点再根据对应的数据类型确定数据连接进程,在本申请具体的应用场景中,数据连接进程可以为数据连接器,基于该数据连接进程将待接入静态数据批量接入预处理空间,在预处理空间中将待接入静态数据转换为预设格式的静态数据,其中,预处理空间的介质为内存。
待接入的静态数据可能会是各种不同的数据类型,若是将不同数据类型的静态数据直接存储至存储节点中,会导致查询时效率低下且占用过多的系统内存、计算等资源,因此可在预处理空间将待接入静态数据统一转换为如CSV(Comma-Separated Values,字符分隔值文件格式)格式的预设格式,CSV格式通用性较强,可以支持将数据库数据导出至HTTP、FTP、HDFS等路径下,其中,预设格式还可以为TXT、JSON等格式,本领域技术人员可根据实际情况在开发时设定好。
将待接入静态数据转换为预设格式的静态数据后,主节点会根据存储节点的数量将预设格式的静态数据均匀存储在存储节点上,然后再对下一批待接入静态数据进行处理。
为了更准确的将预设格式的静态数据存储在存储节点上,在本申请优选实施例中,在所述主节点根据所述数量将所述预设格式的静态数据存储在所述存储节点上之前,还包括:
若所述主节点判断所述总可用存储空间小于所述预设格式的静态数据的数据量;
所述主节点对所述总可用存储空间进行扩展,以使扩展后的总可用存储空间大于所述数据量。
具体的,主节点在将预设格式的静态数据存储至存储节点前会将该静态数据的数据量与存储节点的总可用存储空间进行对比,当判断出存储节点的总可用存储空间小于预设格式的静态数据的数据量时会先对总可用存储空间进行扩展,以使扩展后的总可用存储空间大于预设格式的静态数据的数据量。
其中,对总可用存储空间的扩展可以是启用一个新的存储节点或是空闲存储节点或是备用存储节点。
需要说明的是,以上扩展总可用存储空间的方案仅为本申请中一种具体实现方式,其他对总可用存储空间进行扩展以使预设格式的静态数据存储至存储节点的方式均属于本申请的保护范围。
为了提高静态数据的查询速度,在本申请优选实施例中,所述主节点根据所述数量将所述预设格式的静态数据存储在所述存储节点上,具体为:
若所述数量为一个,所述主节点将所述预设格式的静态数据存储在所述存储节点上;
若所述数量为多个,所述主节点基于负载均衡将所述预设格式的静态数据均匀存储在各所述存储节点上。
具体的,若是存储节点的数量仅为一个时,主节点则直接将预设格式的静态数据存储在该存储节点上,若是存储节点的数量为多个时,主节点则基于负载均衡将预设格式的静态数据均匀存储在个存储节点上。
需要说明的是,以上将预设格式的静态数据存储至存储节点的方案仅为本申请的一种具体实现方式,其他将预设格式的静态数据存储至存储节点的方式均属于本申请的保护范围。
步骤S302、所述主节点根据所述存储节点的数量和所述存储节点返回的与所述执行计划对应的执行结果确定查询结果,并将所述查询结果返回所述用户。
具体的,各存储节点上都运行着对应的数据并行查询子进程,数据并行查询子进程根据查询条件从对应的存储节点上获取结果数据,并将该结果数据返回至主节点中,主节点上的数据并行查询进程根据存储节点的数量和各存储节点返回的与执行计划对应的执行结果确定查询结果,然后将该查询结果返回给用户。
为了更加快速的对静态数据进行查询,在本申请优选实施例中,所述主节点根据所述存储节点的数量和所述存储节点返回的与所述执行计划对应的执行结果确定查询结果,具体为:
若所述数量为一个且所述执行结果为存在与所述静态数据查询请求中的查询条件对应的结果数据,所述主节点根据所述结果数据确定所述查询结果;
若所述数量为多个且所述执行结果为存在所述结果数据,所述主节点根据各所述结果数据的合并结果确定所述查询结果。
具体的,若是存储节点仅为一个且执行结果为存在与静态数据查询请求中的查询条件对应的结果数据时,则主节点直接根据该结果数据确定查询结果并向用户返回,若是存储节点为多个且执行结果为存在结果数据时,主节点将各存储节点返回的结果数据进行合并,将合并结果作为查询结果返回给用户,在将查询结果返回给用户后关闭数据并行查询进程和数据并行查询子进程,释放其占用的内存、计算、网络传输等资源。
若是数据并行查询进程和数据并行查询子进程没有查找到符合查询条件的结果数据时,则向用户返回“无满足条件的数据”的通知,并关闭数据并行查询进程和数据并行查询子进程,释放其占用的内存、计算、网络传输等资源,本申请的一种基于分布式架构的静态数据的查询方法的原理示意图可如图7所示。
另外,本申请还可设置有副节点,该副节点也是故障处理节点,副节点上存储有主节点运行所需要的主节点数据,其与架构中所有节点相连接,当副节点监测到静态数据接入事件被触发但主节点无响应时,或副节点监测到在接收静态数据查询请求后主节点在预设时间内无响应时,则判断主节点出现故障,然后副节点重新选择一个空闲节点作为新主节点,并将主节点数据发送至新主节点中,新主节点通过运行主节点数据与所有节点相连接并开始工作。
当副节点监测到存储节点在将预设格式的静态数据进行存储时无响应以及数据查询子进程在存储节点无法正常运行时,则向主节点发送该存储节点故障的通知,以使主节点重新根据存储节点的数量将预设格式的静态数据进行存储。
通过应用以上技术方案,所述主节点根据用户发送的静态数据查询请求生成执行计划,并将所述执行计划推送至所述存储节点,所述主节点根据所说存储节点的数量和所述存储节点返回的与所述执行计划对应的执行结果确定查询结果,并将所述查询结果返回所述用户,从而使大规模静态数据的处理效率得到显著提升且不存在性能瓶颈等限制,实现了响应速度快,且提高了对大规模静态数据的查询速度以及用户体验。
为了进一步阐述本发明的技术思想,如图4所示为本发明具体实施例提出的一种基于分布式架构的存储静态数据的方法的流程示意图,该方法应用于包括主节点和存储节点的分布式架构中,所述分布式架构设置于内存中,该方法包括以下步骤:
步骤S401、监听器实时监听到静态数据接入事件,并获取待接入静态数据的数据类型,主节点根据该数据类型提供对应类型的数据连接器。
具体的,主节点上设置有监听器,通过该监听器来实时的监听接收静态数据接入事件,当有静态数据需要接入系统时,该事件则会被触发,监听器同时会获取待接入静态数据的数据类型,主节点会根据该数据类型提供与该数据类型一致的数据连接器,主节点还会创建数据预处理进程和数据并行存储进程。
其中,数据连接器是预先存储至系统中的。
步骤S402、将待接入静态数据批量接入,并进行预处理转换成统一的CSV格式数据。
具体的,数据连接器连接待接入静态数据后,数据预处理进程会通过数据连接器将待接入静态数据批量加载至预处理空间,并在预处理空间中将待接入静态数据由不同格式转换为统一的预设格式的预处理数据。
其中,预设格式可以是CSV(Comma-Separated Values,字符分隔值文件格式)格式的预设格式,CSV格式通用性较强,可以支持将数据库数据导出至HTTP、FTP、HDFS等路径下,其中,预设格式还可以为TXT、JSON等格式,本领域技术人员可根据实际情况在开发时设定好。
步骤S403、判断存储节点的总可用存储空间能否满足预处理数据存储需求。
具体的,数据并行存储进程会判断存储节点的总可用存储空间是否满足预处理数据的存储要求,若满足则执行步骤S405,若不满足则执行步骤S404。
步骤S404、向主节点发出内存扩展通知,并完成存储节点扩展。
具体的,若存储借点的总可用存储空间不满足预处理数据的存储要求,则数据存储进程向主节点发送内存扩展通知并完成存储节点扩展。
其中,对总可用存储空间的扩展可以是启用一个新的存储节点或是空闲存储节点或是备用存储节点,然后执行步骤S407.
步骤S405、判断存储节点数量是否>1。
具体的,数据并行存储进程统计存储节点的数量,并判断存储节点数量是否大于1,若是,则执行步骤S407,若否,则执行步骤S406。
步骤S406、将预处理数据存储至存储节点中。
具体的,当存储节点只有一个时,则直接预处理数据存储至该存储节点中,然后执行步骤S409。
步骤S407、根据预处理数据的数据量和存储节点数量,对所述数据进行分组。
具体的,数据并行存储进程根据存储节点的数量和负载均衡将预处理数据进行分组,每一组数据对应一个存储节点。以使将预处理数据均匀存储至各存储节点中。
步骤S408、将所述的分组数据分别存入各存储节点中。
具体的,当分组数据都已存储至存储节点后,数据预处理进程再接入下一批静态数据进行预处理操作。
步骤S409、预处理数据存储至存储节点的总可用存储空间,释放相关资源。
具体的,当所有预处理数据都存储至存储节点后,关闭数据预处理进程和数据并行存储进程,释放其占用内存、计算、网络传输等资源。
通过应用以上技术方案,实时接收静态数据接入事件,将待接入静态数据转换为预设格式的预处理数据,然后根据存储节点的数量以及预处理数据的数据量来将预处理数据均匀的存储至存储节点中,其存储节点还可以根据需要自由扩展,满足大规模静态数据内存存储和并行处理的需求,彻底解决了因扩展困难带来的性能瓶颈导致大规模静态数据无法被同步处理的技术问题。
为了更好的提升静态数据的查询速度,如图5所示为本发明又一实施例提出的一种基于分布式架构的静态数据的查询方法,该方法应用于包括主节点和存储节点的分布式架构中,所述分布式架构设置于内存中,该方法包括以下步骤:
步骤S501、主节点实时接收用户发出的静态数据查询请求。
步骤S502、主节点中建立数据并行查询进程,并对用户提交的SQL语句进行解析、优化,生成对应的执行计划。
具体的,主节点在接收到用户发送的静态数据查询求后,会根据该静态数据查询请求开启一个对应的数据并行查询进程,该数据并行进程中包含多个并行的数据并行查询子进程,该数据并行查询进程运行在主节点中,数据并行查询子进程运行在各存储节点中,且数量一致。
主节点在建立数据并行查询进程时还对用户提交的SQL语句进行解析、优化,生成对应的执行计划。
步骤S503、判断存储节点数量是否>1。
具体的,主节点判断存储节点数量是否大于1,若是,则执行步骤S508,若否,则执行步骤S504。
步骤S504、直接在所述存储节点执行计划。
具体的,当存储节点数量为1时,直接将执行计划在该存储节点执行。
步骤S505、存储节点中是否存在符合查询条件的数据。
具体的,数据并行查询进程根据查询条件判断该存储节点中是否存在符合查询条件的数据,若是,则执行步骤S506,若否,则执行步骤S507。
步骤S506、根据查询条件从所述存储节点中确定并获取符合条件的结果数据。
具体的,获取到结果数据后执行步骤S512。
步骤S507、向所述用户返回“无满足条件的数据”的通知。
具体的,向用户返回“无满足条件的数据”通知后执行步骤S514。
步骤S508、通过任务调度,将所述的执行计划分别下推至所述的多个存储节点并执行。
具体的,当存储节点的数量大于1时,主节点通过任务调度将执行计划推送至各存储节点中执行。
步骤S509、所述存储节点中是否存在符合条件的数据。
数据并行查询子进程在各存储节点上根据查询条件判断是否存在符合查询条件的数据,若是,则执行步骤S510,若否,则执行步骤S507。
步骤S510、从所述的各个存储节点中确定并获取符合查询条件的数据。
具体的,数据并行查询子进程根据查询条件在各存储节点上获取符合查询条件的数据,并将该数据返回给主节点。
步骤S511、所述主节点将所获取的结果数据进行合并。
具体的,主节点将获取到的结果数据进行合并得到查询结果。
步骤S512、向所述用户返回查询结果。
步骤S513、删除或存储所述查询结果。
根据用户的下一步指示对查询结果进行操作处理。
步骤S514、关闭数据并行查询进程,释放其占用的内存、网络传输、计算等资源。
通过应用以上技术方案,接收到用户发送的静态数据查询请求,解析该请求并生成执行计划,然后根据存储节点的数量和查询条件来查询获取需要的结果数据,不需要与磁盘进行频繁的交互,解决了处理大规模静态数据存在较大延迟、静态数据查询效率始终难以得到提升的技术问题。
与本申请优选实施例中的一种基于分布式架构的静态数据的查询方法相对应,本申请还提出了一种基于分布式架构的静态数据的查询设备,如图6所示,应用于包括主节点和存储节点的分布式架构中,所述分布式架构设置于内存中,所述设备包括:
生成模块601,用于所述主节点根据用户发送的静态数据查询请求生成执行计划,并将所述执行计划推送至所述存储节点;
确定模块602,用于所述主节点根据所述存储节点的数量和所述存储节点返回的与所述执行计划对应的执行结果确定查询结果,并将所述查询结果返回给所述用户。
在具体的应用场景中,还包括存储模块,用于:
所述主节点根据监听到的静态数据接入事件确定待接入静态数据;
所述主节点根据所述待接入静态数据的类型确定数据连接进程;
所述主节点基于所述数据连接进程将所述待接入静态数据批量接入预处理空间,并在所述预处理空间将所述待接入静态数据转换为预设格式的静态数据;
所述主节点根据所述数量将所述预设格式的静态数据存储在所述存储节点上。
在具体的应用场景中,所述存储模块,还用于:
若所述主节点判断所述总可用存储空间小于所述预设格式的静态数据的数据量;
所述主节点对所述总可用存储空间进行扩展,以使扩展后的总可用存储空间大于所述数据量。
在具体的应用场景中,所述存储模块,具体用于:
若所述数量为一个,所述主节点将所述预设格式的静态数据存储在所述存储节点上;
若所述数量为多个,所述主节点基于负载均衡将所述预设格式的静态数据均匀存储在各所述存储节点上。
在具体的应用场景中,所述确定模块602,还具体用于:
若所述数量为一个且所述执行结果为存在与所述静态数据查询请求中的查询条件对应的结果数据,所述主节点根据所述结果数据确定所述查询结果;
若所述数量为多个且所述执行结果为存在所述结果数据,所述主节点根据各所述结果数据的合并结果确定所述查询结果。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种基于分布式架构的静态数据的查询方法,其特征在于,所述方法应用于包括主节点和存储节点的分布式架构中,所述分布式架构设置于内存中,所述方法包括:
所述主节点根据用户发送的静态数据查询请求生成执行计划,并将所述执行计划推送至所述存储节点;
所述主节点根据所述存储节点的数量和所述存储节点返回的与所述执行计划对应的执行结果确定查询结果,并将所述查询结果返回所述用户。
2.如权利要求1所述的方法,其特征在于,在所述主节点根据用户发送的静态数据查询请求生成执行计划之前,还包括:
所述主节点根据监听到的静态数据接入事件确定待接入静态数据;
所述主节点根据所述待接入静态数据的类型确定数据连接进程;
所述主节点基于所述数据连接进程将所述待接入静态数据批量接入预处理空间,并在所述预处理空间将所述待接入静态数据转换为预设格式的静态数据;
所述主节点根据所述数量将所述预设格式的静态数据存储在所述存储节点上。
3.如权利要求2所述的方法,其特征在于,在所述主节点根据所述数量将所述预设格式的静态数据存储在所述存储节点上之前,还包括:
若所述主节点判断所述总可用存储空间小于所述预设格式的静态数据的数据量;
所述主节点对所述总可用存储空间进行扩展,以使扩展后的总可用存储空间大于所述数据量。
4.如权利要求2所述的方法,其特征在于,所述主节点根据所述数量将所述预设格式的静态数据存储在所述存储节点上,具体为:
若所述数量为一个,所述主节点将所述预设格式的静态数据存储在所述存储节点上;
若所述数量为多个,所述主节点基于负载均衡将所述预设格式的静态数据均匀存储在各所述存储节点上。
5.如权利要求1所述的方法,其特征在于,所述主节点根据所述存储节点的数量和所述存储节点返回的与所述执行计划对应的执行结果确定查询结果,具体为:
若所述数量为一个且所述执行结果为存在与所述静态数据查询请求中的查询条件对应的结果数据,所述主节点根据所述结果数据确定所述查询结果;
若所述数量为多个且所述执行结果为存在所述结果数据,所述主节点根据各所述结果数据的合并结果确定所述查询结果。
6.一种基于分布式架构的静态数据的查询设备,其特征在于,所述设备应用于包括主节点和存储节点的分布式架构中,所述分布式架构设置于内存中,所述设备包括:
生成模块,用于所述主节点根据用户发送的静态数据查询请求生成执行计划,并将所述执行计划推送至所述存储节点;
确定模块,用于所述主节点根据所述存储节点的数量和所述存储节点返回的与所述执行计划对应的执行结果确定查询结果,并将所述查询结果返回给所述用户。
7.如权利要求6所述的设备,其特征在于,还包括存储模块,用于:
所述主节点根据监听到的静态数据接入事件确定待接入静态数据;
所述主节点根据所述待接入静态数据的类型确定数据连接进程;
所述主节点基于所述数据连接进程将所述待接入静态数据批量接入预处理空间,并在所述预处理空间将所述待接入静态数据转换为预设格式的静态数据;
所述主节点根据所述数量将所述预设格式的静态数据存储在所述存储节点上。
8.如权利要求7所述的设备,其特征在于,所述存储模块,还用于:
若所述主节点判断所述总可用存储空间小于所述预设格式的静态数据的数据量;
所述主节点对所述总可用存储空间进行扩展,以使扩展后的总可用存储空间大于所述数据量。
9.如权利要求7所述的设备,其特征在于,所述存储模块,具体用于:
若所述数量为一个,所述主节点将所述预设格式的静态数据存储在所述存储节点上;
若所述数量为多个,所述主节点基于负载均衡将所述预设格式的静态数据均匀存储在各所述存储节点上。
10.如权利要求6所述的设备,其特征在于,所述确定模块,具体用于:
若所述数量为一个且所述执行结果为存在与所述静态数据查询请求中的查询条件对应的结果数据,所述主节点根据所述结果数据确定所述查询结果;
若所述数量为多个且所述执行结果为存在所述结果数据,所述主节点根据各所述结果数据的合并结果确定所述查询结果。
CN202010702502.4A 2020-07-21 2020-07-21 一种基于分布式架构的静态数据的查询方法和设备 Pending CN111858656A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010702502.4A CN111858656A (zh) 2020-07-21 2020-07-21 一种基于分布式架构的静态数据的查询方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010702502.4A CN111858656A (zh) 2020-07-21 2020-07-21 一种基于分布式架构的静态数据的查询方法和设备

Publications (1)

Publication Number Publication Date
CN111858656A true CN111858656A (zh) 2020-10-30

Family

ID=73002392

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010702502.4A Pending CN111858656A (zh) 2020-07-21 2020-07-21 一种基于分布式架构的静态数据的查询方法和设备

Country Status (1)

Country Link
CN (1) CN111858656A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113254476A (zh) * 2021-05-28 2021-08-13 北京金山云网络技术有限公司 请求的处理方法和装置、电子设备和存储介质
CN114116774A (zh) * 2022-01-28 2022-03-01 北京安帝科技有限公司 日志数据的查询方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7984043B1 (en) * 2007-07-24 2011-07-19 Amazon Technologies, Inc. System and method for distributed query processing using configuration-independent query plans
CN105279286A (zh) * 2015-11-27 2016-01-27 陕西艾特信息化工程咨询有限责任公司 一种交互式大数据分析查询处理方法
CN109492017A (zh) * 2018-09-18 2019-03-19 平安科技(深圳)有限公司 业务信息查询处理方法、系统、计算机设备和存储介质
CN111414386A (zh) * 2020-03-18 2020-07-14 威讯柏睿数据科技(北京)有限公司 一种基于分布式架构对流数据进行查询的方法和设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7984043B1 (en) * 2007-07-24 2011-07-19 Amazon Technologies, Inc. System and method for distributed query processing using configuration-independent query plans
CN105279286A (zh) * 2015-11-27 2016-01-27 陕西艾特信息化工程咨询有限责任公司 一种交互式大数据分析查询处理方法
CN109492017A (zh) * 2018-09-18 2019-03-19 平安科技(深圳)有限公司 业务信息查询处理方法、系统、计算机设备和存储介质
CN111414386A (zh) * 2020-03-18 2020-07-14 威讯柏睿数据科技(北京)有限公司 一种基于分布式架构对流数据进行查询的方法和设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
杨俊杰等: "大数据存储架构和算法研究综述", 《计算机应用》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113254476A (zh) * 2021-05-28 2021-08-13 北京金山云网络技术有限公司 请求的处理方法和装置、电子设备和存储介质
CN114116774A (zh) * 2022-01-28 2022-03-01 北京安帝科技有限公司 日志数据的查询方法及装置
CN114116774B (zh) * 2022-01-28 2022-06-28 北京安帝科技有限公司 日志数据的查询方法及装置

Similar Documents

Publication Publication Date Title
CN110166282B (zh) 资源分配方法、装置、计算机设备和存储介质
US20150295970A1 (en) Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system
CN110147407B (zh) 一种数据处理方法、装置及数据库管理服务器
CN108900626B (zh) 一种云环境下数据存储方法、装置及系统
US10356150B1 (en) Automated repartitioning of streaming data
CN110233802B (zh) 一种构建一主链多侧链的区块链架构的方法
US10498817B1 (en) Performance tuning in distributed computing systems
Wang et al. Hybrid pulling/pushing for i/o-efficient distributed and iterative graph computing
CN109196807B (zh) 网络节点以及操作网络节点以进行资源分发的方法
WO2020134364A1 (zh) 一种虚拟机迁移方法、云计算管理平台和存储介质
CN111858656A (zh) 一种基于分布式架构的静态数据的查询方法和设备
CN102339233A (zh) 云计算集中管理平台
US11816511B1 (en) Virtual partitioning of a shared message bus
CN110046093A (zh) 接口测试方法、装置、计算机设备和存储介质
EP4057142A1 (en) Job scheduling method and job scheduling apparatus
CN112000703A (zh) 数据入库处理方法、装置、计算机设备和存储介质
US10594620B1 (en) Bit vector analysis for resource placement in a distributed system
JP7440007B2 (ja) データベースをクエリするためのシステム、方法および装置
CN111625414A (zh) 一种数据转换整合软件的自动调度监控系统实现方法
CN110928659A (zh) 一种具有自适应功能的数值水池系统远程多平台接入方法
CN115858499A (zh) 一种数据库分区处理方法、装置、计算机设备和存储介质
Fazul et al. Automation and prioritization of replica balancing in hdfs
CN112328332B (zh) 一种面向云计算环境的数据库配置优化方法
CN112541038A (zh) 时序数据管理方法、系统、计算设备及存储介质
Fazul et al. An event-driven strategy for reactive replica balancing on apache hadoop distributed file system

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20201030

RJ01 Rejection of invention patent application after publication