CN111475584B - 数据处理方法、***以及装置 - Google Patents
数据处理方法、***以及装置 Download PDFInfo
- Publication number
- CN111475584B CN111475584B CN202010568789.6A CN202010568789A CN111475584B CN 111475584 B CN111475584 B CN 111475584B CN 202010568789 A CN202010568789 A CN 202010568789A CN 111475584 B CN111475584 B CN 111475584B
- Authority
- CN
- China
- Prior art keywords
- data processing
- read
- node
- type
- structured 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 35
- 238000012545 processing Methods 0.000 claims abstract description 616
- 238000005192 partition Methods 0.000 claims description 55
- 238000004458 analytical method Methods 0.000 claims description 29
- 230000002776 aggregation Effects 0.000 claims description 21
- 238000004220 aggregation Methods 0.000 claims description 21
- 238000000034 method Methods 0.000 claims description 18
- 238000013507 mapping Methods 0.000 claims description 9
- 238000002955 isolation Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 230000006872 improvement Effects 0.000 description 4
- 230000035945 sensitivity Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/242—Query formulation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书实施例提供数据处理方法、***以及装置,其中所述数据处理方法包括:接收数据处理指令,所述数据处理指令中包含至少一条结构化查询语句,根据所述结构化查询语句的执行代价,确定所述数据处理指令对应的数据处理类型,将所述结构化查询语句发送至与所述数据处理类型匹配的数据处理节点,以使所述数据处理节点基于所述结构化查询语句进行数据处理,获取所述数据处理节点返回的数据处理结果并发送至用户。
Description
技术领域
本说明书实施例涉及分布式数据库技术领域,特别涉及一种数据处理方法。本说明书一个或者多个实施例同时涉及一种数据处理***、一种数据处理装置,一种计算设备,以及一种计算机可读存储介质。
背景技术
随着传统的数据库技术日趋成熟、计算机网络技术的飞速发展和应用范围的扩大,以分布式为主要特征的数据库***的研究与开发受到越来越多用户的注意。分布式数据库是数据库技术与网络技术相结合的产物,在数据库领域已形成一个分支。而且分布式数据库***逐渐进入商品化应用阶段,传统的关系数据库产品均发展成以计算机网络及多任务操作***为核心的分布式数据库产品,同时分布式数据库逐步向客户机/服务器模式发展。
分布式数据库可以使用由多个独立节点组成、节点间采用网络互联的计算机集群实现数据库的分布式存储、计算等功能。对于分布式数据库来说,能够为不同类型的负载提供稳定可靠的资源隔离环境非常重要,因此,亟需一种数据处理方法以解决此类问题。
发明内容
有鉴于此,本说明书施例提供了一种数据处理方法。本说明书一个或者多个实施例同时涉及一种数据处理***、一种数据处理装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种数据处理方法,包括:
接收数据处理指令,所述数据处理指令中包含至少一条结构化查询语句;
根据所述结构化查询语句的执行代价,确定所述数据处理指令对应的数据处理类型;
将所述结构化查询语句发送至与所述数据处理类型匹配的数据处理节点,以使所述数据处理节点基于所述结构化查询语句进行数据处理;
获取所述数据处理节点返回的数据处理结果并发送至用户。
可选地,所述根据所述结构化查询语句的执行代价,确定所述数据处理指令对应的数据处理类型,包括:
对所述至少一条结构化查询语句进行解析,获得与所述至少一条结构化查询语句对应的解析结果,所述解析结果中包含待处理数据所属数据表的标识信息以及所述待处理数据的操作类型;
根据所述操作类型对执行所述至少一条结构化查询语句的资源消耗值进行预估,获得执行代价;
根据所述执行代价与预设阈值的大小关系确定所述数据处理类型。
可选地,所述将所述结构化查询语句发送至与所述数据处理类型匹配的数据处理节点,以使所述数据处理节点基于所述结构化查询语句进行数据处理,包括:
将所述结构化查询语句发送至与所述数据处理类型匹配的数据处理节点;
所述数据处理节点根据所述待处理数据所属数据表的标识信息查询分布式数据库中所述数据表的分区表信息;所述分区表信息包含至少一个分区表的存储位置信息;
根据所述存储位置信息,确定所述数据处理节点下的包含所述分区表的至少一个目标处理节点;
基于所述操作类型,按照预设任务格式生成数据处理任务,并下发至对应的所述至少一个目标处理节点。
可选地,若所述执行代价小于等于所述预设阈值,则所述数据处理类型为第一类型;
相应的,所述将所述结构化查询语句发送至与所述数据处理类型匹配的数据处理节点,以使所述数据处理节点基于所述结构化查询语句进行数据处理,包括:
基于所述第一类型启动第一任务链路中的读写计算节点,根据所述结构化查询语句生成数据处理任务;
基于所述数据处理任务触发所述第一任务链路的读写存储节点,以使所述读写存储节点执行所述数据处理任务。
可选地,所述基于所述第一类型启动第一任务链路中的读写计算节点,根据所述结构化查询语句生成数据处理任务,包括:
基于所述第一类型启动第一任务链路中的读写计算节点,所述读写计算节点根据所述待处理数据所属数据表的标识信息查询分布式数据库中所述数据表的分区表信息;所述分区表信息包含至少一个分区表的存储位置信息;
根据所述存储位置信息,确定所述读写计算节点下的包含所述分区表的至少一个读写存储节点;
基于所述操作类型,按照预设任务格式生成与所述至少一个读写存储节点对应的数据处理任务。
可选地,若所述执行代价大于所述预设阈值,则所述数据处理类型为第二类型;
相应的,所述将所述结构化查询语句发送至与所述数据处理类型匹配的数据处理节点,以使所述数据处理节点基于所述结构化查询语句进行数据处理,包括:
基于所述第二类型启动第二任务链路中的只读计算节点,根据所述结构化查询语句生成数据处理任务;
基于所述数据处理任务触发第二任务链路的只读存储节点,以使所述只读存储节点执行所述数据处理任务。
可选地,所述根据所述结构化查询语句的执行代价,确定所述数据处理指令对应的数据处理类型步骤执行之后,所述获取所述数据处理节点返回的数据处理结果并发送至用户之前,包括:
获取分布式数据库中读写存储节点的日志位点信息,并将所述日志位点信息发送至所述只读计算节点。
可选地,所述基于所述数据处理任务触发第二任务链路的只读存储节点,以使所述只读存储节点执行所述数据处理任务,包括:
基于所述数据处理任务触发所述第二任务链路的只读存储节点,以使所述只读存储节点判断所述只读存储节点中的日志位点是否大于或等于所述读写存储节点中的日志位点;
若是,则所述数据存储节点执行所述数据处理任务。
可选地,所述获取所述数据处理节点返回的数据处理结果并发送至用户,包括:
获取所述至少一个数据处理节点返回的至少一个数据处理结果;
对所述至少一个数据处理结果进行聚合处理,并将聚合处理结果发送至所述用户。
可选地,所述数据处理类型包括:联机事物处理类型和/或联机分析处理类型。
根据本说明书实施例的第二方面,提供了一种数据处理***,包括:
读写计算节点、只读计算节点、读写存储节点、只读存储节点;
所述读写计算节点,被配置为接收数据处理指令,根据所述结构化查询语句的执行代价,确定所述数据处理指令对应的数据处理类型;若所述数据处理类型为联机事务处理类型,则将所述结构化查询语句发送至所述读写存储节点;若所述数据处理类型为联机分析处理类型,则将所述结构化查询语句发送至所述只读计算节点;
所述读写存储节点,被配置为执行所述结构化查询语句,并将数据处理结果返回;
所述只读计算节点,被配置为接收所述结构化查询语句,并将所述结构化查询语句下发至所述只读存储节点;
所述只读存储节点,被配置为执行所述结构化查询语句,并将执行结果返回。
可选地,所述读写计算节点,还被配置为获取所述读写存储节点的日志位点信息,并将所述日志位点信息发送至所述只读计算节点;
所述只读计算节点,被配置为接收并将所述日志位点信息发送至所述只读存储节点;
所述只读存储节点,被配置为接收所述日志位点信息,判断所述只读存储节点中的日志位点是否大于或等于所述读写存储节点中的日志位点;若是,则执行所述结构化查询语句。
可选地,所述读写计算节点,还被配置为:
获取所述读写存储节点返回的至少一个数据处理结果;
对所述至少一个数据处理结果进行聚合处理,并将聚合处理结果发送至用户。
根据本说明书实施例的第三方面,提供了一种数据处理装置,包括:
接收模块,被配置为接收数据处理指令,所述数据处理指令中包含至少一条结构化查询语句;
确定模块,被配置为根据所述结构化查询语句的执行代价,确定所述数据处理指令对应的数据处理类型;
发送模块,被配置为将所述结构化查询语句发送至与所述数据处理类型匹配的数据处理节点,以使所述数据处理节点基于所述结构化查询语句进行数据处理;
获取模块,被配置为获取所述数据处理节点返回的数据处理结果并发送至用户。
根据本说明书实施例的第四方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
接收数据处理指令,所述数据处理指令中包含至少一条结构化查询语句;
根据所述结构化查询语句的执行代价,确定所述数据处理指令对应的数据处理类型;
将所述结构化查询语句发送至与所述数据处理类型匹配的数据处理节点,以使所述数据处理节点基于所述结构化查询语句进行数据处理;
获取所述数据处理节点返回的数据处理结果并发送至用户。
根据本说明书实施例的第五方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现所述数据处理方法的步骤。
本说明书一个实施例通过接收用户发送的数据处理指令,所述数据处理指令中包含至少一条结构化查询语句,根据所述结构化查询语句的执行代价,确定所述数据处理指令对应的数据处理类型,将所述结构化查询语句发送至与所述数据处理类型匹配的数据处理节点,以使所述数据处理节点基于所述结构化查询语句进行数据处理,获取所述数据处理节点返回的数据处理结果并发送至用户;
实现了对数据处理指令对应的数据处理类型进行识别确定,并将数据处理指令中的结构化查询语句发送至与所述数据处理类型匹配的数据处理节点进行数据处理,以响应所述数据处理指令,将不同类型的结构化查询语句发送至不同的处理节点,通过不同处理节点执行不同的数据处理任务,以实现不同类型负载的隔离,有利于提升分布式数据库的资源利用率以及分布式数据库的稳定性。
附图说明
图1是本说明书一个实施例提供的一种数据处理方法的处理流程图;
图2是本说明书一个实施例提供的一种分布式数据库中各个节点间的交互示意图;
图3是本说明书一个实施例提供的一种数据处理方法的处理过程流程图;
图4是本说明书一个实施例提供的一种数据处理***的示意图;
图5是本说明书一个实施例提供的一种数据处理装置的示意图;
图6是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
SQL:结构化查询语言(Structured Query Language),简称SQL,是一种特殊目的的编程语言,是一种数据库查询的程序设计语言,用于存取数据以及查询、更新和管理关系数据库***。
负载:分布式数据库中的负载主要分为联机事务处理类型负载和联机分析处理类型负载。
联机事务处理类型负载:OLTP(Online Transaction Processing)负载,主要包含如涉及少范围数据的增删改查等SQL。
联机分析处理类型负载:OLAP(Online Analytical Processing)负载,主要包含如涉及大范围数据的复杂查询分析型SQL。
HTAP(Hybrid transactional/analytical processing)混合负载:联机事务处理类型负载和联机分析处理类型负载同时共存的负载。
读写计算节点:可以进行读操作和写操作的节点。
只读计算节点:只能进行读操作的节点。
在本说明书中,提供了一种数据处理方法,本说明书同时涉及一种数据处理***、一种数据处理装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本说明书一个实施例提供的一种数据处理方法的处理流程图,包括步骤102至步骤108。
步骤102,接收数据处理指令,所述数据处理指令中包含至少一条结构化查询语句。
随着传统的数据库技术日趋成熟、计算机网络技术的飞速发展和应用范围的扩大,以分布式为主要特征的数据库***的研究与开发受到越来越多用户的注意。
分布式数据库可以使用由多个独立节点组成、节点间采用网络互联的计算机集群实现数据库的分布式存储、计算等功能。对于分布式数据库来说,能够为不同类型的负载提供稳定可靠的资源隔离环境非常重要,因此,亟需一种数据处理方法以解决此类问题。
基于此,本说明书实施例提供的一种数据处理方法,通过接收用户发送的数据处理指令,所述数据处理指令中包含至少一条结构化查询语句,根据所述结构化查询语句的执行代价,确定所述数据处理指令对应的数据处理类型,将所述结构化查询语句发送至与所述数据处理类型匹配的数据处理节点,以使所述数据处理节点基于所述结构化查询语句进行数据处理,获取所述数据处理节点返回的数据处理结果并发送至所述用户;
实现了对数据处理指令对应的数据处理类型进行识别确定,并将数据处理指令中的结构化查询语句发送至与所述数据处理类型匹配的数据处理节点进行数据处理,以响应所述数据处理指令,将不同类型的结构化查询语句发送至不同的处理节点,通过不同处理节点执行不同的数据处理任务,以实现不同类型负载的隔离,有利于提升分布式数据库的资源利用率以及分布式数据库的稳定性。
具体的,所述数据处理指令是可用于请求操作分布式数据库中数据的指令。所述数据处理指令可以是分布式数据库的用户所发送的,所述数据处理指令中包含的至少一条结构化查询语句可以是SQL(Structured Query Language)语句。
应理解,在本说明书实施例中,分布式数据库的主节点可用于接收用户发送的数据处理指令,执行结构化查询语句对应的数据操作任务并反馈数据处理结果。
步骤104,根据所述结构化查询语句的执行代价,确定所述数据处理指令对应的数据处理类型。
本说明书实施例中,所述数据处理类型包括:联机事物处理类型(OLTP)和/或联机分析处理类型(OLAP)。
具体的,执行代价即执行结构化查询语句所需消耗的资源量,由于执行不同类型的数据处理指令包含的结构化查询语句所需消耗的资源量不同,即执行代价不同,若不区分数据处理类型,则在执行其中一种类型负载的过程中占用的资源量较大的情况下,其他类型负载的吞吐将持续下降。因此,通过对数据处理指令对应的数据处理类型进行识别确定,并根据识别结果将不同类型的数据处理指令中的至少一条结构化查询语句发送至不同节点执行,以实现不同类型负载的隔离。
实际应用中,在接收到用户发送的数据处理指令后,可通过智能路由根据执行所述数据指令中包含的至少一条结构化查询语句所需消耗的资源量(执行代价)确定所述数据处理指令对应的数据处理类型,需要说明的是,本说明书实施例所述的“路由”是指分布式数据库的数据处理指令的路由,而非一般理解的IP数据包的路由。
具体实施时,还可通过解析所述结构化查询语句中的待处理数据的操作类型,根据操作类型确定执行结构化查询语句的执行代价,并根据执行代价确定数据处理指令对应的数据处理类型,具体可通过以下方式实现:
对所述至少一条结构化查询语句进行解析,获得与所述至少一条结构化查询语句对应的解析结果,所述解析结果中包含待处理数据所属数据表的标识信息以及所述待处理数据的操作类型;
根据所述操作类型对执行所述至少一条结构化查询语句的资源消耗值进行预估,获得执行代价;
根据所述执行代价与预设阈值的大小关系确定所述数据处理类型。
具体的,所述操作类型包括增加、删除、修改、查询或分析等类型,可预先建立操作类型与执行代价的映射关系表,确定待处理数据的操作类型后,可根据预先建立的映射关系表确定与操作类型对应的执行代价,以根据执行代价与预设阈值的大小关系确定数据处理指令对应的数据处理类型。
以所述数据处理指令中包含的一条SQL语句为“select name from t where id=1,update set name='xxx'from t where id=1”为例,所述数据表的标识信息可以为数据库记录中包含的键值对中的“键(key)”。该数据处理指令中包含的其所请求操作的数据对应的关键字为“t”,其所请求操作的数据对应的数据表的表名为“id”;其所请求的操作类型为数据更新,确定操作类型后,可根据映射关系表确定与操作类型对应的执行代价,并根据执行代价与预设阈值的大小关系确定数据处理指令对应的数据处理类型,若执行代价小于等于预设阈值,则确定数据处理指令对应的数据处理类型为OLTP,若执行代价大于预设阈值,则确定数据处理指令对应的数据处理类型为OLAP。
对数据处理指令对应的数据处理类型进行识别确定,并将数据处理指令中的结构化查询语句发送至与所述数据处理类型匹配的数据处理节点进行数据处理,将不同类型的结构化查询语句发送至不同的处理节点,通过不同处理节点执行不同的数据处理任务,以实现不同类型负载的隔离,有利于提升分布式数据库的资源利用率。
步骤106,将所述结构化查询语句发送至与所述数据处理类型匹配的数据处理节点,以使所述数据处理节点基于所述结构化查询语句进行数据处理。
具体的,分布式数据库中的数据表可分为两类,分别为未分区表和分区表,若数据表为未分区表,则所述数据表可以存储在分布式数据库中的某一节点上;若所述数据表为分区表,则所述数据表被拆分为至少两部分(每一部分可以称为一个分区),不同分区一般分别存储于分布式数据库中的不同节点上,因此,在接收到数据处理指令,并确定数据处理类型后,可按照预设任务格式生成数据处理任务并下发至不同的存储有对应分区的节点以进行数据处理。
具体实施时,将所述结构化查询语句发送至与所述数据处理类型匹配的数据处理节点,以使所述数据处理节点基于所述结构化查询语句进行数据处理,具体可通过以下方式实现:
将所述结构化查询语句发送至与所述数据处理类型匹配的数据处理节点;
所述数据处理节点根据所述待处理数据所属数据表的标识信息查询分布式数据库中所述数据表的分区表信息;所述分区表信息包含至少一个分区表的存储位置信息;
根据所述存储位置信息,确定所述数据处理节点下的包含所述分区表的至少一个目标处理节点;
基于所述操作类型,按照预设任务格式生成数据处理任务,并下发至对应的所述至少一个目标处理节点。
具体的,如前所述,本说明书实施例所述的数据处理类型包括联机事物处理类型(OLTP)和/或联机分析处理类型(OLAP),由于不同处理类型的数据处理指令中结构化查询语句的操作类型不同、执行不同结构化语句消耗的资源量不同,并且不同数据处理指令对响应时长的敏感程度不同,因此,可将不同的结构化查询语句发送至不同的目标处理节点执行。
若本说明书实施例中,所述数据处理指令对应的数据处理类型为OLTP,则可将数据处理指令中的结构化查询语句发送至读写存储节点执行,若所述数据处理指令对应的数据处理类型为OLAP,则可将数据处理指令中的结构化查询语句发送只读计算节点执行。
另外,若所述数据表为未分区表,则所述分区表信息中仅包含一个存储位置信息,将数据处理指令中的结构化查询语句发送至数据处理节点(读写计算节点或只读计算节点)后,读写计算节点或只读计算节点根据所述存储位置信息确定所述包含所述数据表的一个目标处理节点(读写存储节点或只读存储节点),并将按照预设任务格式生成的数据处理任务并下发至所述目标处理节点;若所述数据表为分区表,则所述分区表信息包含两个以上分区表的存储位置信息,将数据处理指令中的结构化查询语句发送至读写计算节点或只读计算节点后,读写计算节点或只读计算节点根据所述两个以上存储位置信息确定包含分区表的两个以上目标处理节点(读写存储节点或只读存储节点),并将按照预设任务格式生成的数据处理任务并下发至对应的目标处理节点。
沿用上例,所述数据处理指令中包含的一条SQL语句为“select name from twhere id=1,update set name='xxx'from t where id=1”,所述数据表的标识信息可以为数据库记录中包含的键值对中的“键(key)”。该数据处理指令中包含的其所请求操作的数据对应的关键字为“t”,其所请求操作的数据对应的数据表的表名为“id”;确定数据表的表名后,可根据表名查询分布式数据库中所述数据表的分区表信息,以根据分区表信息确定用于执行数据处理任务的目标处理节点。
将不同类型的结构化查询语句发送至不同的处理节点,通过不同处理节点执行不同的数据处理任务,以实现不同类型负载的隔离,有利于提升分布式数据库的资源利用率。
具体实施时,若所述执行代价小于等于所述预设阈值,则所述数据处理类型为第一类型(OLTP),则将所述结构化查询语句发送至与所述数据处理类型匹配的数据处理节点,以使所述数据处理节点基于所述结构化查询语句进行数据处理,具体可通过以下方式实现:
基于所述第一类型启动第一任务链路中的读写计算节点,根据所述结构化查询语句生成数据处理任务;
基于所述数据处理任务触发第一任务链路的读写存储节点,以使所述读写存储节点执行所述数据处理任务。
进一步的,基于所述第一类型启动第一任务链路中的读写计算节点,根据所述结构化查询语句生成数据处理任务,具体可通过以下方式实现:
基于所述第一类型启动第一任务链路中的读写计算节点,所述读写计算节点根据所述待处理数据所属数据表的标识信息查询分布式数据库中所述数据表的分区表信息;所述分区表信息包含至少一个分区表的存储位置信息;
根据所述存储位置信息,确定所述读写计算节点下的包含所述分区表的至少一个读写存储节点;
基于所述操作类型,按照预设任务格式生成与所述至少一个读写存储节点对应的数据处理任务。
具体的,若所述执行代价小于等于预设阈值,则所述数据处理类型为OLTP,由于OLTP类型的数据处理指令对响应时长较为敏感,因此,可通过第一任务链路执行数据处理任务;
第一任务链路包含读写计算节点、读写存储节点,并且第一任务链路中节点的连接关系为读写计算节点-读写存储节点-读写计算节点,读写计算节点接收结构化查询语句后,按照预设任务格式生成数据处理任务,并将所述任务下发至对应的读写存储节点,由读写存储节点将数据处理结果返回至读写计算节点。
若所述数据表为分区表,则所述分区表信息包含两个以上分区表的存储位置信息,将数据处理指令中的结构化查询语句发送至读写计算节点后,读写计算节点根据所述两个以上存储位置信息确定包含分区表的两个以上读写存储节点,并将按照预设任务格式生成的数据处理任务并下发至对应的读写存储节点(RDS读写节点)。
由于OLTP类型的数据处理指令对指令响应时长的敏感度较高,通过第一任务链路处理所述数据处理指令,有利于缩短所述数据处理指令的响应时长,进而提高数据处理效率。
具体实施时,若所述执行代价大于所述预设阈值,则所述数据处理类型为第二类型(OLAP),则将所述结构化查询语句发送至与所述数据处理类型匹配的数据处理节点,以使所述数据处理节点基于所述结构化查询语句进行数据处理,包括:
基于所述第二类型启动第二任务链路中的只读计算节点,根据所述结构化查询语句生成数据处理任务;
基于所述数据处理任务触发所述第二任务链路的只读存储节点,以使所述只读存储节点执行所述数据处理任务。
具体的,若所述执行代价大于预设阈值,则所述数据处理类型为OLAP,由于相对于OLTP类型而言,OLAP类型的数据处理指令对响应时长的敏感度较低,因此,可通过第二任务链路执行数据处理任务;
第二任务链路包含读写计算节点、读写存储节点、只读计算节点、只读存储节点,并且第二任务链路中节点的连接关系为读写计算节点-读写存储节点-读写计算节点-只读计算节点-只读存储节点-只读计算节点-读写计算节点,读写计算节点接收结构化查询语句后,将所述结构化查询语句发送至只读计算节点,只读计算节点按照预设任务格式生成数据处理任务,并将所述任务下发至对应的只读存储节点,由只读存储节点将数据处理结果返回至只读计算节点,再由只读计算节点将执行结果返回至读写计算节点。
读写计算节点对数据处理指令对应的数据处理类型进行识别确定,并将数据处理指令中的结构化查询语句发送至与所述数据处理类型匹配的数据处理节点进行数据处理,将不同类型的结构化查询语句发送至不同的处理节点,通过不同处理节点执行不同的数据处理任务,以实现不同类型负载的隔离,有利于提升分布式数据库的资源利用率。
具体实施时,由于第二任务链路对应的任务执行路径较长,为保证在只读存储节点上的数据读操作不受数据延迟影响,因此根据所述结构化查询语句的执行代价,确定所述数据处理指令对应的数据处理类型后,获取所述数据处理节点返回的数据处理结果并发送至用户之前,还需通过同步日志以保持分布式数据库中数据的一致性,即获取分布式数据库中读写存储节点的日志位点信息,并将所述日志位点信息发送至所述只读存储节点。
进一步的,基于所述数据处理任务触发所述第二任务链路的只读存储节点,以使所述数据只读存储节点执行所述数据处理任务,具体可通过以下方式实现:
基于所述数据处理任务触发所述第二任务链路的数据只读存储节点,以使所述只读存储节点判断所述只读存储节点中的日志位点是否大于或等于所述读写存储节点中的日志位点;
若是,则由所述只读存储节点执行所述数据处理任务。
具体的,由于第二任务链路的任务执行路径较长,日志同步可能存在延迟,因此需获取分布式数据库中读写存储节点的日志位点信息,并将所述日志位点信息发送至所述只读计算节点,并由只读计算节点将日志位点信息下发至只读存储节点,由只读存储节点判断只读存储节点中的日志位点是否大于或等于所述读写存储节点中的日志位点,在大于或等于的情况下,可保证分布式数据库中数据的一致性,因此,可由只读存储节点执行所述数据处理任务。
将读写计算节点从读写存储子节点获取的日志位点记为N,当读写计算节点向只读计算节点发送SQL语句和日志位点N,并由只读计算节点将SQL语句和日志位点N下发至只读存储节点后,只读存储节点判断当前自身的日志位点M,等待至直到M>=N才执行数据处理任务。
本说明书实施例实现了OLAP负载与OLTP负载的隔离,同时利用日志位点信息,保证分布式数据库中数据的一致性。
步骤108,获取所述数据处理节点返回的数据处理结果并发送至用户。
具体的,在数据处理节点执行数据处理任务并获得数据处理结果后,将数据处理结果返回至用户即可。
具体实施时,若所述数据表为分区表,则所述数据表被拆分为至少两部分(每一部分可以称为一个分区),不同分区一般分别存储于分布式数据库中的不同节点上,因此,在接收到数据处理指令,并确定数据处理类型后,可按照预设任务格式生成数据处理任务并下发至不同的存储有对应分区的节点以进行数据处理,读写计算节点在接收到不同数据处理节点返回的数据处理结果后,需对多个数据处理结果进行聚合处理,并将聚合处理结果发送至所述用户。
具体的,聚合是指对有关的数据进行内容挑选、分析、归类,最后分析得到目标结果,主要是指任何能够从数组产生标量值的数据转换过程,因此,在读写计算节点接收到多个数据处理结果后,对多个数据处理结果进行聚合处理生成目标结果,并将目标结果返回给用户。
将多个数据处理结果进行聚合处理,并向用户返回聚合结果,有利于提升分布式数据库的服务质量。
分布式数据库中包括读写计算节点、只读计算节点、读写存储节点以及只读存储节点,分布式数据库中各个节点间的交互示意图如图2所示。
由图2可知,若用户向读写计算节点提交数据处理指令,并由读写计算节点识别所述数据处理指令对应的数据处理类型为OLTP类型,则由读写计算节点将数据处理指令中包含的SQL语句下发至至少一个读写存储节点,由读写存储节点执行SQL语句,并将数据处理结果返回至读写计算节点,读写计算节点对接收的至少一个数据处理结果进行聚合处理,并将聚合结果返回至用户;
若用户向读写计算节点提交数据处理指令,并由读写计算节点识别所述数据处理指令对应的数据处理类型为OLAP类型,则由读写计算节点从读写存储节点中获取日志位点信息,并将SQL语句和日志位点信息下发至只读计算节点,由只读计算节点将SQL语句和日志位点信息下发至只读存储节点,由只读存储节点判断自身的日志位点是否大于或等于读写存储节点的日志位点,若是,则由只读存储节点执行SQL语句,并将数据处理结果返回至读写计算节点,读写计算节点对接收的至少一个数据处理结果进行聚合处理,并将聚合结果返回至用户。
本说明书一个实施例通过接收用户发送的数据处理指令,所述数据处理指令中包含至少一条结构化查询语句,根据所述结构化查询语句的执行代价,确定所述数据处理指令对应的数据处理类型,将所述结构化查询语句发送至与所述数据处理类型匹配的数据处理节点,以使所述数据处理节点基于所述结构化查询语句进行数据处理,获取所述数据处理节点返回的数据处理结果并发送至所述用户;
实现了对数据处理指令对应的数据处理类型进行识别确定,并将数据处理指令中的结构化查询语句发送至与所述数据处理类型匹配的数据处理节点进行数据处理,以响应所述数据处理指令,将不同类型的结构化查询语句发送至不同的处理节点,通过不同处理节点执行不同的数据处理任务,以实现不同类型负载的隔离,有利于提升分布式数据库的资源利用率以及分布式数据库的稳定性。
下述结合附图3,以本说明书提供的数据处理方法在实际场景的应用为例,对所述数据处理方法进行进一步说明。其中,图3示出了本说明书一个实施例提供的一种数据处理方法的处理过程流程图,具体步骤包括步骤302至步骤330。
步骤302,接收用户发送的数据处理指令,所述数据处理指令中包含至少一条结构化查询语句。
步骤304,对所述至少一条结构化查询语句进行解析,获得与所述至少一条结构化查询语句对应的解析结果,所述解析结果中包含待处理数据所属数据表的标识信息以及所述待处理数据的操作类型。
步骤306,根据所述操作类型对执行所述至少一条结构化查询语句的资源消耗值进行预估,获得执行代价。
步骤308,根据所述执行代价与预设阈值的大小关系确定所述数据处理类型。
若所述数据处理类型为OLTP,则执行步骤310;若所述数据处理类型为OLAP,则执行步骤320。
步骤310,基于第一类型启动第一任务链路中的读写计算节点,根据所述结构化查询语句生成数据处理任务。
步骤312,基于所述第一类型启动第一任务链路中的读写存储节点,所述读写存储节点根据所述待处理数据所属数据表的标识信息查询分布式数据库中所述数据表的分区表信息;所述分区表信息包含至少一个分区表的存储位置信息。
步骤314,根据所述存储位置信息,确定包含所述分区表的至少一个读写存储节点。
步骤316,基于所述操作类型,按照预设任务格式生成与所述至少一个读写存储节点对应的数据处理任务并下发。
步骤318,获取所述至少一个读写存储节点返回的至少一个数据处理结果。
步骤320,获取分布式数据库中读写存储节点的日志位点信息,并将所述日志位点信息发送至只读计算节点。
步骤322基于第二类型启动第二任务链路中的只读计算节点,根据所述结构化查询语句生成数据处理任务。
步骤324,基于所述数据处理任务触发第二任务链路的只读存储节点,以使所述只读存储节点判断所述只读存储节点中的日志位点是否大于或等于所述读写存储节点中的日志位点。
若是,则执行步骤326。
步骤326,触发只读存储节点执行所述数据处理任务。
步骤328,获取所述只读存储节点返回的至少一个数据处理结果。
步骤330,对所述至少一个数据处理结果进行聚合处理,并将聚合处理结果发送至所述用户。
本说明书一个实施例通过对数据处理指令对应的数据处理类型进行识别确定,并将数据处理指令中的结构化查询语句发送至与所述数据处理类型匹配的读写存储节点或只读存储节点进行数据处理,以响应所述数据处理指令,将不同类型的结构化查询语句发送至不同的处理节点,通过不同处理节点执行不同的数据处理任务,以实现不同类型负载的隔离,有利于提升分布式数据库的资源利用率以及分布式数据库的稳定性。
与上述方法实施例相对应,本说明书还提供了数据处理***实施例,图4示出了本说明书一个实施例提供的一种数据处理***的示意图。如图4所示,所述***,包括:
读写计算节点402、读写存储节点404、只读计算节点406、只读存储节点408;
所述读写计算节点402,被配置为接收数据处理指令,根据所述结构化查询语句的执行代价,确定所述数据处理指令对应的数据处理类型;若所述数据处理类型为联机事务处理类型,则将所述结构化查询语句发送至读写存储节点404;若所述数据处理类型为联机分析处理类型,则将所述结构化查询语句发送至所述只读计算节点406;
所述读写存储节点404,被配置为执行所述结构化查询语句,并将数据处理结果返回;
所述只读计算节点406,被配置为接收所述结构化查询语句,并将所述结构化查询语句下发至所述只读存储节点408;
所述只读存储节点408,被配置为执行所述结构化查询语句,并将执行结果返回。
具体的,所述数据处理指令是可用于请求操作分布式数据库中数据的指令。所述数据处理指令可以是分布式数据库的用户所发送的,所述数据处理指令中包含的至少一条结构化查询语句可以是SQL(Structured Query Language)语句。
应理解,在本说明书实施例中,分布式数据库的读写计算节点可用于接收用户发送的数据处理指令,执行结构化查询语句对应的数据操作任务并反馈数据处理结果。
另外,本说明书实施例的数据处理类型包括:联机事物处理类型(OLTP)和/或联机分析处理类型(OLAP)。
由于执行不同类型的数据处理指令包含的结构化查询语句所需消耗的资源量不同,因此,通过对数据处理指令对应的数据处理类型进行识别确定,并根据识别结果将不同类型的数据处理指令中的至少一条结构化查询语句发送至不同节点执行,以实现不同类型负载的隔离。
具体的数据处理指令对应的数据处理类型的确定过程可参照前述方法实施例的具体实现过程,在此不再赘述。
若所述数据处理指令对应的数据处理类型为OLTP,则可将数据处理指令中的结构化查询语句发送至读写存储节点执行,若所述数据处理指令对应的数据处理类型为OLAP,则可将数据处理指令中的结构化查询语句发送只读计算节点执行。
本说明书提供的一个实施例中,所述读写计算节点402,还被配置为获取所述读写存储节点404的日志位点信息,并将所述日志位点信息发送至所述只读计算节点406;
所述只读计算节点406,被配置为接收并将所述日志位点信息发送至所述只读存储节点408;
所述只读存储节点408,被配置为接收所述日志位点信息,判断所述只读存储节点中的日志位点是否大于或等于所述读写存储节点中的日志位点;若是,则执行所述结构化查询语句。
具体的,在数据处理过程中,还需通过同步日志以保持分布式数据库中数据的一致性,即由读写计算节点获取读写存储节点的日志位点信息,并将所述日志位点信息发送至所述只读计算节点,由只读计算节点将日志位点信息下发至只读存储节点,由只读存储节点判断只读存储节点中的日志位点是否大于或等于所述读写存储节点中的日志位点,在大于或等于的情况下,可保证分布式数据库中数据的一致性,因此,可由只读存储节点执行所述结构化查询语句。
本说明书提供的一个实施例中,所述读写计算节点402,还被配置为:
获取所述读写存储节点返回的至少一个数据处理结果;
对所述至少一个数据处理结果进行聚合处理,并将聚合处理结果发送至用户。
具体的,聚合是指对有关的数据进行内容挑选、分析、归类,最后分析得到目标结果,主要是指任何能够从数组产生标量值的数据转换过程,因此,在读写存储节点接收到多个数据处理结果后,对多个数据处理结果进行聚合处理生成目标结果,并将目标结果返回给用户。
本说明书一个实施例中,用户可以利用分布式数据库中的节点来管理多个RDS节点(RDS读写节点和RDS只读节点),用户提交数据处理指令后,由读写计算节点路由决定数据处理指令对应的负载类型,若负载类型为OLTP,则由读写计算节点将所述数据处理指令中的结构化查询语句下发至RDS读写节点执行;若负载类型为OLAP,则由读写计算节点将所述数据处理指令中的结构化查询语句下发至RDS只读节点执行。
本说明书实施例通过读写计算节点对数据处理指令对应的数据处理类型进行识别确定,并将数据处理指令中的结构化查询语句发送至与所述数据处理类型匹配的节点进行数据处理,以响应所述数据处理指令,通过不同节点执行不同的结构化查询语句,以实现不同类型负载的隔离,有利于提升分布式数据库的资源利用率以及分布式数据库的稳定性。
与上述方法实施例相对应,本说明书还提供了数据处理装置实施例,图5示出了本说明书一个实施例提供的一种数据处理装置的示意图。如图5所示,该装置包括:
接收模块502,被配置为接收数据处理指令,所述数据处理指令中包含至少一条结构化查询语句;
确定模块504,被配置为根据所述结构化查询语句的执行代价,确定所述数据处理指令对应的数据处理类型;
发送模块506,被配置为将所述结构化查询语句发送至与所述数据处理类型匹配的数据处理节点,以使所述数据处理节点基于所述结构化查询语句进行数据处理;
获取模块508,被配置为获取所述数据处理节点返回的数据处理结果并发送至用户。
可选地,所述确定模块504,包括:
解析子模块,被配置为对所述至少一条结构化查询语句进行解析,获得与所述至少一条结构化查询语句对应的解析结果,所述解析结果中包含待处理数据所属数据表的标识信息以及所述待处理数据的操作类型;
预估子模块,被配置为根据所述操作类型对执行所述至少一条结构化查询语句的资源消耗值进行预估,获得执行代价;
确定子模块,被配置为根据所述执行代价与预设阈值的大小关系确定所述数据处理类型。
可选地,所述发送模块506,包括:
发送子模块,被配置为将所述结构化查询语句发送至与所述数据处理类型匹配的数据处理节点;
查询子模块,被配置为根据所述待处理数据所属数据表的标识信息查询分布式数据库中所述数据表的分区表信息;所述分区表信息包含至少一个分区表的存储位置信息;
节点确定子模块,被配置为根据所述存储位置信息,确定所述数据处理节点下的包含所述分区表的至少一个目标处理节点;
任务下发子模块,被配置为基于所述操作类型,按照预设任务格式生成数据处理任务,并下发至对应的所述至少一个目标处理节点。
可选地,若所述执行代价小于等于所述预设阈值,则所述数据处理类型为第一类型;
相应的,所述发送模块506,包括:
任务生成子模块,被配置为基于所述第一类型启动第一任务链路中的读写计算节点,根据所述结构化查询语句生成数据处理任务;
触发子模块,被配置为基于所述数据处理任务触发所述第一任务链路的读写存储节点,以使所述读写存储节点执行所述数据处理任务。
可选地,所述任务生成子模块,包括:
启动单元,被配置为基于所述第一类型启动第一任务链路中的读写计算节点,所述读写计算节点根据所述待处理数据所属数据表的标识信息查询分布式数据库中所述数据表的分区表信息;所述分区表信息包含至少一个分区表的存储位置信息;
确定单元,被配置为根据所述存储位置信息,确定所述读写计算节点下的包含所述分区表的至少一个读写存储节点;
生成单元,被配置为基于所述操作类型,按照预设任务格式生成与所述至少一个读写存储节点对应的数据处理任务。
可选地,若所述执行代价大于所述预设阈值,则所述数据处理类型为第二类型;
相应的,所述发送模块506,包括:
启动子模块,被配置为基于所述第二类型启动第二任务链路中的只读计算节点,根据所述结构化查询语句生成数据处理任务;
节点触发子模块,被配置为基于所述数据处理任务触发所述第二任务链路的只读存储节点,以使所述只读存储节点执行所述数据处理任务。
可选地,所述数据处理装置,还包括:
日志位点信息获取模块,被配置为获取分布式数据库中读写存储节点的日志位点信息,并将所述日志位点信息发送至所述只读计算节点。
可选地,所述节点触发子模块,包括:
判断单元,被配置为基于所述数据处理任务触发所述第二任务链路的只读存储节点,以使所述只读存储节点判断所述只读存储节点中的日志位点是否大于或等于所述读写存储节点中的日志位点;
若所述判断单元的运行结果为是,则运行数据处理单元;
所述数据处理单元,被配置为执行所述数据处理任务。
可选地,所述获取模块,包括:
获取子模块,被配置为获取所述至少一个数据处理节点返回的至少一个数据处理结果;
聚合子模块,被配置为对所述至少一个数据处理结果进行聚合处理,并将聚合处理结果发送至所述用户。
可选地,所述数据处理类型包括:联机事物处理类型和/或联机分析处理类型。
上述为本实施例的一种数据处理装置的示意性方案。需要说明的是,该数据处理装置的技术方案与上述的数据处理方法的技术方案属于同一构思,数据处理装置的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
图6示出了根据本说明书一个实施例提供的一种计算设备600的结构框图。该计算设备600的部件包括但不限于存储器610和处理器620。处理器620与存储器610通过总线630相连接,数据库650用于保存数据。
计算设备600还包括接入设备640,接入设备640使得计算设备600能够经由一个或多个网络660通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备640可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备600的上述部件以及图6中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图6所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备600可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备600还可以是移动式或静止式的服务器。
其中,所述存储器610用于存储计算机可执行指令,处理器620用于执行如下计算机可执行指令:
接收数据处理指令,所述数据处理指令中包含至少一条结构化查询语句;
根据所述结构化查询语句的执行代价,确定所述数据处理指令对应的数据处理类型;
将所述结构化查询语句发送至与所述数据处理类型匹配的数据处理节点,以使所述数据处理节点基于所述结构化查询语句进行数据处理;
获取所述数据处理节点返回的数据处理结果并发送至用户。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于实现所述数据处理方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
Claims (15)
1.一种数据处理方法,应用于包括读写节点和只读节点的分布式数据库中,包括:
接收数据处理指令,所述数据处理指令中包含至少一条结构化查询语句;
确定所述结构化查询语句的操作类型,根据预先建立的映射关系表确定与所述操作类型对应的执行代价,根据所述执行代价与预设阈值的大小关系,确定所述数据处理指令对应的数据处理类型,其中,若所述执行代价小于等于所述预设阈值,则所述数据处理类型为联机事务处理类型OLTP,若所述执行代价大于所述预设阈值,则所述数据处理类型为联机分析处理类型OLAP;
将所述结构化查询语句发送至与所述数据处理类型匹配的数据处理节点,若所述数据处理类型为联机事务处理类型OLTP,则发送给读写节点处理,若所述数据处理类型为联机分析处理类型OLAP,则发送给只读节点处理,以使所述对应的数据处理节点基于所述结构化查询语句进行数据处理;
获取所述数据处理节点返回的数据处理结果并发送至用户。
2.根据权利要求1所述的数据处理方法,所述确定所述结构化查询语句的操作类型,根据预先建立的映射关系表确定与所述操作类型对应的执行代价,根据所述执行代价与预设阈值的大小关系,确定所述数据处理指令对应的数据处理类型,包括:
对所述至少一条结构化查询语句进行解析,获得与所述至少一条结构化查询语句对应的解析结果,所述解析结果中包含待处理数据所属数据表的标识信息以及所述待处理数据的操作类型;
根据所述操作类型对执行所述至少一条结构化查询语句的资源消耗值进行预估,获得所述至少一条结构化查询语句的执行代价;
根据所述执行代价与预设阈值的大小关系确定所述数据处理类型。
3.根据权利要求1所述的数据处理方法,所述将所述结构化查询语句发送至与所述数据处理类型匹配的数据处理节点,包括:
将所述结构化查询语句发送至与所述数据处理类型匹配的数据处理节点;
所述数据处理节点根据待处理数据所属数据表的标识信息查询分布式数据库中所述数据表的分区表信息;所述分区表信息包含至少一个分区表的存储位置信息;
根据所述存储位置信息,确定所述数据处理节点下的包含所述分区表的至少一个目标处理节点;
基于所述操作类型,按照预设任务格式生成数据处理任务,并下发至对应的所述至少一个目标处理节点。
4.根据权利要求1所述的数据处理方法,若所述数据处理类型为联机事务处理类型OLTP,则发送给读写节点处理,包括:
基于所述联机事务处理类型OLTP启动第一任务链路中的读写计算节点,根据所述结构化查询语句生成数据处理任务;
基于所述数据处理任务触发所述第一任务链路的读写存储节点,以使所述读写存储节点执行所述数据处理任务。
5.根据权利要求4所述的数据处理方法,所述基于所述联机事务处理类型OLTP启动第一任务链路中的读写计算节点,根据所述结构化查询语句生成数据处理任务,包括:
基于所述联机事务处理类型OLTP启动第一任务链路中的读写计算节点,所述读写计算节点根据待处理数据所属数据表的标识信息查询分布式数据库中所述数据表的分区表信息;所述分区表信息包含至少一个分区表的存储位置信息;
根据所述存储位置信息,确定所述读写计算节点下的包含所述分区表的至少一个读写存储节点;
基于所述操作类型,按照预设任务格式生成与所述至少一个读写存储节点对应的数据处理任务。
6.根据权利要求1所述的数据处理方法,若所述数据处理类型为联机分析处理类型OLAP,则发送给只读节点处理,包括:
基于所述联机分析处理类型OLAP启动第二任务链路中的只读计算节点,根据所述结构化查询语句生成数据处理任务;
基于所述数据处理任务触发所述第二任务链路的只读存储节点,以使所述只读存储节点执行所述数据处理任务。
7.根据权利要求6所述的数据处理方法,所述确定所述结构化查询语句的操作类型,根据预先建立的映射关系表确定与所述操作类型对应的执行代价,根据所述执行代价与预设阈值的大小关系,确定所述数据处理指令对应的数据处理类型步骤执行之后,所述获取所述数据处理节点返回的数据处理结果并发送至用户之前,包括:
获取分布式数据库中读写存储节点的日志位点信息,并将所述日志位点信息发送至所述只读计算节点。
8.根据权利要求7所述的数据处理方法,所述基于所述数据处理任务触发第二任务链路的只读存储节点,以使所述只读存储节点执行所述数据处理任务,包括:
基于所述数据处理任务触发所述第二任务链路的只读存储节点,以使所述只读存储节点判断所述只读存储节点中的日志位点是否大于或等于所述读写存储节点中的日志位点;
若是,则所述只读存储节点执行所述数据处理任务。
9.根据权利要求3所述的数据处理方法,所述获取所述数据处理节点返回的数据处理结果并发送至用户,包括:
获取所述至少一个数据处理节点返回的至少一个数据处理结果;
对所述至少一个数据处理结果进行聚合处理,并将聚合处理结果发送至所述用户。
10.一种数据处理***,包括:
读写计算节点、只读计算节点、读写存储节点、只读存储节点;
所述读写计算节点,被配置为接收数据处理指令,确定结构化查询语句的操作类型,根据预先建立的映射关系表确定与所述操作类型对应的执行代价,根据所述执行代价与预设阈值的大小关系,确定所述数据处理指令对应的数据处理类型;若所述数据处理类型为联机事务处理类型OLTP,则将所述结构化查询语句发送至所述读写存储节点;若所述数据处理类型为联机分析处理类型OLAP,则将所述结构化查询语句发送至所述只读计算节点;
所述读写存储节点,被配置为执行所述结构化查询语句,并将数据处理结果返回;
所述只读计算节点,被配置为接收所述结构化查询语句,并将所述结构化查询语句下发至所述只读存储节点;
所述只读存储节点,被配置为执行所述结构化查询语句,并将执行结果返回。
11.根据权利要求10所述的数据处理***,
所述读写计算节点,还被配置为获取所述读写存储节点的日志位点信息,并将所述日志位点信息发送至所述只读计算节点;
所述只读计算节点,被配置为接收并将所述日志位点信息发送至所述只读存储节点;
所述只读存储节点,被配置为接收所述日志位点信息,判断所述只读存储节点中的日志位点是否大于或等于所述读写存储节点中的日志位点;若是,则执行所述结构化查询语句。
12.根据权利要求10所述的数据处理***,所述读写计算节点,还被配置为:
获取所述读写存储节点返回的至少一个数据处理结果;
对所述至少一个数据处理结果进行聚合处理,并将聚合处理结果发送至用户。
13.一种数据处理装置,包括:
接收模块,被配置为接收数据处理指令,所述数据处理指令中包含至少一条结构化查询语句;
确定模块,被配置为确定所述结构化查询语句的操作类型,根据预先建立的映射关系表确定与所述操作类型对应的执行代价,根据所述执行代价与预设阈值的大小关系,确定所述数据处理指令对应的数据处理类型,其中,若所述执行代价小于等于所述预设阈值,则所述数据处理类型为联机事务处理类型OLTP,若所述执行代价大于所述预设阈值,则所述数据处理类型为联机分析处理类型OLAP;
发送模块,被配置为将所述结构化查询语句发送至与所述数据处理类型匹配的数据处理节点,若所述数据处理类型为联机事务处理类型OLTP,则发送给读写节点处理,若所述数据处理类型为联机分析处理类型OLAP,则发送给只读节点处理,以使所述对应的数据处理节点基于所述结构化查询语句进行数据处理;
获取模块,被配置为获取所述数据处理节点返回的数据处理结果并发送至用户。
14.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
接收数据处理指令,所述数据处理指令中包含至少一条结构化查询语句;
确定所述结构化查询语句的操作类型,根据预先建立的映射关系表确定与所述操作类型对应的执行代价,根据所述执行代价与预设阈值的大小关系,确定所述数据处理指令对应的数据处理类型,其中,若所述执行代价小于等于所述预设阈值,则所述数据处理类型为联机事务处理类型OLTP,若所述执行代价大于所述预设阈值,则所述数据处理类型为联机分析处理类型OLAP;
将所述结构化查询语句发送至与所述数据处理类型匹配的数据处理节点,若所述数据处理类型为联机事务处理类型OLTP,则发送给读写节点处理,若所述数据处理类型为联机分析处理类型OLAP,则发送给只读节点处理,以使所述对应的数据处理节点基于所述结构化查询语句进行数据处理;
获取所述数据处理节点返回的数据处理结果并发送至用户。
15.一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现权利要求1至9任意一项所述数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010568789.6A CN111475584B (zh) | 2020-06-19 | 2020-06-19 | 数据处理方法、***以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010568789.6A CN111475584B (zh) | 2020-06-19 | 2020-06-19 | 数据处理方法、***以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111475584A CN111475584A (zh) | 2020-07-31 |
CN111475584B true CN111475584B (zh) | 2021-01-22 |
Family
ID=71764143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010568789.6A Active CN111475584B (zh) | 2020-06-19 | 2020-06-19 | 数据处理方法、***以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111475584B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11379483B1 (en) * | 2021-03-30 | 2022-07-05 | Sap Se | Routing SQL statements to elastic compute nodes using workload class |
CN113360258B (zh) * | 2021-05-28 | 2024-07-09 | 北京百度网讯科技有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN114610959B (zh) * | 2022-05-12 | 2022-08-16 | 恒生电子股份有限公司 | 数据处理方法、装置、设备及存储介质 |
CN114996361B (zh) * | 2022-07-29 | 2022-11-22 | 阿里巴巴(中国)有限公司 | 数据处理方法及*** |
CN115858551B (zh) * | 2023-01-31 | 2023-11-14 | 天津南大通用数据技术股份有限公司 | 基于ldap的内存管理方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109388651A (zh) * | 2018-09-19 | 2019-02-26 | 中国联合网络通信集团有限公司 | 一种数据处理方法和装置 |
CN110019251A (zh) * | 2019-03-22 | 2019-07-16 | 深圳市腾讯计算机***有限公司 | 一种数据处理***、方法及设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345518B (zh) * | 2013-07-11 | 2016-08-10 | 清华大学 | 基于数据块的自适应数据存储管理方法及*** |
CN109582660B (zh) * | 2018-12-06 | 2021-08-10 | 深圳前海微众银行股份有限公司 | 数据血缘分析方法、装置、设备、***及可读存储介质 |
CN110166282B (zh) * | 2019-04-16 | 2020-12-01 | 苏宁云计算有限公司 | 资源分配方法、装置、计算机设备和存储介质 |
-
2020
- 2020-06-19 CN CN202010568789.6A patent/CN111475584B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109388651A (zh) * | 2018-09-19 | 2019-02-26 | 中国联合网络通信集团有限公司 | 一种数据处理方法和装置 |
CN110019251A (zh) * | 2019-03-22 | 2019-07-16 | 深圳市腾讯计算机***有限公司 | 一种数据处理***、方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111475584A (zh) | 2020-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111475584B (zh) | 数据处理方法、***以及装置 | |
CN114356971A (zh) | 数据处理方法、装置以及*** | |
US20230082563A1 (en) | Data processing method and data processing apparatus | |
CN111258978B (zh) | 一种数据存储的方法 | |
CN107291770B (zh) | 一种分布式***中海量数据的查询方法及装置 | |
CN111538605A (zh) | 一种分布式数据访问层中间件及命令执行方法和装置 | |
CN111858676A (zh) | 一种数据处理的方法及装置 | |
CN111723161A (zh) | 一种数据处理方法、装置及设备 | |
CN112905618A (zh) | 数据处理方法以及装置 | |
CN110888672B (zh) | 一种基于元数据架构的表达式引擎实现方法及*** | |
CN114820080A (zh) | 基于人群流转的用户分群方法、***、装置及介质 | |
CN111666344A (zh) | 异构数据同步方法及装置 | |
CN114579532A (zh) | 处理预写日志的方法、装置及*** | |
CN111352951A (zh) | 一种数据导出方法、装置及*** | |
CN113297159B (zh) | 数据存储方法以及装置 | |
CN110069565B (zh) | 一种分布式数据库数据批量处理的方法及装置 | |
CN113297231A (zh) | 数据库处理方法及装置 | |
CN114153547B (zh) | 管理页面显示方法及装置 | |
CN111209263A (zh) | 数据存储方法、装置、设备及存储介质 | |
CN113806376B (zh) | 索引构建方法及装置 | |
CN115242787A (zh) | 消息处理***及方法 | |
CN112953993B (zh) | 资源调度方法、设备、网络***及存储介质 | |
CN114168589A (zh) | 索引构建方法及装置 | |
CN112905457A (zh) | 软件测试方法及装置 | |
CN113297164A (zh) | 数据库***、数据查询方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |