CN113568930A - 一种分布式内存数据查询优化的方法和设备 - Google Patents

一种分布式内存数据查询优化的方法和设备 Download PDF

Info

Publication number
CN113568930A
CN113568930A CN202110924866.1A CN202110924866A CN113568930A CN 113568930 A CN113568930 A CN 113568930A CN 202110924866 A CN202110924866 A CN 202110924866A CN 113568930 A CN113568930 A CN 113568930A
Authority
CN
China
Prior art keywords
data
query
connectors
plan
data source
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
CN202110924866.1A
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 CN202110924866.1A priority Critical patent/CN113568930A/zh
Publication of CN113568930A publication Critical patent/CN113568930A/zh
Priority to PCT/CN2021/139206 priority patent/WO2023015809A1/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/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • 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/23Updating
    • 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/24532Query optimisation of parallel 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/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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Operations Research (AREA)
  • Computing Systems (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种分布式内存数据查询优化的方法和设备,应用于包括多个并行连接的内存数据库的分布式系统中,当存在至少一个数据源接入系统且接收到数据查询请求时,根据数据查询请求生成查询计划;若已连接数据源的连接器的数量为多个,根据智能化优化算法库对所述的查询计划进行优化,并将通过所述智能优化算法库将所述执行计划分解为与各个数据源对应的多个子查询计划;基于多个连接器将各子查询计划分别下推至各数据源查询;基于各连接器从各数据源获取与各子查询计划对应的多个初步数据;根据多个初步数据获取与查询请求对应的结果数据,并将结果数据返回用户或应用,从而在避免投入较高成本的基础上,提高了对不同数据源进行数据查询的效率和安全性。

Description

一种分布式内存数据查询优化的方法和设备
技术领域
本申请涉及数据库技术领域,更具体地,涉及一种分布式内存数据查询优化的方法和设备。
背景技术
多源异构数据实时性查询是政府部门和企业提升自身服务能力、业务效率、用户满意度、市场竞争力和应收等不可或缺的基础数据处理能力。尤其是随着大数据时代的到来和各行各业的数字化发展,大规模数据并行处理、海量数据共享和快速查询为电商、移动、政府等行业用户的业务飞快发展带来了巨大收益。然而,数据量爆发式增长、数据类型日益繁杂,以及最终用户量和业务量的快速增长,使得用户采用现有技术的数据库管理系统在面向多源异构数据高并发查询的响应效率越来越无法满足业务的实时性要求,查询效率伴随数据量和并发量急剧增长而急剧下降,很大程度影响了用户的业务发展及最终用户的使用体验。因此,在实现多源异构数据统一连接和共享的基础上,如何提升海量多源异构数据的查询效率成为许多行业用户面临的新挑战,而现有同类技术因技术本身瓶颈、缺少优化算法等不同原因都无法尽如人意。
根据发明人对行业内相关技术的了解,与本方案相关的方案有两种,分别为“基于本地数据库系统的多源异构数据查询的方法及系统”和“基于跨源异构连接技术的简单SQL下推的数据查询的方法及系统”。其中:
1、基于本地数据库系统的多源异构数据查询的方法及系统。
如图1所示,基于本地数据库系统的多源异构数据查询的方法及系统是通过构建本地数据库系统,前期将多源异构数据源中的大规模数据迁移至本地数据库系统中存储,后期再通过数据同步或异步备份的方式,保持本地数据库系统中的数据与数据源中结果数据的更新。该方法及系统在处理用户查询请求时,只需要将用户提交的SQL语句进行解析、优化并生成执行,在本地数据库系统中执行,获取符合查询条件的结果数据反馈给用户。
该方法及系统很好地解决了多源异构数据的统一查询问题,且计算资源充足的情况下,查询效率也较快。但受到实现机制和路径的影响,该方法及系统一方面需要花费高昂的成本建设本地数据库系统,且随着数据源和结果数据量的增长本地数据库系统还需要不断升级扩容,成本还会持续增长,一旦升级不及时或容量不足,系统的查询效率将受到严重影响。另一方面,尽管本地数据库系统的数据能够通过同步和异步备份的方式实现更新,但是更新总有一定的时间间隔,这意味着用户在查询时无法获取实时更新的结果数据,也就难以在第一时间获取市场、业务等数据,并根据这些数据为企业或业务发展做出精准决策。因此,虽然该方法及系统查询效率较高,但因数据更新带来的延迟导致查询的结果并不能体现现实最新的实时动态变化,难以为企业级用户的业务决策提供有效可靠精准的支撑,且高昂的建设成本很多用户也难以承担。
2、基于跨源异构连接技术的简单SQL下推的数据查询的方法及系统。
如图2所示,基于跨源异构连接技术的简单SQL下推的数据查询的方法及系统,该方法及系统与本专利十分类似,同样是基于多源异构数据源统一连接技术实现的方法及系统,即实现多个不同类型数据源的连接和查询不需要构建本地数据库系统,通过简单的SQL下推功能即可完成多源异构数据的统一共享和查询,且每次查询都是从数据源获取实时更新的结果数据,确保了查询结果是实时更新的数据。但不同的是,该方法及系统在处理的过程中,系统在将用户提交的SQL语句解析成查询计划后,直接将全部的查询计划同步下推至与该系统连接的每个数据源执行,这就意味无论数据源中是否存在与查询条件相关的数据,或数据源中只存在满足一部分查询条件的数据,全部的查询计划都将在每个数据源中全部执行。
尽管查询结果的正确性不受影响,但是该方法及系统中的每个数据源都要执行相同的全部查询计划,使得简单的查询变得复杂,不仅在执行查询计划的过程中消耗大量的计算资源,还会大大延长数据查询所需的时间,导致系统查询效率大幅下降。
因此,如何在避免投入较高成本的基础上提高对不同数据源进行数据查询的效率和安全性,是目前亟待解决的技术问题。
发明内容
本发明提供一种分布式内存数据查询优化的方法,用以解决现有技术中对不同数据源进行数据查询时成本高,效率低和安全性低的技术问题,该方法应用于包括多个并行连接的内存数据库的分布式系统中,该方法包括:
当存在至少一个数据源接入所述系统且接收到用户或应用发送的数据查询请求时,根据所述数据查询请求生成查询计划;
若已连接数据源的连接器的数量为多个,根据智能化优化算法库对所述的查询计划进行优化,并将通过所述智能优化算法库将所述执行计划分解为与各个数据源对应的多个子查询计划,所述智能优化算法库中包含所述数据源中存储的数据信息、可用查询资源,以及查询计划的执行代价;
基于多个所述连接器将各所述子查询计划分别下推至各所述数据源查询;
基于各所述连接器从各所述数据源获取与各所述子查询计划对应的多个初步数据;
根据多个所述初步数据获取与所述查询请求对应的结果数据,并将所述结果数据返回所述用户或所述应用;
其中,所述连接器是用于连接所述系统与各所述数据源的进程,所述连接器是根据所述数据源的类型创建的。
在本申请一些实施例中,根据智能化优化算法库对所述的查询计划进行优化,并将通过所述智能优化算法库将所述执行计划分解为与各个数据源对应的多个子查询计划,具体为:
根据智能优化算法库中的数据字典信息对查询计划进行优化和分解,分解生成多个优化查询计划;
根据智能优化算法库中的数据源的所述可用查询资源和所述执行代价,从优化查询计划中筛选出最优查询计划,并从所述最优查询计划中获取与各个数据源对应的多个子查询计划。
在本申请一些实施例中,所述方法还包括:
当检测到待接入数据源发送的接入请求时,确定所述待接入数据源的第一数量和与所述待接入数据源的类型对应的数据源连接池内的空闲连接器的第二数量;
若所述第一数量不大于所述第二数量,基于所述空闲连接器将所述待接入数据源接入所述系统;
若所述第一数量大于所述第二数量,根据预设数量或用户输入的创建数量创建新的空闲连接器。
在本申请一些实施例中,所述系统包括多个分布式的内存计算节点,单个所述内存计算节点可运行一个或多个所述连接器。
在本申请一些实施例中,基于各所述连接器从各所述数据源获取与各所述子查询计划对应的多个初步数据,具体为:
基于各所述连接器从各所述数据源获取与各所述子查询计划对应的多个查询结果;
基于各所述连接器将分别将各所述查询结果按预设格式转换为各所述初步数据。
在本申请一些实施例中,根据多个所述初步数据获取与所述查询请求对应的结果数据,具体为:
将多个所述初步数据加载至内存,并在内存中对多个所述初步数据进行数据清洗后进行数据合并;
根据数据合并的结果获取所述结果数据。
在本申请一些实施例中,在根据所述数据查询请求生成查询计划之后,所述方法还包括:
若已连接数据源的连接器的数量为一个,基于所述连接器将所述查询计划下推至所述数据源查询;
基于所述连接器从所述数据源获取与所述查询请求对应的结果数据,并将所述结果数据返回所述用户或所述应用。
在本申请一些实施例中,基于所述连接器从所述数据源获取与所述查询请求对应的结果数据,具体为:
基于所述连接器从所述数据源获取与所述查询计划对应的查询结果;
基于所述连接器将所述查询结果按预设格式转换为初步数据;
将所述初步数据加载至内存,并对所述初步数据进行数据清洗后获取所述结果数据。
在本申请一些实施例中,所述预设格式为CSV格式。
相应的,本发明还提出了一种分布式内存数据查询优化的设备,所述设备应用于包括多个并行连接的内存数据库的分布式系统中,所述设备包括:
生成模块,用于当存在至少一个数据源接入所述系统且接收到用户或应用发送的数据查询请求时,根据所述数据查询请求生成查询计划;
分解模块,用于若已连接数据源的连接器的数量为多个,根据智能化优化算法库对所述的查询计划进行优化,并将通过所述智能优化算法库将所述执行计划分解为与各个数据源对应的多个子查询计划,所述智能优化算法库中包含所述数据源中存储的数据信息、可用查询资源,以及查询计划的执行代价;
下推模块,用于基于多个所述连接器将各所述子查询计划分别下推至各所述数据源查询;
第一获取模块,用于基于各所述连接器从各所述数据源获取与各所述子查询计划对应的多个初步数据;
返回模块,用于根据多个所述初步数据获取与所述查询请求对应的结果数据,并将所述结果数据返回所述用户或所述应用;
其中,所述连接器是用于连接所述系统与各所述数据源的进程,所述连接器是根据所述数据源的类型创建的。
相应的,本发明还提出了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如上所述的基于内存计算对数据源进行数据查询优化的方法。
通过应用以上技术方案,在包括多个并行连接的内存数据库的分布式系统中,当存在至少一个数据源接入系统且接收到数据查询请求时,根据数据查询请求生成查询计划;若已连接数据源的连接器的数量为多个,根据智能化优化算法库对所述的查询计划进行优化,并将通过所述智能优化算法库将所述执行计划分解为与各个数据源对应的多个子查询计划;基于各连接器从各数据源获取与各子查询计划对应的多个初步数据;根据多个初步数据获取与查询请求对应的结果数据,并将结果数据返回用户或应用,从而在避免投入较高成本的基础上,提高了对不同数据源进行数据查询的效率和安全性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地 ,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了现有技术中基于本地数据库的多源异构数据查询方法的流程示意图;
图2示出了现有技术中基于跨源异构连接技术的简单SQL下推的数据查询方法的流程示意图;
图3示出了本发明实施例提出的一种分布式内存数据查询优化的方法的流程示意图;
图4示出了本发明实施例提出的一种基于内存计算对多个数据源进行数据查询的体系架构图;
图5示出了本发明实施例提出的一种基于内存计算对单个数据源进行数据查询的体系架构图;
图6示出了本发明另一实施例提出的一种分布式内存数据查询优化的方法的流程示意图;
图7示出了本发明实施例提出的一种基于分布式架构和内存计算的对多个异构数据源自适应查询下推优化加速方法的流程示意图;
图8示出了本发明实施例提出的一种分布式内存数据查询优化的设备的结构示意图;
图9示出了本发明实施例提出的同一数据源执行不同查询计划时的最优查询计划的示意图;
图10示出了本发明实施例提出的不同数据源执行同一查询计划时时的最优查询计划的示意图;
图11示出了本发明实施例提出的最优查询计划向各数据源进行下推查询的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种分布式内存数据查询优化的方法,所述方法应用于包括多个并行连接的内存数据库的分布式系统中,如图3所示,所述方法包括以下步骤:
步骤S101,当存在至少一个数据源接入所述系统且接收到用户或应用发送的数据查询请求时,根据所述数据查询请求生成查询计划。
本实施例中,该系统预先完成接入至少一个数据源,数据源可包括但不限于文本文件,或Key-Value数据库,或关系型数据库,或NoSQL及数据仓库,或持续数据流。当接收到用户或应用发送的数据查询请求时,对与所述查询请求对应的SQL(Structured QueryLanguage,结构化查询语言)语句进行解析和优化后,生成查询计划。其中,可通过系统中的解析器对SQL语句进行解析,通过优化器进行优化,具体的过程对于本领域技术人员是显而易见的,在此不再赘述。
步骤S102,若已连接数据源的连接器的数量为多个,根据智能化优化算法库对所述的查询计划进行优化,并将通过所述智能优化算法库将所述执行计划分解为与各个数据源对应的多个子查询计划,所述智能优化算法库中包含所述数据源中存储的数据信息、可用查询资源,以及查询计划的执行代价。
本实施例中,系统与各数据源之间设置有连接器,通过连接器进行数据传输,连接器是根据数据源的类型创建的,当数据源成功接入系统后,所述系统统计并获取已经接入所述系统每个数据源的包含表、视图、索引、字段、字段类型、过程函数和数据量等在内的数据字典信息和统计信息。同时所述系统所获取的数据源的数据字典和统计信息也与连接数据源的每个连接器一一对应,并存储于所述系统分布式集群的主节点上,用于将所述查询计划进行优化,如图4所示,为多个数据源进行数据查询的体系架构图,当已连接数据源的连接器的数量为多个,当系统接收到查询计划时,根据智能化优化算法库对所述的查询计划进行优化,并将通过所述智能优化算法库将所述执行计划分解为与各个数据源对应的多个子查询计划,其中所述智能优化算法库包含数据字典、数据源的可用查询资源和查询计划执行代价。所述数据字典包括表、视图、索引、字段、字段类型、过程函数和数据量等信息,所述数据源的可用查询资源包括CPU计算、网络、缓存等资源,所述执行代价涵盖了各个子查询计划在各个对应的数据源中执行时消耗的时间、资源和索引等代价信息,智能优化算法库的内容会随着数据源的更新而更新。
为了获取各个数据源对应的多个子查询计划,在本申请的一些实施例中,根据智能化优化算法库对所述的查询计划进行优化,并将通过所述智能优化算法库将所述执行计划分解为与各个数据源对应的多个子查询计划,具体为:
根据智能优化算法库中的数据字典信息对查询计划进行优化和分解,分解生成多个优化查询计划;
根据智能优化算法库中的数据源的所述可用查询资源和所述执行代价,从优化查询计划中筛选出最优查询计划,并从所述最优查询计划中获取与各个数据源对应的多个子查询计划。
本申请实施例中,智能优化算法库的内容会随着数据源的更新而更新,同时智能优化算法库中还内置了查询代价计算算法,在生成查询计划后,根据根据智能优化算法库中的数据字典信息对查询计划进行优化和分解,分解生成多个优化查询计划,根据智能优化算法库中的数据源的所述可用查询资源和所述执行代价,从优化查询计划中筛选出最优查询计划,该最优查询计划为符合各个数据源存储的数据情况、可用资源情况,且查询代价最小的查询计划,当同一数据源执行不同查询计划时,如图9所示,根据执行代价筛选出代价最小的查询计划XA,即最优查询计划XA,当不同数据源执行同一查询计划时,如图10所示,根据执行代价,以及数据源A和B中可用的查询资源筛选出代价最小的查询计划XA或XB,即最优查询计划XA或XB,此种情况下,数据源A和数据源B存储着一部分共同的数据。
另外,上述生成的最优查询计划是由多个子查询计划组成,组成公式为XA+ XB+…+XF+X共同= X优化查询计划,其中,XA ,XB ,…XF为针对数据源A,B,…F的子查询计划,X共同为面向所有数据源的子查询计划,也就是说优化查询计划中包含各数据源A,B,…F的子查询计划,也可能包含面向所有数据源的子查询计划,如图11为本发明实施例提出的最优查询计划向各数据源进行下推查询的结构示意图
为了可靠的对数据源进行数据查询,在本申请一些实施例中,所述方法还包括:
当检测到待接入数据源发送的接入请求时,确定所述待接入数据源的第一数量和与所述待接入数据源的类型对应的数据源连接池内的空闲连接器的第二数量;
若所述第一数量不大于所述第二数量,基于所述空闲连接器将所述待接入数据源接入所述系统;
若所述第一数量大于所述第二数量,根据预设数量或用户输入的创建数量创建新的空闲连接器。
本实施例中,需要预先接入至少一个数据源,以便根据用户或应用发送的查询请求对数据源进行数据查询,所述系统中设置有与数据源的类型对应的数据源连接池,数据连接池内预先创建有预设数量的空闲连接器,即同一数据连接池内的空闲连接器只能与对应类型的数据源进行连接,当检测到待接入数据源发送的接入请求时,确定待接入数据源的第一数量和与待接入数据源的类型对应的数据源连接池内的空闲连接器的第二数量,并对第一数量和第二数量进行比较,若第一数量不大于第二数量,说明数据源连接池内的空闲连接器足够接入全部的待接入数据源,基于各空闲连接器将各待接入数据源接入系统,可依次接入,也可同时接入;若第一数量大于第二数量,说明数据源连接池内的空闲连接器无法接入全部的待接入数据源,需要创建与待接入数据源的类型对应的新的空闲连接器,可以基于预设的数量进行自动创建,用户也可以根据需要手动创建,即基于用户输入的创建数量进行创建,然后基于空闲的连接器接入待接入数据源。
为了提高对数据源进行数据查询时的灵活性,在本申请一些实施例中,所述系统包括多个分布式的内存计算节点,单个所述内存计算节点可运行一个或多个所述连接器。
本实施例中,连接器运行在内存计算节点上,在本申请具体的应用场景中,单个所述内存计算节点可只运行一个连接器,单个所述内存计算节点也可运行多个连接器,单个内存计算节点上运行连接器的数量可根据内存计算节点的计算资源确定,本领域技术人员可灵活设定。
步骤S103,基于多个所述连接器将各所述子查询计划分别下推至各所述数据源查询。
本实施例中,基于多个所述连接器将各所述子查询计划分别下推至各所述数据源查询,完成数据查询后,各连接器从各数据源获取与各所述子查询计划对应的多个初步数据,该初步数据和与查询请求对应的结果数据是不同的,还需要进一步处理。
步骤S104,基于各所述连接器从各所述数据源获取与各所述子查询计划对应的多个初步数据。
本实施例中,基于各所述连接器从各所述数据源获取与各所述子查询计划对应的多个初步数据。
为了准确的获取该初步数据,在本申请一些实施例中,基于各所述连接器从各所述数据源获取与各所述子查询计划对应的多个初步数据,具体为:
基于各所述连接器从各所述数据源获取与各所述子查询计划对应的多个查询结果;
基于各所述连接器将分别将各所述查询结果按预设格式转换为各所述初步数据。
本实施例中,先基于各连接器从各数据源获取与各所述子查询计划对应的多个查询结果,为了提高处理效率,然后基于各连接器将分别将各所述查询结果按预设格式转换为各初步数据。
本领域技术人员可根据实际需要选用不同的预设格式,这并不影响本申请的保护范围,在本申请优选的实施例中,所述预设格式为CSV(Comma-Separated Values,字符分隔值)格式。
步骤S105,根据多个所述初步数据获取与所述查询请求对应的结果数据,并将所述结果数据返回所述用户或所述应用。
本步骤中,根据多个初步数据获取与所述查询请求对应的结果数据,并将结果数据返回用户或应用。然后可释放为所述查询请求分配的计算、存储、网络等资源,等待下一次的查询请求。用户可根据需求对结果数据进行删除或存储,存储可以存储在内存中,也可以存储在磁盘上。
为了准确的获取结果数据,在本申请一些实施例中,根据多个所述初步数据获取与所述查询请求对应的结果数据,具体为:
将多个所述初步数据加载至内存,并在内存中对多个所述初步数据进行数据清洗后进行数据合并;
根据数据合并的结果获取所述结果数据。
本实施中,先将多个所述初步数据加载至内存,并在内存中对多个初步数据进行数据清洗,数据清洗包括清除重复数据和异常数据,然后将完成数据清洗后的数据进行数据合并,形成查询结果并将查询结果返回给用户。如果系统中没有符合查询条件的结果数据,则向用户返回“无满足条件的数据”的通知。
为了可靠的对数据源进行数据查询,在本申请一些实施例中,在根据所述数据查询请求生成查询计划之后,所述方法还包括:
若已连接数据源的连接器的数量为一个,基于所述连接器将所述查询计划下推至所述数据源查询;
基于所述连接器从所述数据源获取与所述查询请求对应的结果数据,并将所述结果数据返回所述用户或所述应用。
本实施例中,如图5所示为单个数据源进行数据查询的体系架构图,当已连接数据源的连接器的数量为一个,所述系统实时地接收用户请求,对用户提交的SQL语句进行解析、优化,生成对应的查询计划。基于所述连接器直接将查询计划下推至所述数据源查询,然后基于所述连接器从所述数据源获取与所述查询请求对应的结果数据,并将所述结果数据返回所述用户或所述应用。
为了准确的获取结果数据,在本申请一些实施例中,基于所述连接器从所述数据源获取与所述查询请求对应的结果数据,具体为:
基于所述连接器从所述数据源获取与所述查询计划对应的查询结果;
基于所述连接器将所述查询结果按预设格式转换为初步数据;
将所述初步数据加载至内存,并对所述初步数据进行数据清洗后获取所述结果数据。
本实施例中,先基于连接器从数据源获取与所述查询计划对应的查询结果,基于所述连接器将所述查询结果按预设格式转换为初步数据,将所述初步数据加载至内存,并在内存中对初步数据进行数据清洗后获取结果数据,数据清洗可包括清除重复数据和异常数据。在本申请优选的实施例中,所述预设格式为CSV格式。
通过应用以上技术方案,在包括多个并行连接的内存数据库的分布式系统中,当存在至少一个数据源接入系统且接收到数据查询请求时,根据数据查询请求生成查询计划;若已连接数据源的连接器的数量为多个,根据智能化优化算法库对所述的查询计划进行优化,并将通过所述智能优化算法库将所述执行计划分解为与各个数据源对应的多个子查询计划;基于各连接器从各数据源获取与各子查询计划对应的多个初步数据;根据多个初步数据获取与查询请求对应的结果数据,并将结果数据返回用户或应用,从而在避免投入较高成本的基础上,提高了对不同数据源进行数据查询的效率和安全性。
为了进一步阐述本发明的技术思想,现结合具体的应用场景,对本发明的技术方案进行说明。
本申请实施例提供一种分布式内存数据查询优化的方法,应用于包括多个并行连接的内存数据库的分布式系统中,该系统中还存储着由多个内存数据库并行操作的至少一个内存数据库实例,如图6所示,该方法包括以下步骤:
步骤S201,所述系统实时接收用户/应用发送的查询请求。
在执行步骤S201之前,还包括以下步骤:
S1.系统实时地接收至少一个数据源接入事件,即远程数据源接入该系统的请求事件,并向内存数据库实例发送通知。
S2.内存数据库实例实时地接收数据源接入事件的通知。
S3.内存数据库实例在接收到数据源接入事件的通知后,会同步判断数据源的类型,并根据数据源的类型提供对应的连接器,将数据源接入所述系统。多个数据源逐一完成此操作,即完成了多个数据源的跨源统一连接。所述连接器由系统预先创建,同一类型的连接器存储在同一类型的数据源连接池内,同一类型数据源连接池内可以预先创建至少一个连接器,所创建的连接器的数量可以预设的默认值,默认值可以由用户根据需求设置。
当预先创建的连接器数量少于待接入的数据源个数时,会根据用户设置的默认值自动创建增加新的连接器,用户也可以根据实际需求手动创建,新增的数量同样由用户自定义。其中,连接器运行在所述系统的分布式内存计算节点上,一个内存计算节点可以运行一个连接器,也可以运行多个连接器。
S4.所述系统至少成功接入一个数据源后,所述系统会实时接收用户或应用发送的查询请求。
步骤S202,所述系统对用户提交的的SQL语句进行解析、优化,并生成对应的查询计划。
本步骤中,所述系统实时地接收用户请求,所述系统对用户提交的SQL语句进行解析、优化,并生成对应的查询计划。
步骤S203,判断已连接数据源的连接器的数量是否为多个,若是执行步骤S204,否则执行步骤S207。
步骤S204,根据智能化优化算法库对所述的查询计划进行优化,并将通过所述智能优化算法库将所述执行计划分解为与各个数据源对应的多个子查询计划。
本步骤中,根据智能优化算法库中的数据字典信息对查询计划进行优化和分解,分解生成多个优化查询计划,根据智能优化算法库中的数据源的所述可用查询资源和所述执行代价,从优化查询计划中筛选出最优查询计划,并从所述最优查询计划中获取与各个数据源对应的多个子查询计划。
步骤S205,所述系统将分解的子查询计划通过连接各个数据源连接器下推至各个数据源中执行,根据查询条件获取源数据。
本步骤中,根据统计的数据字典信息和统计信息,将所述查询计划进行优化,分解成适应于所述系统连接的不同数据源的子查询计划,并通过各个数据源连接器将所述子查询计划下推至对应的数据源中执行。分别根据所述用户请求的查询条件从所述的多个数据源中分别确定并获取符合查询条件的结果数据。
步骤S206,所述系统通过连接器将获取的源数据转换成统一的数据格式(如CSV),并完成重复数据删除、合并等计算操作后作为查询结果统一反馈给用户,并执行步骤S209。
本步骤中,获取源数据后,各个连接器再分别将从对应数据源中获取的源数据统一转换成CSV格式后,内存数据库实例再将这些CSV格式的初步数据统一加载至内存,在内存中进行重复数据删除、数据关联、数据合并等操作,最后将合并的结果数据反馈给用户或应用。
步骤S207,所述系统直接将所生成的查询计划通过连接器下推至对应数据源中执行,根据条件查询源数据。
本步骤中,如果所述系统仅连接了一个数据源,所述系统通过数据源连接器直接将所述查询计划下推至所述数据源中执行,根据所述用户请求的查询条件从所述数据源中确定并获取符合查询条件的结果数据。
步骤S208,所述系统通过连接器将获取的数据转换成统一的数据格式(如CSV),反馈给用户,并执行步骤S209。
本步骤中,所述系统通过数据源连接器将获取的结果数据由源格式转换成统一格式(默认为CSV格式)的数据,并加载至内存,在内存中进行数据清洗后获取结果数据,作为查询结果返回给用户。
步骤S209,查询结束,释放占用的内存、网络、计算等资源,等待新的查询请求,取出的结果数据,根据用户的需求进行删除或存储。
如图7所示为一种基于分布式架构和内存计算的对多个异构数据源自适应查询下推优化加速方法的流程示意图,包含至少一个并行运行的分布式内存数据库管理系统。和现有技术数据查询方法不同的是,所述的方法及系统能够根据统计的数据字典信息和统计信息对查询计划进行优化、分解,将查询计划分解成适应每个不同数据源的子查询计划,并通过运行连接器的计算节点将子查询计划下推至每个数据源,使得查询计划更加符合数据实际分布情况、查询更具有针对性,进而实现基于多源异构数据统一连接技术的查询优化和加速,确保多源异构数据的查询在节省更多计算资源的同时,查询效率也得到大幅度提升。
通过应用以上技术方案,仅通过连接器使用单一的SQL语句即可完成跨多个不同类型数据源的统一连接,不需要通过数据迁移、同步复制或异步备份的方式数据存储至本地数据库系统才能进行处理。连接数据源后,当接收到查询请求时,可直接跨多个不同数据源将源数据通过SQL访问的方式加载至内存中获取结果数据。因此,在进行跨多个不同数据源进行查询时,无论数据量的大小或增长速度有多快,用户不需要投入较高的TCO(TotalCost of Ownership,即总拥有成本)建设本地数据库系统。同时,获取的源数据不需要存储在本地数据库系统,而是直接加载到内存中,减少现有同类实现方法中的中间环节,大大提升了数据的读取和处理效率,将现有同类技术存在的延迟由小时级、分钟级提升至秒级,甚至毫秒级,进而大幅提升数据库管理系统处理数据的时效性,无限接近数据实时查询及处理的目标。
另外,由于直接从数据源中读取数据,去掉数据迁移、备份、落盘再加载等中间环节,避免了数据因迁移、备份、传输等带来的数据丢失或泄露等安全风险。更重要的是,每次获取的数据都是数据源中最新数据,即查询的数据能够与源数据保持同步更新,从而使用户请求所获得的数据处理结果能够完全体现实时更新的真实情况。
不仅如此,采用内存计算技术,可以快速搭建跨源异构数据统一连接、查询及数据处理的分布式集群,也可以直接利用用户原有的分布式集群资源,并应用于各行业的数据共享、数据即时展示等领域,实现计算节点的在线按需动态扩展,确保用户数据处理平台及数据库系统的性能始终保持高性能,轻松地应对多源异构数据快速增长带来的负载和处理压力。
与本申请实施例中的一种分布式内存数据查询优化的方法相对应,本申请实施例还提出了一种分布式内存数据查询优化的设备,所述设备应用于包括多个并行连接的内存数据库的分布式系统中,如图8所示,所述设备包括:
生成模块601,用于当存在至少一个数据源接入所述系统且接收到用户或应用发送的数据查询请求时,根据所述数据查询请求生成查询计划;
分解模块602,用于若已连接数据源的连接器的数量为多个,根据智能化优化算法库对所述的查询计划进行优化,并将通过所述智能优化算法库将所述执行计划分解为与各个数据源对应的多个子查询计划,所述智能优化算法库中包含所述数据源中存储的数据信息、可用查询资源,以及查询计划的执行代价;
下推模块603,用于基于多个所述连接器将各所述子查询计划分别下推至各所述数据源查询;
第一获取模块604,用于基于各所述连接器从各所述数据源获取与各所述子查询计划对应的多个初步数据;
返回模块605,用于根据多个所述初步数据获取与所述查询请求对应的结果数据,并将所述结果数据返回所述用户或所述应用;
其中,所述连接器是用于连接所述系统与各所述数据源的进程,所述连接器是根据所述数据源的类型创建的。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种分布式内存数据查询优化的方法,其特征在于,所述方法应用于包括多个并行连接的内存数据库的分布式系统中,所述方法包括:
当存在至少一个数据源接入所述系统且接收到用户或应用发送的数据查询请求时,根据所述数据查询请求生成查询计划;
若已连接数据源的连接器的数量为多个,根据智能化优化算法库对所述的查询计划进行优化,并将通过所述智能优化算法库将所述执行计划分解为与各个数据源对应的多个子查询计划,所述智能优化算法库中包含所述数据源中存储的数据信息、可用查询资源,以及查询计划的执行代价;
基于多个所述连接器将各所述子查询计划分别下推至各所述数据源查询;
基于各所述连接器从各所述数据源获取与各所述子查询计划对应的多个初步数据;
根据多个所述初步数据获取与所述查询请求对应的结果数据,并将所述结果数据返回所述用户或所述应用;
其中,所述连接器是用于连接所述系统与各所述数据源的进程,所述连接器是根据所述数据源的类型创建的。
2.如权利要求1所述的方法,其特征在于,根据智能化优化算法库对所述的查询计划进行优化,并将通过所述智能优化算法库将所述执行计划分解为与各个数据源对应的多个子查询计划,具体为:
根据智能优化算法库中的数据字典信息对查询计划进行优化和分解,分解生成多个优化查询计划;
根据智能优化算法库中的数据源的所述可用查询资源和所述执行代价,从优化查询计划中筛选出最优查询计划,并从所述最优查询计划中获取与各个数据源对应的多个子查询计划。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
当检测到待接入数据源发送的接入请求时,确定所述待接入数据源的第一数量和与所述待接入数据源的类型对应的数据源连接池内的空闲连接器的第二数量;
若所述第一数量不大于所述第二数量,基于所述空闲连接器将所述待接入数据源接入所述系统;
若所述第一数量大于所述第二数量,根据预设数量或用户输入的创建数量创建新的空闲连接器。
4.如权利要求3所述的方法,其特征在于,所述系统包括多个分布式的内存计算节点,单个所述内存计算节点可运行一个或多个所述连接器。
5.如权利要求1所述的方法,其特征在于,基于各所述连接器从各所述数据源获取与各所述子查询计划对应的多个初步数据,具体为:
基于各所述连接器从各所述数据源获取与各所述子查询计划对应的多个查询结果;
基于各所述连接器将分别将各所述查询结果按预设格式转换为各所述初步数据。
6.如权利要求5所述的方法,其特征在于,根据多个所述初步数据获取与所述查询请求对应的结果数据,具体为:
将多个所述初步数据加载至内存,并在内存中对多个所述初步数据进行数据清洗后进行数据合并;
根据数据合并的结果获取所述结果数据。
7.如权利要求1所述的方法,其特征在于,在根据所述数据查询请求生成查询计划之后,所述方法还包括:
若已连接数据源的连接器的数量为一个,基于所述连接器将所述查询计划下推至所述数据源查询;
基于所述连接器从所述数据源获取与所述查询请求对应的结果数据,并将所述结果数据返回所述用户或所述应用。
8.如权利要求7所述的方法,其特征在于,基于所述连接器从所述数据源获取与所述查询请求对应的结果数据,具体为:
基于所述连接器从所述数据源获取与所述查询计划对应的查询结果;
基于所述连接器将所述查询结果按预设格式转换为初步数据;
将所述初步数据加载至内存,并对所述初步数据进行数据清洗后获取所述结果数据。
9.如权利要求5或8所述的方法,其特征在于,所述预设格式为CSV格式。
10.一种分布式内存数据查询优化的设备,其特征在于,所述设备应用于包括多个并行连接的内存数据库的分布式系统中,所述设备包括:
生成模块,用于当存在至少一个数据源接入所述系统且接收到用户或应用发送的数据查询请求时,根据所述数据查询请求生成查询计划;
分解模块,用于若已连接数据源的连接器的数量为多个,根据智能化优化算法库对所述的查询计划进行优化,并将通过所述智能优化算法库将所述执行计划分解为与各个数据源对应的多个子查询计划,所述智能优化算法库中包含所述数据源中存储的数据信息、可用查询资源,以及查询计划的执行代价;
下推模块,用于基于多个所述连接器将各所述子查询计划分别下推至各所述数据源查询;
第一获取模块,用于基于各所述连接器从各所述数据源获取与各所述子查询计划对应的多个初步数据;
返回模块,用于根据多个所述初步数据获取与所述查询请求对应的结果数据,并将所述结果数据返回所述用户或所述应用;
其中,所述连接器是用于连接所述系统与各所述数据源的进程,所述连接器是根据所述数据源的类型创建的。
CN202110924866.1A 2021-08-12 2021-08-12 一种分布式内存数据查询优化的方法和设备 Pending CN113568930A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110924866.1A CN113568930A (zh) 2021-08-12 2021-08-12 一种分布式内存数据查询优化的方法和设备
PCT/CN2021/139206 WO2023015809A1 (zh) 2021-08-12 2021-12-17 一种分布式内存数据查询优化的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110924866.1A CN113568930A (zh) 2021-08-12 2021-08-12 一种分布式内存数据查询优化的方法和设备

Publications (1)

Publication Number Publication Date
CN113568930A true CN113568930A (zh) 2021-10-29

Family

ID=78171421

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110924866.1A Pending CN113568930A (zh) 2021-08-12 2021-08-12 一种分布式内存数据查询优化的方法和设备

Country Status (2)

Country Link
CN (1) CN113568930A (zh)
WO (1) WO2023015809A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023015809A1 (zh) * 2021-08-12 2023-02-16 威讯柏睿数据科技(北京)有限公司 一种分布式内存数据查询优化的方法和设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108009270A (zh) * 2017-12-18 2018-05-08 江苏润和软件股份有限公司 一种基于分布式内存计算的文本检索方法
CN109710630A (zh) * 2018-12-25 2019-05-03 中科曙光国际信息产业有限公司 异构数据源的查询方法及装置
CN110008244A (zh) * 2019-03-29 2019-07-12 国家计算机网络与信息安全管理中心 一种数据查询方法及数据查询装置
CN110059103A (zh) * 2019-04-28 2019-07-26 南京大学 一种跨平台统一的大数据sql查询方法
CN111078961A (zh) * 2019-12-24 2020-04-28 用友网络科技股份有限公司 多数据源查询驱动系统、方法、装置和存储介质
CN111190924A (zh) * 2019-12-18 2020-05-22 中思博安科技(北京)有限公司 跨域的数据查询方法及装置
CN112540843A (zh) * 2019-09-20 2021-03-23 杭州海康威视数字技术股份有限公司 资源的分配方法、装置、存储设备及存储介质
US20210133193A1 (en) * 2019-10-30 2021-05-06 Boray Data Technology Co. Ltd. Dynamic query optimization

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10176236B2 (en) * 2014-07-29 2019-01-08 Microsoft Technology Licensing, Llc Systems and methods for a distributed query execution engine
CN105279286A (zh) * 2015-11-27 2016-01-27 陕西艾特信息化工程咨询有限责任公司 一种交互式大数据分析查询处理方法
CN108052635A (zh) * 2017-12-20 2018-05-18 江苏瑞中数据股份有限公司 一种异构数据源统一联合查询方法
CN108108456A (zh) * 2017-12-28 2018-06-01 重庆邮电大学 一种基于元数据的信息资源分布式查询方法
CN113568930A (zh) * 2021-08-12 2021-10-29 威讯柏睿数据科技(北京)有限公司 一种分布式内存数据查询优化的方法和设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108009270A (zh) * 2017-12-18 2018-05-08 江苏润和软件股份有限公司 一种基于分布式内存计算的文本检索方法
CN109710630A (zh) * 2018-12-25 2019-05-03 中科曙光国际信息产业有限公司 异构数据源的查询方法及装置
CN110008244A (zh) * 2019-03-29 2019-07-12 国家计算机网络与信息安全管理中心 一种数据查询方法及数据查询装置
CN110059103A (zh) * 2019-04-28 2019-07-26 南京大学 一种跨平台统一的大数据sql查询方法
CN112540843A (zh) * 2019-09-20 2021-03-23 杭州海康威视数字技术股份有限公司 资源的分配方法、装置、存储设备及存储介质
US20210133193A1 (en) * 2019-10-30 2021-05-06 Boray Data Technology Co. Ltd. Dynamic query optimization
CN111190924A (zh) * 2019-12-18 2020-05-22 中思博安科技(北京)有限公司 跨域的数据查询方法及装置
CN111078961A (zh) * 2019-12-24 2020-04-28 用友网络科技股份有限公司 多数据源查询驱动系统、方法、装置和存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023015809A1 (zh) * 2021-08-12 2023-02-16 威讯柏睿数据科技(北京)有限公司 一种分布式内存数据查询优化的方法和设备

Also Published As

Publication number Publication date
WO2023015809A1 (zh) 2023-02-16

Similar Documents

Publication Publication Date Title
CN108519914B (zh) 大数据计算方法、系统和计算机设备
US20180349458A1 (en) Consistent query execution for big data analytics in a hybrid database
CN110147407B (zh) 一种数据处理方法、装置及数据库管理服务器
CN109710668B (zh) 一种多源异构数据访问中间件构建方法
US11461327B1 (en) Query plan caching for networked database systems
CN116108057B (zh) 一种分布式数据库访问方法、装置、设备及存储介质
CN113760847A (zh) 日志数据处理方法、装置、设备及存储介质
CN114090695A (zh) 分布式数据库的查询优化的方法和装置
CN113656502B (zh) 数据同步方法、系统、电子设备和存储介质
CN115237885A (zh) 数据存储系统的参数调整方法及装置
Hu et al. Approximation with error bounds in spark
CN113568930A (zh) 一种分布式内存数据查询优化的方法和设备
CN113609090A (zh) 数据存储方法及装置、计算机可读存储介质、电子设备
Suganya et al. Efficient fragmentation and allocation in distributed databases
CN116401277A (zh) 数据处理方法、装置、系统、设备及介质
CN113568892A (zh) 一种基于内存计算对数据源进行数据查询的方法和设备
US11698911B2 (en) System and methods for performing updated query requests in a system of multiple database engine
CN114238390A (zh) 数据仓库优化方法、装置、设备及存储介质
CN115080666A (zh) 数据同步方法、系统、电子设备及存储介质
CN113868138A (zh) 测试数据的获取方法、系统、设备及存储介质
CN114020446A (zh) 一种跨多引擎的路由处理方法、装置、设备及存储介质
CN114237858A (zh) 一种基于多集群网络的任务调度方法及系统
CN112115123A (zh) 用于分布式数据库的性能优化的方法和装置
JP6626198B2 (ja) 管理装置、実行環境設定方法、ストリームデータ処理システム
CN117390106B (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
CB02 Change of applicant information

Address after: Room 701, floor 7, building 3, courtyard 6, lizexi street, Chaoyang District, Beijing 100102

Applicant after: Beijing birui Data Technology Co.,Ltd.

Address before: Room 701, floor 7, building 3, courtyard 6, lizexi street, Chaoyang District, Beijing 100102

Applicant before: WEIXUN BORAY DATA TECHNOLOGY (BEIJING) Co.,Ltd.

CB02 Change of applicant information
RJ01 Rejection of invention patent application after publication

Application publication date: 20211029