CN111382156A - 一种数据采集方法、系统、装置、电子设备及存储介质 - Google Patents
一种数据采集方法、系统、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111382156A CN111382156A CN202010093384.1A CN202010093384A CN111382156A CN 111382156 A CN111382156 A CN 111382156A CN 202010093384 A CN202010093384 A CN 202010093384A CN 111382156 A CN111382156 A CN 111382156A
- Authority
- CN
- China
- Prior art keywords
- sub
- data
- query
- task
- database
- 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
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
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)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据采集方法、系统、装置、电子设备及存储介质,用于采集以分库分表存储数据的业务系统数据库中数据,该方法包括:接收查询请求;将所述查询请求分解为分布在若干工作节点的任务,每个所述任务处理一个或者多个分片;所述若干工作节点与业务系统数据库的所有分库连接;将每个所述任务下发至对应工作节点的内存中执行;从所述若干工作节点的内存获取查询结果。通过分布式内存计算方式,实现并发请求查询所需的所有业务数据库分库,将大批量数据采集的查询压力分摊到所有分库中,能有效解决单点访问分库分表中间件的导致资源消耗过大的问题。同时基于并发访问也极大的提高了分库分表数据的采集速度,更快为大数据分析平台提供数据。
Description
技术领域
本发明属于大数据技术领域,具体是一种数据采集方法、系统、装置、电子设备及存储介质。
背景技术
由于关系型数据库单机的性能有限,在存储容量、并发连接数、计算处理能力上都容易成为瓶颈,尤其是单表的数据量超过千万级以上,会导致查询效率受到影响,即使添加从库、优化表索引,很多操作的性能也会下降严重。为了解决这个问题,很多业务系统按照数据表水平切分(水平分表)等方式实现分库分表存储数据,减轻了数据库的负担,提升了查询效率。但是采用分库分表方式存储数据会导致大数据平台采集业务系统数据十分困难,当业务系统规模庞大时,一张数据量较大的表(例如交易流水表)需要分布到几十甚至上百的数据库中,同时大数据平台在采集数据时请求量非常庞大,为了避免给业务系统产生压力,不能直接访问分库分表中间件请求数据,只能直连分库直接去分表请求数据。
分库分表有两种方式,即水平分表和垂直分表。垂直分表在日常开发和设计中比较常见,通俗的说法叫做“大表拆小表”,垂直拆分是基于关系型数据库中的“列”(字段)进行的。通常情况下,某个表中的字段比较多,可以新建立一张“扩展表”,将不经常使用或者长度较大的字段拆分出去放到“扩展表”中,最常见的方式就是通过主键或者时间等字段进行Hash和取模后拆分。垂直分表如图1所示,将不同模块的数据分库存储,模块间不相互关联查询,如果有,就必须通过数据冗余或应用层二次加工来解决,这种方法业务和数据结构最清晰,但若不能杜绝跨库关联查询,则此方法不通。水平分表也称为横向分表,是将表中不同的数据行按照一定规律分布到不同的数据库表中(这些表保存在同一个数据库中),从而降低单表数据量,优化查询性能,横向分表如图2所示,相对于垂直分表,横向分表是按照表内某个字段的某种规则来将数据分散存储于不同的数据库(或不同的表),也就是按数据行来切分数据。
现有的分库分表存储方式的数据采集基本是采用查询分库分表中间件的方式,中间件模式通过统一的全局数据模型来访问异构的数据库、遗留系统、Web资源等。中间件位于异构数据源系统(数据层)和应用程序(应用层)之间,向下协调各数据源系统,向上为访问集成数据的应用提供统一数据模式和数据访问的通用接口。各数据源的应用仍然完成它们的任务,中间件系统则主要集中为异构数据源提供一个高层次检索服务。中间件模式是比较流行的数据集成方法,它通过在中间层提供一个统一的数据逻辑视图来隐藏底层的数据细节,使得用户可以把集成数据源看为一个统一的整体。这种模型下的关键问题是如何构造这个逻辑视图并使得不同数据源之间能映射到这个中间层。
当分库分表中间件收到一个SQL查询请求时,会先解析这个SQL请求,查找涉及到的表,然后看此表的定义,如果有分片规则,则获取到SQL里分片字段的值,并匹配分片函数,得到该SQL对应的分片列表,然后将SQL发往这些分片的分库去执行,最后收集和处理所有分片返回的结果数据,并输出回中间件,返回给查询采集客户端。
由于中间件资源有限,所有分库数据的查询、计算都会在中间件里进行,业务系统正常的业务运行都依赖分库分表中间件,所以大批量采集数据导致中间件资源占用过大,会影响业务系统的稳定性。同时,采用查询分库分表中间件的方式,由于需要所有分库数据先汇聚到中间件,导致外部数据平台在采集数据只能单线程连接中间件,采集速度受到影响,在采集大批量数据时往往需要耗费非常多时间,导致后续数据分析业务无法按时进行。
发明内容
本发明提供一种数据采集方法、系统、装置、电子设备及存储介质,基于并发访问极大地提高分库分表数据的采集速度,更快为大数据分析平台提供数据。
第一方面,本发明提供一种数据采集方法,用于采集以分库分表存储数据的业务系统数据库中数据,所述方法包括:
接收查询请求;
将所述查询请求分解为分布在若干工作节点的任务,每个所述任务处理一个或者多个分片;所述若干工作节点与业务系统数据库的所有分库连接;
将每个所述任务下发至对应工作节点的内存中执行;
从所述若干工作节点的内存获取查询结果。
更进一步地,所述将所述查询请求分解为分布在若干工作节点的任务,包括:
根据所述查询请求生成执行计划;
将所述执行计划进行分段,以将所述查询请求分解为分布在多个工作节点的任务。
更进一步地,所述将所述执行计划进行分段之前,还包括:
利用预设优化规则对所述执行计划中的表达式进行标准化。
更进一步地,所述接收查询请求之前,还包括:
配置业务系统数据库的分库分表路由规则。
第二方面,本发明提供一种数据采集系统,用于采集以分库分表存储数据的业务系统数据库中数据,所述系统包括:
查询接收模块,用于接收查询请求;
任务分解模块,用于将所述查询请求分解为分布在若干工作节点的任务,每个所述任务处理一个或者多个分片;所述若干工作节点分别与业务系统数据库的所有分库连接;
任务下发模块,用于将多个所述任务下发至对应工作节点的内存中执行;
结果获取模块,用于从所述若干工作节点的内存获取查询结果。
第三方面,本发明提供一种分布式数据采集装置,用于采集以分库分表存储数据的业务系统数据库中数据,包括:
一个管理节点,用于执行如第一方面所述的方法;
若干工作节点,用于并行执行所述管理节点下发的任务。
更进一步地,所述若干工作节点并行执行所述管理节点下发的任务过程中,将从所述业务系统数据库中获取的数据缓存到内存中,每处理预设缓存量的数据时,将处理结果传输到当前任务的下游任务中。
更进一步地,所述若干工作节点并行执行所述管理节点下发的任务时,若存在任务所查询分库分表的分库分表路由规则,则获取该分库分表路由规则,并读取该分库分表路的配置信息。
第四方面,本发明提供一种电子设备,包括存储器和处理器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时实现如第一方面所述的方法。
第五方面,本发明提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被一个或多个处理器执行时,实现如第一方面所述的方法。
本发明提供的数据采集方法,通过分布式内存计算方式,实现并发请求查询所需的所有业务数据库分库,将大批量数据采集的查询压力分摊到所有分库中,能有效解决单点访问分库分表中间件的导致资源消耗过大的问题。同时基于并发访问也极大的提高了分库分表数据的采集速度,更快为大数据分析平台提供数据,更早的获取数据分析结果。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是现有技术中纵向分表的示意图;
图2是现有技术中横向分表的示意图;
图3是本发明实施例一提供的数据采集方法的应用环境示意图;
图4是本发明实施例一提供的一种数据采集方法流程图;
图5是本发明实施例一提供的另一种数据采集方法流程图;
图6是本发明实施例一提供的另一种数据采集方法流程图;
图7是本发明实施例一提供的分库分表路由流程图;
图8是本发明实施例二提供的一种数据采集系统框图;
图9是本发明实施例三提供的一种分布式数据采集装置示意图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种数据采集方法、系统、装置、电子设备及存储介质,实现一种高效的分库分表方式存储数据的采集方式,通过分布式内存计算方式,实现并发请求查询所需的所有业务数据库分库,将大批量数据采集的查询压力分摊到所有分库中,能有效解决单点访问分库分表中间件的导致资源消耗过大的问题。同时基于并发访问也极大的提高了分库分表数据的采集速度,更快为大数据分析平台提供数据,更早的获取数据分析结果。本发明可应用于IT软件行业,实现分布式采集海量分库分表方式存储的业务数据库表。
实施例一
本实施例提供一种数据采集方法,用于采集以分库分表存储数据的业务系统数据库(例如业务系统数据库可以是关系型数据库)中数据,不通过中间件的方式,分布式并发直连业务系统数据库的所有分库,进行分库分表存储的数据采集,避免中间件模式采集速度慢、大批量数据采集导致业务系统不稳定的问题。如图3所示,本实施例的数据采集方法的应用环境可以是一种分布式数据采集装置(例如分库分表采集组件集群),其中包括一个管理节点和若干工作节点,本实施例提供的数据采集方法可以在其中的管理节点中实现,分配多少个工作节点决定了读取数据的并发数,本实施例中的工作节点至少一个,如图4所示,该方法包括:
步骤S100、接收查询请求。
具体地,查询请求可以是用户通过客户端递交至管理节点的,查询请求中可以包含查询语句,查询语句可以是关系型数据库支持的SQL(结构化查询语言,StructuredQuery Language)语句,不同SQL语句的类型可以生成不同的执行计划。
步骤S200、将查询请求分解为分布在若干工作节点的任务,每个任务处理一个或者多个分片。
具体地,每个分片可以涉及多个分库分表。若干工作节点与业务系统数据库的所有分库连接。作为一种优选,本实施例提供了另一种数据采集方法的流程图,如图5所示,步骤S200将查询请求分解为分布在若干工作节点的任务,可以进一步包括:
步骤S201、根据查询请求生成执行计划。
具体地,在查询采集分库分表的数据时,根据数据库支持的SQL(结构化查询语言,Structured Query Language)语句生成执行计划,根据SQL语句的类型可以生成不同的执行计划,上述执行计划可以是一种逻辑执行计划,可以经过对用户的查询请求进行语法分析、语义优化生成执行计划,其中的语法分析可以通过遍历抽象的逻辑语法树,将逻辑语法树转换为由语法操作组成的节点树,在聚合过程的节点中间查询交换节点实现。
作为优选,还可以进一步通过预设优化规则(例如已经注册的执行计划优化器)对生成的执行计划进行标准化,具体来说,预设优化规则可以包括但不限于:
(1)将执行计划中涉及的表达式进行标准化,例如将Is Not Null改写为Not(IsNull)、将If语句改写为Case When语句、优化处理时间函数等。
(2)将执行计划中涉及的表达式进行简化和优化处理,去除执行计划中无意义的映射,例如,对不带表达式的列直接做相等映射,不再将其映射为新的列名,而是将该列直接映射到上层节点中。
(3)扁平化Union(All)语句的执行计划树,合并能够合并的Union节点,减少执行计划树的层数。
步骤S202、将执行计划进行分段,以将查询请求分解为分布在若干工作节点的任务。
具体来说,当工作节点接入分库分表时,分库分表的数量可能很大,一次性获取和传输所有分库分表数据,可能对数据库服务器或者网络带宽造成很大压力,从而影响线上环境的稳定,因此将步骤S201得到的执行计划(或标准化后的执行计划)进行分段,得到若干个任务,每个任务处理一个或者多个分片;每个分片又可以涉及多个分库分表,这些任务可以在若干个工作节点中分布式并行执行,将原本由传统中间件完成的大批量数据集中采集的任务,分布到各个工作节点的内存中分布式完成,有效提高了查询效率,避免中间件模式采集速度慢、大批量数据采集导致业务系统不稳定的问题。
步骤S300、将每个任务下发至对应工作节点的内存中执行。
具体地,管理节点基于任务与工作节点之间的对应关系,对工作节点进行调度,本实施例的方法中所有的查询和计算均在内存中执行,每一次查询都被分解为多个分布在各个工作节点的任务,每个任务都会与其上下游分段的任务在数据流上存在前后依赖的关系,每个任务又可以被进一步细化为多个采集进程,每个采集进程;又可以由一系列具有前后关系的操作组成,每种操作代表作用于一个分片上的一种操作。每当查询采集启动的时候,就会在每个工作节点上启动相应的任务,每个任务都会处理一个或者多个分片,并且每处理一个预设缓存量大小的数据量时,就会将处理结果传输到下游步骤的任务中,这样可以保证数据实时动态地传输。
步骤S400、从若干工作节点的内存获取查询结果。
具体地,管理节点从分布式的若干工作节点内存中的任务获得最终的查询采集结果,返回给发送查询请求的客户端,也可以发送至大数据分析平台,为大数据分析平台提供数据,进而获取数据分析结果。
工作节点接入分库分表时,若一次性获取和传输所有分库分表数据可能对数据库服务器或者网络带宽造成很大压力,从而影响线上环境的稳定,而通过配置分库分表路由规则,分批次读取分库分表的数据分片,依次轮询读取所有数据分片,能有效减轻数据库负载和网络压力。因此,作为另一种优选方式,本实施例还提供另一种数据采集方法的流程图,如图6所示,步骤S100接收查询请求之前,还可以包括:
步骤S500、配置业务系统数据库的分库分表路由规则,分库分表路由规则所配置的信息包括但不限于:每个分表的IP、端口、数据库、分表表名。
在管理节点调度工作节点从业务系统数据库的分库中读取数据时,首先判断是否针对当前查询请求涉及的分表预先配置了分库分表路由规则,若是,则直接获取配置的分库分表路由规则信息,同时还需要读取分库分表配置信息,在各工作节点按照任务进行查询处理时,将当前查询请求涉及的分表的连接信息传入对应工作节点中,连接信息包括但不限于连接地址、用户名、密码。
工作节点从发送连接请求到数据库读取数据都是分布式内存计算处理,根据分库分表路由规则来组织获取数据的SQL语句,每次读取一条数据都需要判断是否还有下一条数据。为了确保若干工作节点的并发执行速度,分片读取的数据将缓存到分布式工作节点的内存中,优选地,采用的缓存策略可以是开源的Guava Cache库,数据缓存的本质是用空间换时间,同时可以减少访问数据库的频率,降低数据库服务器的压力。数据缓存支持查询条件相对固定的SQL语句,并需要有足够的内存来容纳需要缓存的数据。分布式并发采集分库分表功能主要按照分库分表路由规则进行分库分表路由实现,可根据分库分表路由规则信息分批次读取分片数据,依次轮询读取所有分片从而减轻数据库负载和网络压力,分库分表路由流程如图7所示,在管理节点生成执行计划后,将查询请求分解为分布在若干工作节点的任务,每个任务处理一个或者多个分片,各工作节点开始执行任务,进行数据查询采集,采集分片规则,接入相应的分库分表(例如图7中的表TableA_01、TableA_02、TableA_03),进行分布式内存计算。
本实施例中,由于采用分布式和内存计算的架构,可极大提高分库分表方式存储的数据采集效率,提升数据采集速度,不受限于中间级单点瓶颈,并通过直连所有分库分担压力的方式确保业务系统稳定运行,提升了大批量数据采集对业务系统的稳定性。
实施例二
与实施例一对应地,本实施例提供一种数据采集系统,用于采集以分库分表存储数据的业务系统数据库中数据,如图8所示,该系统包括:
查询接收模块100,用于接收查询请求;
任务分解模块200,用于将查询请求分解为分布在若干工作节点的任务,每个任务处理一个或者多个分片;若干工作节点分别与业务系统数据库的所有分库连接;
任务下发模块300,用于将多个任务下发至对应工作节点的内存中执行;
结果获取模块400,用于从若干工作节点的内存获取查询结果。
可以理解的是,查询接收模块100可以用于执行实施例一中的步骤S100,任务分解模块200可以用于执行实施例一中的步骤S200,任务下发模块300可以用于执行实施例一中的步骤S300,结果获取模块400可以用于执行实施例一中的步骤S400,各步骤的具体方案可以参考前述实施例一中的相应内容,在此不再赘述。
显然,本领域技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或者步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
实施例三
本实施例提供一种分布式数据采集装置,用于采集以分库分表存储数据的业务系统数据库中数据,如图9所示,该装置包括:
一个管理节点,用于执行实施例一的数据采集方法;
若干工作节点,用于并行执行管理节点下发的任务;工作节点至少有一个,若干工作节点与业务系统数据库的所有分库直接连接。多个工作节点直连分库的方式,减轻了对业务系统日常业务依赖的中间件的压力,可更稳定对大批量数据进行采集,且对业务系统负载没有太大影响。
分布式数据采集装置的工作流程如下:
管理节点接收查询请求,将查询请求分解为分布在若干工作节点的任务,每个任务处理一个或者多个分片(根据预设的分片规则,一个分片可能涉及一个或多个分库分表),将每个任务下发至对应工作节点的内存中执行,若干工作节点分布式并行从业务系统数据库采集查询数据并缓存到内存中,管理节点从若干工作节点的内存获取查询结果传输至客户端或者后续大数据分析平台做进一步处理。
具体地,每次查询采集启动时,会在每个工作节点上启动相应的任务,每个任务都会处理一个或者多个分片,若干工作节点并行执行管理节点下发的任务过程中,将从业务系统数据库中获取的数据缓存到内存中,每处理预设缓存量的数据时,将当前处理结果传输到当前任务的下游任务中,这样可以保证数据实时动态地传输。通过并发数据采集及内存缓存等方式,比传统中间件模式采集方案具有更高的采集速度。
若干工作节点并行执行管理节点下发的任务时,若存在任务所查询分库分表的分库分表路由规则,则获取该分库分表路由规则,并读取该分库分表路的配置信息,并在各工作节点按照任务进行查询处理时,将当前查询请求涉及的分表的连接信息传入对应工作节点中,连接信息包括但不限于连接地址、用户名、密码。
实施例一的数据采集方法的具体方案可以参考前述实施例一中的相应内容,在此不再赘述。
实施例四
本实施例提供一种电子设备,包括存储器和处理器,该存储器上存储有计算机程序,该计算机程序被所述处理器执行时实现实施例一的数据采集方法。
本实施例中,处理器可以是专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、数字信号处理器(Digital Signal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(ProgrammableLogic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述实施例一的数据采集方法。实施例一的数据采集方法的具体方案可以参考前述实施例一中的相应内容,在此不再赘述。
存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
实施例五
本实施例提供一种存储介质,该存储介质上存储有计算机程序,该计算机程序被一个或多个处理器执行时,实现实施例一的数据采集方法。实施例一的数据采集方法的具体方案可以参考前述实施例一中的相应内容,在此不再赘述。
本实施例中,存储介质可以是闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器等等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种数据采集方法,其特征在于,用于采集以分库分表存储数据的业务系统数据库中数据,所述方法包括:
接收查询请求;
将所述查询请求分解为分布在若干工作节点的任务,每个所述任务处理一个或者多个分片;所述若干工作节点与业务系统数据库的所有分库连接;
将每个所述任务下发至对应工作节点的内存中执行;
从所述若干工作节点的内存获取查询结果。
2.根据权利要求1所述的数据采集方法,其特征在于,所述将所述查询请求分解为分布在若干工作节点的任务,包括:
根据所述查询请求生成执行计划;
将所述执行计划进行分段,以将所述查询请求分解为分布在多个工作节点的任务。
3.根据权利要求2所述的数据采集方法,其特征在于,所述将所述执行计划进行分段之前,还包括:
利用预设优化规则对所述执行计划中的表达式进行标准化。
4.根据权利要求1所述的数据采集方法,其特征在于,所述接收查询请求之前,还包括:
配置业务系统数据库的分库分表路由规则。
5.一种数据采集系统,其特征在于,用于采集以分库分表存储数据的业务系统数据库中数据,所述系统包括:
查询接收模块,用于接收查询请求;
任务分解模块,用于将所述查询请求分解为分布在若干工作节点的任务,每个所述任务处理一个或者多个分片;所述若干工作节点分别与业务系统数据库的所有分库连接;
任务下发模块,用于将多个所述任务下发至对应工作节点的内存中执行;
结果获取模块,用于从所述若干工作节点的内存获取查询结果。
6.一种分布式数据采集装置,其特征在于,用于采集以分库分表存储数据的业务系统数据库中数据,包括:
一个管理节点,用于执行如权利要求1至4中任一项所述的方法;
若干工作节点,用于并行执行所述管理节点下发的任务。
7.根据权利要求6所述的数据采集装置,其特征在于,所述若干工作节点并行执行所述管理节点下发的任务过程中,将从所述业务系统数据库中获取的数据缓存到内存中,每处理预设缓存量的数据时,将处理结果传输到当前任务的下游任务中。
8.根据权利要求6所述的数据采集装置,其特征在于,所述若干工作节点并行执行所述管理节点下发的任务时,若存在任务所查询分库分表的分库分表路由规则,则获取该分库分表路由规则,并读取该分库分表路的配置信息。
9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至4中任一项所述的方法。
10.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被一个或多个处理器执行时,实现如权利要求1至4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010093384.1A CN111382156A (zh) | 2020-02-14 | 2020-02-14 | 一种数据采集方法、系统、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010093384.1A CN111382156A (zh) | 2020-02-14 | 2020-02-14 | 一种数据采集方法、系统、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111382156A true CN111382156A (zh) | 2020-07-07 |
Family
ID=71218535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010093384.1A Pending CN111382156A (zh) | 2020-02-14 | 2020-02-14 | 一种数据采集方法、系统、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111382156A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112231501A (zh) * | 2020-10-20 | 2021-01-15 | 浙江大华技术股份有限公司 | 人像库的数据存储、检索方法及装置、存储介质 |
CN112347076A (zh) * | 2020-11-05 | 2021-02-09 | 中国平安人寿保险股份有限公司 | 分布式数据库的数据存储方法、装置和计算机设备 |
CN112632129A (zh) * | 2020-12-31 | 2021-04-09 | 联想未来通信科技(重庆)有限公司 | 一种码流数据管理方法、装置及存储介质 |
CN112632066A (zh) * | 2020-12-18 | 2021-04-09 | 平安普惠企业管理有限公司 | 自动分表数据存取方法、装置、电子设备及存储介质 |
CN114637736A (zh) * | 2022-03-09 | 2022-06-17 | 北京金堤科技有限公司 | 一种数据库拆分方法和装置 |
CN115114020A (zh) * | 2022-05-31 | 2022-09-27 | 马上消费金融股份有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN116450657A (zh) * | 2023-06-19 | 2023-07-18 | 北京好心情互联网医院有限公司 | 数据分片调度方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105279286A (zh) * | 2015-11-27 | 2016-01-27 | 陕西艾特信息化工程咨询有限责任公司 | 一种交互式大数据分析查询处理方法 |
CN105824957A (zh) * | 2016-03-30 | 2016-08-03 | 电子科技大学 | 分布式内存列式数据库的查询引擎系统及查询方法 |
CN109933631A (zh) * | 2019-03-20 | 2019-06-25 | 江苏瑞中数据股份有限公司 | 基于Infiniband网络的分布式并行数据库系统及数据处理方法 |
CN110046178A (zh) * | 2018-01-17 | 2019-07-23 | 北京京东尚科信息技术有限公司 | 分布式数据查询的方法和装置 |
-
2020
- 2020-02-14 CN CN202010093384.1A patent/CN111382156A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105279286A (zh) * | 2015-11-27 | 2016-01-27 | 陕西艾特信息化工程咨询有限责任公司 | 一种交互式大数据分析查询处理方法 |
CN105824957A (zh) * | 2016-03-30 | 2016-08-03 | 电子科技大学 | 分布式内存列式数据库的查询引擎系统及查询方法 |
CN110046178A (zh) * | 2018-01-17 | 2019-07-23 | 北京京东尚科信息技术有限公司 | 分布式数据查询的方法和装置 |
CN109933631A (zh) * | 2019-03-20 | 2019-06-25 | 江苏瑞中数据股份有限公司 | 基于Infiniband网络的分布式并行数据库系统及数据处理方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112231501A (zh) * | 2020-10-20 | 2021-01-15 | 浙江大华技术股份有限公司 | 人像库的数据存储、检索方法及装置、存储介质 |
CN112347076A (zh) * | 2020-11-05 | 2021-02-09 | 中国平安人寿保险股份有限公司 | 分布式数据库的数据存储方法、装置和计算机设备 |
CN112347076B (zh) * | 2020-11-05 | 2023-11-14 | 中国平安人寿保险股份有限公司 | 分布式数据库的数据存储方法、装置和计算机设备 |
CN112632066A (zh) * | 2020-12-18 | 2021-04-09 | 平安普惠企业管理有限公司 | 自动分表数据存取方法、装置、电子设备及存储介质 |
CN112632066B (zh) * | 2020-12-18 | 2023-08-25 | 湖北华中电力科技开发有限责任公司 | 自动分表数据存取方法、装置、电子设备及存储介质 |
CN112632129A (zh) * | 2020-12-31 | 2021-04-09 | 联想未来通信科技(重庆)有限公司 | 一种码流数据管理方法、装置及存储介质 |
CN112632129B (zh) * | 2020-12-31 | 2023-11-21 | 联想未来通信科技(重庆)有限公司 | 一种码流数据管理方法、装置及存储介质 |
CN114637736A (zh) * | 2022-03-09 | 2022-06-17 | 北京金堤科技有限公司 | 一种数据库拆分方法和装置 |
CN115114020A (zh) * | 2022-05-31 | 2022-09-27 | 马上消费金融股份有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN116450657A (zh) * | 2023-06-19 | 2023-07-18 | 北京好心情互联网医院有限公司 | 数据分片调度方法、装置、设备及存储介质 |
CN116450657B (zh) * | 2023-06-19 | 2023-08-29 | 北京好心情互联网医院有限公司 | 数据分片调度方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111382156A (zh) | 一种数据采集方法、系统、装置、电子设备及存储介质 | |
US9177025B2 (en) | Hash-join in parallel computation environments | |
CN104850572B (zh) | HBase非主键索引构建与查询方法及其系统 | |
CN101727465B (zh) | 分布式列存储数据库索引建立、查询方法及装置与系统 | |
US9298774B2 (en) | Changing the compression level of query plans | |
US20190303479A1 (en) | Distinct value estimation for query planning | |
US8812489B2 (en) | Swapping expected and candidate affinities in a query plan cache | |
CN101916280A (zh) | 并行计算系统及按查询内容进行负载均衡的方法 | |
CN101963999A (zh) | 音乐分类搜索引擎系统及音乐分类搜索方法 | |
EP2469423A1 (en) | Aggregation in parallel computation environments with shared memory | |
US11461327B1 (en) | Query plan caching for networked database systems | |
CN113901078A (zh) | 业务订单关联查询方法、装置、设备及存储介质 | |
US10747773B2 (en) | Database management system, computer, and database management method | |
CN109117426B (zh) | 分布式数据库查询方法、装置、设备及存储介质 | |
CN111400301A (zh) | 一种数据查询方法、装置及设备 | |
US20230134030A1 (en) | Time series data injection method, time series data query method, and database system | |
Suganya et al. | Efficient fragmentation and allocation in distributed databases | |
CN106776810A (zh) | 一种大数据的数据处理系统及方法 | |
CN115982230A (zh) | 数据库的跨数据源查询方法、系统、设备及存储介质 | |
US11947490B2 (en) | Index generation and use with indeterminate ingestion patterns | |
CN111309704A (zh) | 数据库操作方法和数据库操作系统 | |
US11995080B1 (en) | Runtime join pruning to improve join performance for database tables | |
CN115757470A (zh) | 元数据访问方法、装置、电子设备及存储介质 | |
CN115248829A (zh) | 数据存储方法、数据查询方法及装置 | |
CN117009302A (zh) | 一种基于s3云存储的数据库缓存优化方法 |
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 |