CN112307066A - 分布式数据聚合方法、系统、设备及存储介质 - Google Patents
分布式数据聚合方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN112307066A CN112307066A CN202011207551.7A CN202011207551A CN112307066A CN 112307066 A CN112307066 A CN 112307066A CN 202011207551 A CN202011207551 A CN 202011207551A CN 112307066 A CN112307066 A CN 112307066A
- Authority
- CN
- China
- Prior art keywords
- data
- aggregation
- application system
- application
- data 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.)
- Granted
Links
Images
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/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
- G06F16/24556—Aggregation; Duplicate elimination
-
- 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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (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
本发明涉及数据处理技术领域,公开了一种分布式数据聚合方法、系统、设备及存储介质,用于对数据进行分布式聚合,分布式聚合方法应用于分布式数据聚合系统,分布式数据聚合系统包括聚合管理平台、N个应用系统和M个数据源,该方法包括:N个应用系统中接收聚合管理平台发送的数据查询指令的应用系统通过自身配置的聚合SDK解析接收到的数据查询指令,配置对应的数据源并从对应的数据源中获取数据查询指令查询的数据,将数据进行聚合计算,得到数据结果;各应用系统将数据结果发送至聚合管理平台,通过聚合管理平台将所有数据结果发送至N个应用系统中有数据查询需求的应用系统。此外,本发明还涉及区块链技术,数据结果可存储于区块链中。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种分布式数据聚合方法、系统、设备及存储介质。
背景技术
随着互联网的不断发展,在云环境进行业务数据的存储和统计也越来越普遍,例如,对QPS(Query Per Second,每秒查询率)、PV(Page View,页面浏览量)等不同类型的业务数据进行存储和统计。由于在云环境下存储的数据量大,因此在对云环境的存储的海量业务数据进行统计时,需要对海量的业务数据进行聚合。
目前,在对云环境中存储的海量业务数据进行聚合时,首先将不同时间段接收到的业务数据写入到数据源中,在应用系统存在数据聚合需求时,通过综合查询平台等集中式从数据源中读取需要聚合的某一类别的全部业务数据,最后将读取的业务数据按照时间进行排序后进行数据聚合。然而,由于整个数据聚合的过程是通过综合查询平台集中式完成的,数据聚合过于集中会导致以下问题:1、当综合查询平台出现宕机时,关联的系统会受到影响,稳定性差;2、在业务高峰期大量并发对服务器资源争抢问题,关键业务性能难以保证,存在性能瓶颈;3、性能扩展受限于平台集群扩展能力,集群的扩展需要停机维护,扩展灵活性不足,性能拓展困难。
发明内容
本发明的主要目的在于解决现有的数据聚合过于集中式导致稳定性差和性能难以拓展的技术问题。
本发明第一方面提供了一种分布式数据聚合方法,所述分布式聚合方法应用于分布式数据聚合系统,所述分布式数据聚合系统包括聚合管理平台、N个应用系统和M个数据源,所述聚合管理平台与所述N个应用系统通信连接,所述N个应用系统与所述M个数据源通信连接,所述分布式数据聚合方法包括:
所述N个应用系统中有数据查询需求的应用系统向所述聚合管理平台发送数据查询请求,其中,所述N为不小于1的自然数;
所述聚合管理平台解析所述数据查询请求,并生成数据查询指令发送至所述N个应用系统中的对应的应用系统;
接收到所述数据查询指令的应用系统通过自身配置的聚合SDK解析所述数据查询指令,从所述M个数据源中配置对应的数据源,其中,所述M为不小于1的自然数;
接收到所述数据查询指令的应用系统从对应的数据源中获取所述数据查询指令查询的数据;
接收到所述数据查询指令的应用系统通过自身配置的聚合SDK将所述数据进行聚合计算,得到数据结果;
各接收到所述数据查询指令的应用系统将获得的数据结果发送至所述聚合管理平台,通过所述聚合管理平台将所有所述数据结果发送至所述N个应用系统中有数据查询需求的应用系统。
可选的,在本发明第一方面的第一种实现方式中,在所述所述N个应用系统中有数据查询需求的应用系统向所述聚合管理平台发送数据查询请求之前,还包括:
获取具有数据聚合功能的应用程序的源代码;
对所述源代码进行解析,并提取出应用程序编程接口的接口信息;
获取预设编程语言对应的SDK模板,所述SDK模板包括待填充项;
从所述接口信息中获取与所述SDK模板中每个所述待填充项对应的目标接口信息,将所述目标接口信息按照预设编程语言编译后填充至所述SDK模板的所述待填充项中,生成聚合SDK;
将所述聚合SDK配置在各应用系统中。
可选的,在本发明第一方面的第二种实现方式中,在所述所述N个应用系统中有数据查询需求的应用系统向所述聚合管理平台发送数据查询请求之前,还包括:
建立访问所述数据源的数据库连接池;
创建与所述数据源数量相同的并一一对应的访问所述数据源的数据库连接;
将所述数据库连接存储在所述数据库连接池中。
可选的,在本发明第一方面的第三种实现方式中,所述所述聚合管理平台解析所述数据查询请求,并生成数据查询指令发送至所述N个应用系统中对应的应用系统包括:
所述聚合管理平台查询N个所述应用系统的初始配置参数;
根据所述初始配置参数将所述数据查询请求划分为多个子请求;
所述聚合管理平台将所述子请求作为触发数据查询指令发送至所述N个应用系统中对应的应用系统。
可选的,在本发明第一方面的第四种实现方式中,所述接收到所述数据查询指令的应用系统通过自身配置的聚合SDK解析所述数据查询指令,从所述M个数据源中配置对应的数据源包括:
接收到所述数据查询指令的应用系统通过自身配置的所述聚合SDK解析对应的子请求,得到对应的数据信息;
根据预设的所述数据信息与数据源的对应关系,配置接收到所述数据查询指令的应用系统对应的数据源。
可选的,在本发明第一方面的第五种实现方式中,所述接收到所述数据查询指令的应用系统通过自身配置的所述聚合SDK解析对应的子请求,得到对应的数据信息包括:
获取与所述子请求对应的数据规则;
从所述数据规则中获取对应的数据表;
判断所述数据库表的数量是否大于一;
若是,则根据所述数据库表之间的关联关系,对获取所述数据库表对应的数据源的获取顺序进行排序。
可选的,在本发明第一方面的第六种实现方式中,在所述接收到所述数据查询指令的应用系统从对应的数据源中获取所述数据查询指令查询的数据之前,还包括:
判断所述子请求是否为无序请求;
若是,则选择并行模式作为从所述数据源获取数据的方式;
若否,则选择串行模式作为从所述数据源获取数据的方式,并指定从所述数据源中获取数据的顺序。
本发明第二方面提供了一种分布式聚合系统,包括:
聚合管理平台、N个应用系统和M个数据源;
所述聚合管理平台用于接收所述N个应用系统中有数据查询需求的数据查询请求,并将所述数据查询请求解析成N个子请求,将所述子请求作为数据查询指令发送至所述N个应用系统中的对应的应用系统,其中,所述N为不小于1的自然数;
所述应用系统包括:
接收模块,用于接收所述聚合管理平台发送的数据查询指令;
数据源配置模块,用于通过自身配置的聚合SDK解析所述数据查询指令,从所述M个数据源中配置对应的数据源;
数据获取模块,用于从对应的所述数据源中获取所述数据查询指令查询的数据;
聚合计算模块,用于通过自身配置的聚合SDK将所述数据进行聚合计算,得到数据结果;
发送模块,用于将获得的数据结果发送至所述聚合管理平台,通过所述聚合管理平台将所有所述数据结果发送至所述N个应用系统中有数据查询需求的应用系统;
所述数据源用于存储数据,并将应用系统通过数据查询指令查询到的数据发送至应用系统。
可选的,在本发明第二方面的第一种实现方式中,所述分布式聚合系统还包括SDK配置装置,所述SDK配置装置用于:
获取具有数据聚合功能的应用程序的源代码;
对所述源代码进行解析,并提取出应用程序编程接口的接口信息;
获取预设编程语言对应的SDK模板,所述SDK模板包括待填充项;
从所述接口信息中获取与所述SDK模板中每个所述待填充项对应的目标接口信息,将所述目标接口信息按照预设编程语言编译后填充至所述SDK模板的所述待填充项中,生成聚合SDK;
将所述聚合SDK配置在各应用系统中。
可选的,在本发明第二方面的第二种实现方式中,分布式聚合系统还包括连接生成装置,所述连接生成装置用于:
建立访问所述数据源的数据库连接池;
创建与所述数据源数量相同的并一一对应的访问所述数据源的数据库连接;
将所述数据库连接存储在所述数据库连接池中。
可选的,在本发明第二方面的第三种实现方式中,所述应用系统具体还用于:
N个所述应用系统中有数据查询需求的应用系统将数据查询请求发送至所述聚合管理平台;
所述聚合管理平台具体还用于:
查询N个所述应用系统的初始配置参数;
根据所述初始配置参数将所述数据查询请求划分为多个子请求;
将所述子请求作为触发数据查询指令发送所述N个应用系统中对应的应用系统。
可选的,在本发明第二方面的第四种实现方式中,所述数据源配置模块包括
解析子单元,用于通过自身配置的所述聚合SDK解析对应的子请求,得到对应的数据信息;
对应子单元,用于根据预设的所述数据信息与数据源的对应关系,配置接收到所述数据查询指令的应用系统对应的数据源。
可选的,在本发明第二方面的第五种实现方式中,所述解析子单元具体用于:
获取与所述子请求对应的数据规则;
从所述数据规则中获取对应的数据表;
判断所述数据库表的数量是否大于一;
若是,则根据所述数据库表之间的关联关系,对获取所述数据库表对应的数据源的获取顺序进行排序。
可选的,在本发明第二方面的第六种实现方式中,所述应用系统还包括判断模块,所述判断模块具体用于:
判断所述子请求是否为无序请求;
若是,则选择并行模式作为从所述数据源获取数据的方式;
若否,则选择串行模式作为从所述数据源获取数据的方式,并指定从所述数据源中获取数据的顺序。
本发明第三方面提供了一种分布式聚合设备,包括:存储器和至少一个处理器,所述存储器中存储有计算机程序,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述计算机程序,以使得所述分布式聚合设备执行上述的分布式数据聚合方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述的分布式数据聚合方法。
本发明提供的技术方案中,公开了一种分布式数据聚合方法、系统、设备及存储介质,所述分布式聚合方法应用于分布式数据聚合系统,所述分布式数据聚合系统包括聚合管理平台、N个应用系统和M个数据源,所述聚合管理平台与所述N个应用系统通信连接,所述N个应用系统与所述M个数据源通信连接,所述分布式数据聚合方法包括:所述N个应用系统中有数据查询需求的应用系统向所述聚合管理平台发送数据查询请求,其中,所述N为不小于1的自然数;所述聚合管理平台解析所述数据查询请求,并生成数据查询指令发送至所述N个应用系统中的对应的应用系统;接收到所述数据查询指令的应用系统通过自身配置的聚合SDK解析所述数据查询指令,从所述M个数据源中配置对应的数据源,其中,所述M为不小于1的自然数;接收到所述数据查询指令的应用系统从对应的数据源中获取所述数据查询指令查询的数据;接收到所述数据查询指令的应用系统通过自身配置的聚合SDK将所述数据进行聚合计算,得到数据结果;各接收到所述数据查询指令的应用系统将获得的数据结果发送至所述聚合管理平台,通过所述聚合管理平台将所有所述数据结果发送至所述N个应用系统中有数据查询需求的应用系统。
附图说明
图1为本发明实施例中分布式数据聚合方法的第一个实施例示意图;
图2为本发明实施例中分布式数据聚合方法的第二个实施例示意图;
图3为本发明实施例中分布式数据聚合方法的第三个实施例示意图;
图4为本发明实施例中分布式数据聚合方法的第四个实施例示意图;
图5为本发明实施例中分布式数据聚合方法的第五个实施例示意图
图6为本发明实施例中分布式聚合系统的一个实施例示意图;
图7为本发明实施例中分布式聚合系统的另一个实施例示意图;
图8为本发明实施例中分布式聚合系统的第三个实施例示意图;
图9为本发明实施例中分布式聚合设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种分布式数据聚合方法、系统、设备及存储介质,所述分布式聚合方法应用于分布式数据聚合系统,所述分布式数据聚合系统包括聚合管理平台、N个应用系统和M个数据源,所述聚合管理平台与所述N个应用系统通信连接,所述N个应用系统与所述M个数据源通信连接,所述分布式数据聚合方法包括:所述N个应用系统中有数据查询需求的应用系统向所述聚合管理平台发送数据查询请求,其中,所述N为不小于1的自然数;所述聚合管理平台解析所述数据查询请求,并生成数据查询指令发送至所述N个应用系统中的对应的应用系统;接收到所述数据查询指令的应用系统通过自身配置的聚合SDK解析所述数据查询指令,从所述M个数据源中配置对应的数据源,其中,所述M为不小于1的自然数;接收到所述数据查询指令的应用系统从对应的数据源中获取所述数据查询指令查询的数据;接收到所述数据查询指令的应用系统通过自身配置的聚合SDK将所述数据进行聚合计算,得到数据结果;各接收到所述数据查询指令的应用系统将获得的数据结果发送至所述聚合管理平台,通过所述聚合管理平台将所有所述数据结果发送至所述N个应用系统中有数据查询需求的应用系统。通过本方法,可以减少各应用系统之间的资源的争抢,提高性能,且单个节点的宕机或故障都不会影响其他节点的运行,提高了整体的稳定性,同时聚合SDK提供一定的扩展性,各个团队的需求也不耦合。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中分布式数据聚合方法的一个实施例包括:
101、N个应用系统中有数据查询需求的应用系统向聚合管理平台发送数据查询请求;
需要强调的是,为保证上述数据源中数据的私密和目标用户信息的安全性,上述数据源中数据可以存储于一区块链的节点中。
可以理解的是,本发明的执行主体可以为分布式聚合系统,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。
102、聚合管理平台解析数据查询请求,并生成数据查询指令发送至N个应用系统中的对应的应用系统;
在本实施例中,所述聚合管理平台主要负责管理数据集规则、数据映射关系、数据路由、数据源、数据结构等等配置聚合服务的节点管理;配置版本管理;配置推送管理等,所述聚合管理平台的数据查询指令的触发,主要是N个应用系统中的某一应用系统向聚合管理平台发送数据查询请求,聚合管理平台根据不同应用系统的配置信息,将数据查询请求划分为子请求,每个子请求作为数据查询指令发送至对应的应用系统中。
103、接收到数据查询指令的应用系统通过自身配置的聚合SDK解析数据查询指令,从M个数据源中配置对应的数据源;
在本实施例中,主要是通过数据映射和数据路由的方式,解析所述数据查询请求,得到对应的数据信息,包括应用系统需要的数据规则、数据结构和数据源等,并根据这些数据信息,通过数据路由配置动态分配合理的数据源实例,并在事先构建好的数据库连接池中选择对应的连接,通过数据连接池中的连接,并行/串行的连接对应数据源执行相应的指令获取数据。在实际应用中,传统的数据聚合主要是通过使用综合查询平台(或据集市、数据仓库、大数据平台、聚合平台)等集中式完成多领域/多数据源的数据聚服务服务,在本实施例中,通过在每个系统中配置具有数据聚合功能的SDK(Software Development Kit,软件开发工具包),通过所述SDK完成数据聚合后,将得到的数据结果发送至需要数据的应用系统中,在实际应用中,SDK是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合,一般而言SDK即开发Windows平台下的应用程序所使用的SDK。它可以简单的为某个程序设计语言提供应用程序接口API的一些文件,但也可能包括能与某种嵌入式包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档,通过将具有数据聚合功能的软件包、软件框架、硬件平台、操作系统等封装生成SDK。
104、接收到数据查询指令的应用系统从对应的数据源中获取数据查询指令查询的数据;
在本实施例中,从数据源中获取数据主要是通过构建好的数据库连接池中的连接获取,在配置好对应的数据源后,通过数据库连接池找到对应的连接,并行/串行的连接对应数据源执行相应的指令获取数据,可以支持API接口获取数据,关系型数据库RDBMS、NoSQL等多重数据源。
105、接收到数据查询指令的应用系统通过自身配置的聚合SDK将数据进行聚合计算,得到数据结果;
在本实施例中,所述聚合计算的计算规则在解析所述数据查询请求时获得,也就是数据规则,将通过遍历的数据查询结果合并和计算数据结果。
在本实施例中,聚合SDK预设有聚合的函数,比如count()、sum()、max()、min()、jion等等,聚合SDK把多个数据源查询回来的结果集,在内存中遍历结果集,使用上述的函数进行聚合、关联等计算。
106、各接收到数据查询指令的应用系统将获得的数据结果发送至聚合管理平台,通过聚合管理平台将所有数据结果发送至N个应用系统中有数据查询需求的应用系统。
在本实施例中,由于数据聚合是分布式的,所以每个应用系统中的聚合SDK都会从数据源中获取相应的数据,并将数据源中获取到的数据进行聚合,其他应用系统将聚合后的数据结果发送给需要数据的应用系统,通过多个应用系统分布式从数据源中获取数据,并将数据聚合,减少应用系统之间对资源的争抢,提高性能,同时不会被单个节点的宕机或故障影响其他节点的运行,提高稳定性,并且节点的扩缩容更加灵活。
在本实施例中,数据在各应用系统的聚合SDK中进行聚合而非发送至有数据查询需求的应用系统中进行总的聚合的原因是因为将数据聚合集中到一个应用统一计算,运行压力没有分摊到各个分布式节点上,效率低。
本发明实施例提供的分布式聚合方法应用于分布式数据聚合系统,所述分布式数据聚合系统包括聚合管理平台、N个应用系统和M个数据源,所述聚合管理平台与所述N个应用系统通信连接,所述N个应用系统与所述M个数据源通信连接,所述分布式数据聚合方法包括:所述N个应用系统中有数据查询需求的应用系统向所述聚合管理平台发送数据查询请求,其中,所述N为不小于1的自然数;所述聚合管理平台解析所述数据查询请求,并生成数据查询指令发送至所述N个应用系统中的对应的应用系统;接收到所述数据查询指令的应用系统通过自身配置的聚合SDK解析所述数据查询指令,从所述M个数据源中配置对应的数据源,其中,所述M为不小于1的自然数;接收到所述数据查询指令的应用系统从对应的数据源中获取所述数据查询指令查询的数据;接收到所述数据查询指令的应用系统通过自身配置的聚合SDK将所述数据进行聚合计算,得到数据结果;各接收到所述数据查询指令的应用系统将获得的数据结果发送至所述聚合管理平台,通过所述聚合管理平台将所有所述数据结果发送至所述N个应用系统中有数据查询需求的应用系统。通过本方法,可以减少各应用系统之间的资源的争抢,提高性能,且单个节点的宕机或故障都不会影响其他节点的运行,提高了整体的稳定性,同时聚合SDK提供一定的扩展性,各个团队的需求也不耦合。
请参阅图2,本发明实施例中分布式数据聚合方法的第二个实施例包括:
201、获取具有数据聚合功能的应用程序的源代码;
202、对源代码进行解析,并提取出应用程序编程接口的接口信息;
203、获取预设编程语言对应的SDK模板,SDK模板包括待填充项;
204、从接口信息中获取与SDK模板中每个待填充项对应的目标接口信息,将目标接口信息按照预设编程语言编译后填充至SDK模板的待填充项中,生成聚合SDK;
205、将聚合SDK配置在各应用系统中;
在本实施例中,应用程序包括综合查询平台、数据集市、数据仓库、大数据平台、聚合平台等,为需要生成聚合SDK的目标对象。为需要生成软件开发工具包的目标对象。源代码的获取可以是通过Git在预先配置好的应用程序源代码托管地址下载所述应用程序的源代码。
在本实施例中,对源代码进行解析,提取出API的接口信息,从而后续生成SDK,接口信息包括但不限于:接口名称、接口请求参数信息、和接口响应参数信息。接口请求参数信息包括但不限于:参数名称和参数类型。接口响应参数信息包括但不限于:响应参数名称、响应参数类型、和复杂类型参数信息(即由多个基础类型字段组合而成的新类型)。
在本实施例中,根据不同编程语言的语法特征,为各个不同的编程语言的SDK事先编写了文件模板,也就是说,为不同编程语言预设了对应的SDK模板。此外,还可以根据不同的文件用途对这些模板进行继续组织与管理。
206、N个应用系统中有数据查询需求的应用系统向聚合管理平台发送数据查询请求;
207、聚合管理平台解析数据查询请求,并生成数据查询指令发送至N个应用系统中的对应的应用系统;
208、接收到数据查询指令的应用系统通过自身配置的聚合SDK解析数据查询指令,从M个数据源中配置对应的数据源;
209、接收到数据查询指令的应用系统从对应的数据源中获取数据查询指令查询的数据;
210、接收到数据查询指令的应用系统通过自身配置的聚合SDK将数据进行聚合计算,得到数据结果;
211、各接收到数据查询指令的应用系统将获得的数据结果发送至聚合管理平台,通过聚合管理平台将所有数据结果发送至N个应用系统中有数据查询需求的应用系统。
本实施例在上一实施例的基础上,增加了对每个应用系统配置聚合SDK的过程,通过获取具有数据聚合功能的应用程序的源代码;对所述源代码进行解析,并提取出应用程序编程接口的接口信息;获取预设编程语言对应的SDK模板,所述SDK模板包括待填充项;从所述接口信息中获取与所述SDK模板中每个所述待填充项对应的目标接口信息,将所述目标接口信息按照预设编程语言编译后填充至所述SDK模板的所述待填充项中,生成聚合SDK;将所述聚合SDK配置在各应用系统中。通过未每个应用系统配置聚合SDK,每个应用系统都能完成数据查询、数据获取、数据聚合的过程,达到分布式数据聚合的效果。
请参阅图3,本发明实施例中分布式数据聚合方法的第三个实施例包括:
301、建立访问数据源的数据库连接池;
302、创建与数据源数量相同的并一一对应的访问数据源的数据库连接;
303、将数据库连接存储在数据库连接池中;
在本实施例中,连接池的作用在于连接池是将已经创建好的连接保存在池中,当有请求来时,直接使用已经创建好的连接对数据库进行访问。这样省略了创建连接和销毁连接的过程。这样性能上得到了提高,连接池一般比直接连接更有优越性,因为它提高了性能的同时还保存了宝贵的资源。在整个应用程序的使用过程,当中重复的打开直接连接将导致性能的下降。而池连接只在服务器启动时打开一次,从而消除了这种性能问题,连接池主要考虑的是性能,每次获取连接和释放连接都有很大的工作量,会对性能有很大影响;而对资源来说起的是反作用,因为保存一定数量的连接是要消耗内存的。应用程序每次从池里获得Connection对象,而不是直接从数据里获得,这样不占用服务器的内存资源。所以一般要建立连接池,而连接的数量要适当,不能太大,太大会过多消耗资源。
304、N个应用系统中有数据查询需求的应用系统向聚合管理平台发送数据查询请求;
305、聚合管理平台解析数据查询请求,并生成数据查询指令发送至N个应用系统中的对应的应用系统;
306、接收到数据查询指令的应用系统通过自身配置的聚合SDK解析数据查询指令,从M个数据源中配置对应的数据源;
307、接收到数据查询指令的应用系统从对应的数据源中获取数据查询指令查询的数据;
308、接收到数据查询指令的应用系统通过自身配置的聚合SDK将数据进行聚合计算,得到数据结果;
309、各接收到数据查询指令的应用系统将获得的数据结果发送至聚合管理平台,通过聚合管理平台将所有数据结果发送至N个应用系统中有数据查询需求的应用系统。
本实施例在上一实施例的基础上,详细的描述了生成数据库连接并将所述数据库连接存储于构建好的数据连接池中的过程,通过建立访问所述数据源的数据库连接池;创建与所述数据源数量相同的并一一对应的访问所述数据源的数据库连接;将所述数据库连接存储在所述数据库连接池中。连接池的作用在于连接池是将已经创建好的连接保存在池中,当有请求来时,直接使用已经创建好的连接对数据库进行访问。省略了创建连接和销毁连接的过程。性能上得到了提高。
请参阅图4,本发明实施例中分布式数据聚合方法的第四个实施例包括:
401、N个应用系统中有数据查询需求的应用系统向聚合管理平台发送数据查询请求;
402、聚合管理平台查询N个应用系统的初始配置参数;
403、根据初始配置参数将数据查询请求划分为多个子请求;
404、聚合管理平台将子请求作为触发数据查询指令发送至对应的应用系统中;
在本实施例中,所述初始配置参数包括所有应用系统的总CPU(CentralProcessing Unit,中央处理器)资源和总内存资源,通过该初始配置参数可以将数据查询请求划分为多个子请求。在将数据查询请求划分为多个子请求后,可以确定每个子请求的CPU资源需求占比和内存资源需求占比,并将CPU资源需求占比和内存资源需求占比中较大者作为该子请求的支配份额,当多个用户同时发出多个数据查询请求时,调度第二应用系统选择性分配任务,提高数据聚合的效率。
在本实施例中子请求是根据不同的应用系统的初始配置参数划分的,故所述子请求与应用系统存在对应关系。
405、接收到数据查询指令的应用系统通过自身配置的聚合SDK解析对应的子请求,得到对应的数据信息;
406、根据预设的数据信息与数据源的对应关系,配置接收到数据查询指令的应用系统对应的数据源;
407、判断子请求是否为无序请求;
408、若是,则选择并行模式作为从数据源获取数据的方式;
409、若否,则选择串行模式作为从数据源获取数据的方式,并指定从数据源中获取数据的顺序;
在本实施例中,所述子请求分为有序请求和无序请求,其中,有序请求是指对多个数据源中数据的获取之间有先后访问的顺序,一般适用于对多个数据源中数据的获取存在相互影响的情况,例如,对数据源B的获取的输入请求中包含了对数据源中获取的数据,即对数据源B中数据的获取需要在数据源A完成输出数据之后的情况下,才能实施具体的数据计算,因此对数据源A和数据源B的数据获取的请求也要有先后顺序,即先获取数据源A中的数据,再获取数据源B中的数据。
在本实施例中,所述无序请求是指对多个数据源中数据的获取没有前后方位顺序,可适用在多个数据源获取的数据之间没有相互影响的情况。因此可以在获取数据源中的数据之前判断子请求是否为无序请求。具体的判断依据可以是根据子请求对应所需要达到的功能确定,例如,子请求中对应要实现的功能需要串行执行,则对多个数据源中数据的获取之间具有先后顺序,因此确定子请求为有序请求。反之,如果子请求中对应要实现的各个功能需要并行执行,则对多个数据源的数据的获取之间没有先后顺序,可确定子请求为无序请求。
在实际应用中,对于子请求对应的功能,可能并不局限于一种执行顺序,即在子请求对应的多个子功能下,部分子功能需要有执行的先后顺序,部分子功能不需要有执行的先后顺序。因此可以根据数据配置选择串行和并行的获取数据。
410、接收到数据查询指令的应用系统从对应的数据源中获取数据查询指令查询的数据;
411、接收到数据查询指令的应用系统通过自身配置的聚合SDK将数据进行聚合计算,得到数据结果;
412、各接收到数据查询指令的应用系统将获得的数据结果发送至聚合管理平台,通过聚合管理平台将所有数据结果发送至N个应用系统中有数据查询需求的应用系统。
本实施例在前实施例的基础上,描述了聚合管理平台生成数据查询指令的过程,通过N个所述应用系统中有数据查询需求的应用系统将数据查询请求发送至所述聚合管理平台;所述聚合管理平台查询N个所述应用系统的初始配置参数;根据所述初始配置参数将所述数据查询请求划分为多个子请求;所述聚合管理平台将所述子请求作为触发数据查询指令发送至对应的应用系统中。通过本方法,能够对根据不同应用系统的不同配置,将数据查询请求划分为多个子请求,实现数据查询的分布式实现。
请参阅图5,本发明实施例中分布式数据聚合方法的第五个实施例包括:
501、N个应用系统中有数据查询需求的应用系统向聚合管理平台发送数据查询请求;
502、聚合管理平台解析数据查询请求,并生成数据查询指令发送至N个应用系统中的对应的应用系统;
503、接收到数据查询指令的应用系统获取与数据查询指令对应的数据规则,并从数据规则中获取对应的数据表;
504、判断数据库表的数量是否大于一;
505、若是,则应用系统根据数据库表之间的关联关系,对获取数据库表对应的数据源的获取顺序进行排序;
在本实施例中,数据查询请求通过getDataSets(…)实现,例如getDataSet(“各省销售情况”)订单表字段:用户ID产品ID产品数量…用户表字段:ID姓名联系方式省份…产品表字段:ID名称单价…,“各省销售情况”数据对应的数据规则,使用类似SQL方式描述数据结果的计算规则,从SQL中的FROM语句里得到需要访问的数据表,当数据表存在多个时,需要根据数据查询请求中对需要访问的数据表的数量进行判断,例如从SQL中的FROM语句里得到需要访问的数据表:订单表、用户表、产品表,并分解出3个数据查询任务的队列,根据队列中的顺序对数据源进行串行获取。
506、接收到数据查询指令的应用系统通过自身配置的聚合SDK解析数据查询指令,从M个数据源中配置对应的数据源;
在本实施例中,得到所述第一应用系统所需的数据信息主要是通过数据映射的方式,所述数据信息包括所需数据的数据规则、数据结构和数据源。
在本实施例中,根据上述的数据规则、数据结构和数据源,通过数据路由的方式,动态分配对应的数据源实例,并在连接池找到对应的连接,并行/串行的连接对应数据源执行相应的指令获取数据。
507、接收到数据查询指令的应用系统从对应的数据源中获取数据查询指令查询的数据;
508、接收到数据查询指令的应用系统通过自身配置的聚合SDK将数据进行聚合计算,得到数据结果;
508、各接收到数据查询指令的应用系统将获得的数据结果发送至聚合管理平台,通过聚合管理平台将所有数据结果发送至N个应用系统中有数据查询需求的应用系统。
本实施例在前实施例的基础上,详细描述了应用系统通过自身配置的聚合SDK解析接收到的所述数据查询指令,配置对应的数据源的过程,所述应用系统通过自身配置的所述聚合SDK解析对应的子请求,得到对应的数据信息;根据预设的所述数据信息与数据源的对应关系,配置对应的数据源,通过配置对应的数据源,应用系统能够从数据源中获取数据,实现分布式获取数据的效果。
上面对本发明实施例中分布式数据聚合方法进行了描述,下面对本发明实施例中分布式聚合系统进行描述,请参阅图6,本发明实施例中分布式聚合系统一个实施例包括:
聚合管理平台601、N个应用系统602和M个数据源603;
所述聚合管理平台601用于接收所述N个应用系统602中有数据查询需求的数据查询请求,并将所述数据查询请求解析成N个子请求,将所述子请求作为数据查询指令发送至所述N个应用系统602的对应的应用系统602中,其中,所述N为不小于1的自然数;
所述应用系统602包括:
接收模块6021,用于接收所述聚合管理平台601发送的数据查询指令;
数据源配置模块6022,用于通过自身配置的聚合SDK解析所述数据查询指令,从所述M个数据源中配置对应的数据源603;
数据获取模块6023,用于从对应的所述数据源603中获取所述数据查询指令查询的数据;
聚合计算模块6024,用于通过自身配置的聚合SDK将所述数据进行聚合计算,得到数据结果;
发送模块6025,用于将获得的数据结果发送至所述聚合管理平台601,通过所述聚合管理平台601将所有所述数据结果发送至N个所述应用系统602中有数据查询需求的应用系统602;
所述数据源603用于存储数据,并将应用系统602通过数据查询指令查询到的数据发送至应用系统602。
本发明实施例提供一种分布式聚合系统,所述分布式数据聚合系统包括聚合管理平台、N个应用系统和M个数据源,所述分布式聚合系统运行所述分布式数据聚合方法,包括:N个所述应用系统接收所述聚合管理平台发送的数据查询指令,其中,所述N为不小于1的自然数;所述应用系统通过自身配置的聚合SDK解析接收到的所述数据查询指令,配置对应的数据源;所述应用系统从对应的所述数据源中获取所述数据查询指令查询的数据;所述应用系统通过自身配置的聚合SDK将所述数据进行聚合计算,得到数据结果;各所述应用系统将自身配置的聚合SDK获得的数据结果发送至所述聚合管理平台,通过所述聚合管理平台将所有所述数据结果发送至N个所述应用系统中有数据查询需求的应用系统。通过本方法,可以减少各应用系统之间的资源的争抢,提高性能,且单个节点的宕机或故障都不会影响其他节点的运行,提高了整体的稳定性,同时聚合SDK提供一定的扩展性,各个团队的需求也不耦合。
请参阅图7,本发明实施例中分布式聚合系统的另一个实施例包括:
聚合管理平台601、N个应用系统602和M个数据源603;
所述聚合管理平台601用于接收所述N个应用系统602中有数据查询需求的数据查询请求,并将所述数据查询请求解析成N个子请求,将所述子请求作为数据查询指令发送至所述N个应用系统602中,其中,所述N为不小于1的自然数;
所述应用系统602包括:
接收模块6021,用于接收所述聚合管理平台601发送的数据查询指令;
数据源配置模块6022,用于通过自身配置的聚合SDK解析接收到的所述数据查询指令,配置对应的数据源603;
数据获取模块6023,用于从对应的所述数据源603中获取所述数据查询指令查询的数据;
聚合计算模块6024,用于通过自身配置的聚合SDK将所述数据进行聚合计算,得到数据结果;
发送模块6025,用于将自身配置的聚合SDK获得的数据结果发送至所述聚合管理平台601,通过所述聚合管理平台601将所有所述数据结果发送至N个所述应用系统602中有数据查询需求的应用系统602;
所述数据源603用于存储数据,并将应用系统602通过数据查询指令查询到的数据发送至应用系统602。
其中,所述分布式聚合系统还包括SDK配置装置604,所述SDK配置装置604用于:
获取具有数据聚合功能的应用程序的源代码;
对所述源代码进行解析,并提取出应用程序编程接口的接口信息;
获取预设编程语言对应的SDK模板,所述SDK模板包括待填充项;
从所述接口信息中获取与所述SDK模板中每个所述待填充项对应的目标接口信息,将所述目标接口信息按照预设编程语言编译后填充至所述SDK模板的所述待填充项中,生成聚合SDK;
将所述聚合SDK配置在各应用系统602中。
其中,分布式聚合系统还包括连接生成装置605,所述连接生成装置用于:
建立访问所述数据源603的数据库连接池;
创建与所述数据源603数量相同的并一一对应的访问所述数据源603的数据库连接;
将所述数据库连接存储在所述数据库连接池中。
可选的,所述应用系统602具体还用于:
N个所述应用系统602中有数据查询需求的应用系统602将数据查询请求发送至所述聚合管理平台601;
所述聚合管理平台601具体还用于:
查询N个所述应用系统602的初始配置参数;
根据所述初始配置参数将所述数据查询请求划分为多个子请求;
将所述子请求作为触发数据查询指令发送至对应的应用系统602中。
其中,所述数据源配置模块6022包括:
解析子单元60221,用于通过自身配置的所述聚合SDK解析对应的子请求,得到对应的数据信息;
对应子单元60222,用于根据预设的所述数据信息与数据源603的对应关系,配置对应的数据源603。
可选的,所述解析子单元60221具体用于:
获取与所述子请求对应的数据规则;
从所述数据规则中获取对应的数据表;
判断所述数据库表的数量是否大于一;
若是,则根据所述数据库表之间的关联关系,对获取所述数据库表对应的数据源603的获取顺序进行排序。
其中,所述应用系统602还包括判断模块6026,所述判断模块6026具体用于:
判断所述子请求是否为无序请求;
若是,则选择并行模式作为从所述数据源603获取数据的方式;
若否,则选择串行模式作为从所述数据源603获取数据的方式,并指定从所述数据源603中获取数据的顺序。
本发明实施例提供的分布式聚合系统通过运行分布式数据聚合方法,所述分布式聚合系统包括N个所述应用系统接收所述聚合管理平台发送的数据查询指令,其中,所述N为不小于1的自然数;所述用于系统包括接收模块、数据源配置模块、数据获取模块、聚合计算模块、发送模块,并描述了部分模块的单元构成和子单元构成,通过上述装置、模块等,实现数据聚合的分布式实现,可以减少各应用系统之间的资源的争抢,提高性能,且单个节点的宕机或故障都不会影响其他节点的运行,提高了整体的稳定性,同时聚合SDK提供一定的扩展性,各个团队的需求也不耦合。
请参阅图8,本发明实施例中分布式聚合系统的第三个实施例包括:
聚合管理平台,应用系统和数据源;
其中,聚合管理平台负责管理数据集规则、数据映射关系、数据路由、数据源、数据结构等配置聚合服务的节点管理;配置版本管理;配置推送管理等;
应用系统包括业务代码,所述业务代码实现聚合SDK的功能,所述聚合SDK包括:
聚合配置模块,用于负责与管理平台交互,包括节点的注册,配置接收,本地配置存取,配置版本控制;
查询处理器,用于负责处理业务代码的数据请求,并且协调SDK内部的各个组件的运作;
数据映射模块,用于负责根据配置分解查询请求所需的数据;
数据路由模块,用于负责根据配置路分配到合适的数据源;
数据连接池,用于为了减少握手的开销,对各个数据源进行连接的管理,以及执行获取数据的方法。可以根据数据配置选择串行和并行的获取数据。可以支持API接口获取数据,关系型数据库RDBMS、NoSQL等多重数据源;
数据聚合模块,用于负责把数据结果根据业务规则进行连接、合并、计算等操作,并把数据处理结果输出给查询处理器。
通过本实施例的分布式聚合系统实现数据聚合的分布式实现,可以减少各应用系统之间的资源的争抢,提高性能,且单个节点的宕机或故障都不会影响其他节点的运行,提高了整体的稳定性,同时聚合SDK提供一定的扩展性,各个团队的需求也不耦合。
上面图6、图7和图8从模块化功能实体的角度对本发明实施例中的分布式聚合系统进行详细描述,下面从硬件处理的角度对本发明实施例中分布式聚合设备进行详细描述。
图9是本发明实施例提供的一种分布式聚合设备的结构示意图,该分布式聚合设备900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)910(例如,一个或一个以上处理器)和存储器920,一个或一个以上存储应用程序933或数据932的存储介质930(例如一个或一个以上海量存储设备)。其中,存储器920和存储介质930可以是短暂存储或持久存储。存储在存储介质930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对分布式聚合设备900中的一系列计算机程序操作。更进一步地,处理器910可以设置为与存储介质930通信,在分布式聚合设备900上执行存储介质930中的一系列计算机程序操作,以实现上述各实施例提供的分布式数据聚合方法的步骤。
分布式聚合设备900还可以包括一个或一个以上电源940,一个或一个以上有线或无线网络接口950,一个或一个以上输入输出接口960,和/或,一个或一个以上操作系统931,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图9示出的分布式聚合设备结构并不构成对本申请提供的分布式聚合设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得计算机执行所述分布式数据聚合方法的步骤,可选的,是通过计算机上的处理器来执行所述计算机程序。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干计算机程序用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-onlymemory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种分布式数据聚合方法,其特征在于,所述分布式聚合方法应用于分布式数据聚合系统,所述分布式数据聚合系统包括聚合管理平台、N个应用系统和M个数据源,所述聚合管理平台与所述N个应用系统通信连接,所述N个应用系统与所述M个数据源通信连接,所述分布式数据聚合方法包括:
所述N个应用系统中有数据查询需求的应用系统向所述聚合管理平台发送数据查询请求,其中,所述N为不小于1的自然数;
所述聚合管理平台解析所述数据查询请求,并生成数据查询指令发送至所述N个应用系统中的对应的应用系统;
接收到所述数据查询指令的应用系统通过自身配置的聚合SDK解析所述数据查询指令,从所述M个数据源中配置对应的数据源,其中,所述M为不小于1的自然数;
接收到所述数据查询指令的应用系统从对应的数据源中获取所述数据查询指令查询的数据;
接收到所述数据查询指令的应用系统通过自身配置的聚合SDK将所述数据进行聚合计算,得到数据结果;
各接收到所述数据查询指令的应用系统将获得的数据结果发送至所述聚合管理平台,通过所述聚合管理平台将所有所述数据结果发送至所述N个应用系统中有数据查询需求的应用系统。
2.根据权利要求1所述的分布式数据聚合方法,其特征在于,在所述所述N个应用系统中有数据查询需求的应用系统向所述聚合管理平台发送数据查询请求之前,还包括:
获取具有数据聚合功能的应用程序的源代码;
对所述源代码进行解析,并提取出应用程序编程接口的接口信息;
获取预设编程语言对应的SDK模板,所述SDK模板包括待填充项;
从所述接口信息中获取与所述SDK模板中每个所述待填充项对应的目标接口信息,将所述目标接口信息按照预设编程语言编译后填充至所述SDK模板的所述待填充项中,生成聚合SDK;
将所述聚合SDK配置在各应用系统中。
3.根据权利要求1所述的分布式数据聚合方法,其特征在于,在所述所述N个应用系统中有数据查询需求的应用系统向所述聚合管理平台发送数据查询请求之前,还包括:
建立访问所述数据源的数据库连接池;
创建与所述数据源数量相同的并一一对应的访问所述数据源的数据库连接;
将所述数据库连接存储在所述数据库连接池中。
4.根据权利要求1所述的分布式数据聚合方法,其特征在于,所述所述聚合管理平台解析所述数据查询请求,并生成数据查询指令发送至所述N个应用系统中对应的应用系统包括:
所述聚合管理平台查询N个所述应用系统的初始配置参数;
根据所述初始配置参数将所述数据查询请求划分为多个子请求;
所述聚合管理平台将所述子请求作为触发数据查询指令发送至所述N个应用系统中对应的应用系统。
5.根据权利要求4所述的分布式数据聚合方法,其特征在于,所述接收到所述数据查询指令的应用系统通过自身配置的聚合SDK解析所述数据查询指令,从所述M个数据源中配置对应的数据源包括:
接收到所述数据查询指令的应用系统通过自身配置的所述聚合SDK解析对应的子请求,得到对应的数据信息;
根据预设的所述数据信息与数据源的对应关系,配置接收到所述数据查询指令的应用系统对应的数据源。
6.根据权利要求1-5中任一项所述的分布式数据聚合方法,其特征在于,所述接收到所述数据查询指令的应用系统通过自身配置的所述聚合SDK解析对应的子请求,得到对应的数据信息包括:
获取与所述子请求对应的数据规则;
从所述数据规则中获取对应的数据表;
判断所述数据库表的数量是否大于一;
若是,则根据所述数据库表之间的关联关系,对获取所述数据库表对应的数据源的获取顺序进行排序。
7.根据权利要求6所述的分布式数据聚合方法,其特征在于,在所述接收到所述数据查询指令的应用系统从对应的数据源中获取所述数据查询指令查询的数据之前,还包括:
判断所述子请求是否为无序请求;
若是,则选择并行模式作为从所述数据源获取数据的方式;
若否,则选择串行模式作为从所述数据源获取数据的方式,并指定从所述数据源中获取数据的顺序。
8.一种分布式聚合系统,其特征在于,所述分布式聚合系统包括:
聚合管理平台、N个应用系统和M个数据源;
所述聚合管理平台用于接收所述N个应用系统中有数据查询需求的数据查询请求,并将所述数据查询请求解析成N个子请求,将所述子请求作为数据查询指令发送至所述N个应用系统中的对应的应用系统,其中,所述N为不小于1的自然数;
所述应用系统包括:
接收模块,用于接收所述聚合管理平台发送的数据查询指令;
数据源配置模块,用于通过自身配置的聚合SDK解析所述数据查询指令,从所述M个数据源中配置对应的数据源;
数据获取模块,用于从对应的所述数据源中获取所述数据查询指令查询的数据;
聚合计算模块,用于通过自身配置的聚合SDK将所述数据进行聚合计算,得到数据结果;
发送模块,用于将获得的数据结果发送至所述聚合管理平台,通过所述聚合管理平台将所有所述数据结果发送至所述N个应用系统中有数据查询需求的应用系统;
所述数据源用于存储数据,并将应用系统通过数据查询指令查询到的数据发送至应用系统。
9.一种分布式聚合设备,其特征在于,所述分布式聚合设备包括:存储器和至少一个处理器,所述存储器中存储有计算机程序,所述存储器和所述至少一个处理器通过线路互连;
所述至少一个处理器调用所述存储器中的所述计算机程序,以使得所述分布式聚合设备执行如权利要求1-7中任一项所述的分布式数据聚合方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的分布式数据聚合方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011207551.7A CN112307066B (zh) | 2020-11-03 | 2020-11-03 | 分布式数据聚合方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011207551.7A CN112307066B (zh) | 2020-11-03 | 2020-11-03 | 分布式数据聚合方法、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112307066A true CN112307066A (zh) | 2021-02-02 |
CN112307066B CN112307066B (zh) | 2023-04-07 |
Family
ID=74333961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011207551.7A Active CN112307066B (zh) | 2020-11-03 | 2020-11-03 | 分布式数据聚合方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112307066B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113190578A (zh) * | 2021-03-26 | 2021-07-30 | 有半岛(北京)信息科技有限公司 | 多源数据查询系统、方法、装置、设备及存储介质 |
CN114154026A (zh) * | 2021-11-12 | 2022-03-08 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN114218363A (zh) * | 2021-11-23 | 2022-03-22 | 赵运柱 | 基于大数据和ai的服务内容生成方法及人工智能云系统 |
CN116126914A (zh) * | 2023-01-12 | 2023-05-16 | 东方合智数据科技(广东)有限责任公司 | 数据源访问方法、装置、设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104903894A (zh) * | 2013-01-07 | 2015-09-09 | 脸谱公司 | 用于分布式数据库查询引擎的系统和方法 |
CN105007317A (zh) * | 2015-07-10 | 2015-10-28 | 深圳市创梦天地科技有限公司 | 一种分布式节点的数据处理方法及网关设备 |
US20160092524A1 (en) * | 2014-09-26 | 2016-03-31 | Oracle International Corporation | System and method for data transfer from jdbc to a data warehouse layer in a massively parallel or distributed database environment |
US20170091204A1 (en) * | 2015-09-30 | 2017-03-30 | Juniper Networks, Inc. | Analytics for a distributed network |
US20170103104A1 (en) * | 2015-10-07 | 2017-04-13 | International Business Machines Corporation | Query plan based on a data storage relationship |
CN109508344A (zh) * | 2018-09-29 | 2019-03-22 | 中国平安人寿保险股份有限公司 | 业务数据查询方法、装置、电子设备及存储介质 |
CN110362611A (zh) * | 2019-07-12 | 2019-10-22 | 拉卡拉支付股份有限公司 | 一种数据库查询方法、装置、电子设备及存储介质 |
CN110442602A (zh) * | 2019-07-02 | 2019-11-12 | 新华三大数据技术有限公司 | 数据查询方法、装置、服务器及存储介质 |
US20200073987A1 (en) * | 2018-09-04 | 2020-03-05 | Salesforce.Com, Inc. | Technologies for runtime selection of query execution engines |
-
2020
- 2020-11-03 CN CN202011207551.7A patent/CN112307066B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104903894A (zh) * | 2013-01-07 | 2015-09-09 | 脸谱公司 | 用于分布式数据库查询引擎的系统和方法 |
US20160092524A1 (en) * | 2014-09-26 | 2016-03-31 | Oracle International Corporation | System and method for data transfer from jdbc to a data warehouse layer in a massively parallel or distributed database environment |
CN105007317A (zh) * | 2015-07-10 | 2015-10-28 | 深圳市创梦天地科技有限公司 | 一种分布式节点的数据处理方法及网关设备 |
US20170091204A1 (en) * | 2015-09-30 | 2017-03-30 | Juniper Networks, Inc. | Analytics for a distributed network |
US20170103104A1 (en) * | 2015-10-07 | 2017-04-13 | International Business Machines Corporation | Query plan based on a data storage relationship |
US20200073987A1 (en) * | 2018-09-04 | 2020-03-05 | Salesforce.Com, Inc. | Technologies for runtime selection of query execution engines |
CN109508344A (zh) * | 2018-09-29 | 2019-03-22 | 中国平安人寿保险股份有限公司 | 业务数据查询方法、装置、电子设备及存储介质 |
CN110442602A (zh) * | 2019-07-02 | 2019-11-12 | 新华三大数据技术有限公司 | 数据查询方法、装置、服务器及存储介质 |
CN110362611A (zh) * | 2019-07-12 | 2019-10-22 | 拉卡拉支付股份有限公司 | 一种数据库查询方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
杨宁等: "基于混合处理模型的乱序数据流分布式聚合查询处理技术", 《广西科学》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113190578A (zh) * | 2021-03-26 | 2021-07-30 | 有半岛(北京)信息科技有限公司 | 多源数据查询系统、方法、装置、设备及存储介质 |
CN114154026A (zh) * | 2021-11-12 | 2022-03-08 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN114218363A (zh) * | 2021-11-23 | 2022-03-22 | 赵运柱 | 基于大数据和ai的服务内容生成方法及人工智能云系统 |
CN116126914A (zh) * | 2023-01-12 | 2023-05-16 | 东方合智数据科技(广东)有限责任公司 | 数据源访问方法、装置、设备及存储介质 |
CN116126914B (zh) * | 2023-01-12 | 2023-10-03 | 东方合智数据科技(广东)有限责任公司 | 数据源访问方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112307066B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112307066B (zh) | 分布式数据聚合方法、系统、设备及存储介质 | |
US7979858B2 (en) | Systems and methods for executing a computer program that executes multiple processes in a multi-processor environment | |
US9990385B2 (en) | Method and system for collecting and analyzing time-series data | |
US10114682B2 (en) | Method and system for operating a data center by reducing an amount of data to be processed | |
US8712994B2 (en) | Techniques for accessing a parallel database system via external programs using vertical and/or horizontal partitioning | |
WO2016123921A1 (zh) | 基于Http协议的多数据源的数据处理方法及系统 | |
US20200128094A1 (en) | Fast ingestion of records in a database using data locality and queuing | |
US20110166952A1 (en) | Facilitating dynamic construction of clouds | |
CN109918435A (zh) | 一种业务接口的处理方法及系统 | |
US20200125666A1 (en) | Multiple partitioning schemes for partitioned database objects | |
US20220138195A1 (en) | User defined functions for database query languages based on call-back functions | |
CN115495221A (zh) | 一种数据处理系统及方法 | |
US10621389B1 (en) | Selecting platform-supported services | |
Lv et al. | An attribute-based availability model for large scale IaaS clouds with CARMA | |
Luo et al. | Large-scale ranking and selection using cloud computing | |
Choi et al. | Gpsf: general-purpose scheduling framework for container based on cloud environment | |
CN1783121A (zh) | 用于执行设计自动化的方法和系统 | |
Arafat et al. | Load balancing of dynamical nucleation theory Monte Carlo simulations through resource sharing barriers | |
MAALA et al. | Cluster trace analysis for performance enhancement in cloud computing environments | |
US20140379691A1 (en) | Database query processing with reduce function configuration | |
Castellanos-Rodríguez et al. | Serverless-like platform for container-based YARN clusters | |
US11500874B2 (en) | Systems and methods for linking metric data to resources | |
Hofer et al. | Digidt: Distributed classifier construction in the grid data mining framework gridminer-core | |
Khalil et al. | Multi-agent model for job scheduling in cloud computing | |
Yasmin et al. | A constraint programming-based resource allocation and scheduling of map reduce jobs with service level agreement |
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 |