CN112632170A - 基于sql的数据处理方法、装置和设备 - Google Patents
基于sql的数据处理方法、装置和设备 Download PDFInfo
- Publication number
- CN112632170A CN112632170A CN202011610689.1A CN202011610689A CN112632170A CN 112632170 A CN112632170 A CN 112632170A CN 202011610689 A CN202011610689 A CN 202011610689A CN 112632170 A CN112632170 A CN 112632170A
- Authority
- CN
- China
- Prior art keywords
- hbase
- sql
- physical
- execution plan
- call
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 24
- 238000000034 method Methods 0.000 claims abstract description 24
- 238000013507 mapping Methods 0.000 claims abstract description 8
- 238000012545 processing Methods 0.000 claims description 28
- 239000003638 chemical reducing agent Substances 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 7
- 238000012795 verification Methods 0.000 claims description 5
- OYPRJOBELJOOCE-UHFFFAOYSA-N Calcium Chemical compound [Ca] OYPRJOBELJOOCE-UHFFFAOYSA-N 0.000 claims description 2
- 229910052791 calcium Inorganic materials 0.000 claims description 2
- 239000011575 calcium Substances 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000006467 substitution reaction Methods 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/25—Integrating or interfacing systems involving database management systems
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Abstract
本发明涉及一种基于SQL的数据处理方法、装置和设备,方法包括获取用户编写的抽数SQL,以及,从元数据库中调取预先创建的Hive表和HBase虚表;HBase虚表用于映射HBase实体表;在Calcite中,结合抽数SQL、HBase虚表、Hive表,生成物理执行计划,并将物理执行计划发送到Hadoop Yarn;利用Yarn调度物理执行计划,读取HBase实体表中的数据写入Hive表中。抽取数据不经过HBase Region Server,避免对HBase服务造成压力,用户只需要在调度平台编写一个简单的抽数SQL,节约了人力成本,有效提高了HBase数据库中的数据导入到Hive数据库的效率。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及一种基于SQL的数据处理方法、装置和设备。
背景技术
在数据处理的过程中,需要频繁的将HBase数据库中的数据导入到Hive数据库中。现有技术中,一般是通过要手动建立对应HBase表的Hive外部表,或者,使用HBaseSnapshot来实现。
但是,手动建立对应HBase表的Hive外部表,不仅操作冗余低效,而且Hive外部表需要对HBase的全表扫描,产生大量对HBase Region Server的请求,导致任务执行期间服务器负载过高;使用HBase Snapshot来实现的方式手工配置繁琐,例如,需要配置字段,过滤条件等,无法实现聚合、联合、排序等高级的抽数需求,如果业务的需求发生大的变化,还需要修改程序的执行逻辑。
因此,目前HBase数据库中的数据导入到Hive数据库的效率并不高。
发明内容
有鉴于此,本发明的目的在于提供一种基于SQL的数据处理方法、装置和设备,以克服目前HBase数据库中的数据导入到Hive数据库的效率并不高的问题。
为实现以上目的,本发明采用如下技术方案:
一种基于SQL的数据处理方法,包括:
获取用户基于实际需求编写的抽数SQL,以及,从元数据库中调取预先创建的Hive表和HBase虚表;其中,所述HBase虚表用于映射HBase实体表;
在Calcite中,结合所述抽数SQL、所述HBase虚表、所述Hive表,生成物理执行计划,并将所述物理执行计划发送到Hadoop Yarn;
利用所述Hadoop Yarn调度所述物理执行计划,读取所述HBase实体表中的数据写入所述Hive表中。
进一步地,以上所述的基于SQL的数据处理方法,所述在Calcite中,结合所述抽数SQL、所述HBase虚表、所述Hive表,生成物理执行计划,并将所述物理执行计划发送到Hadoop Yarn,包括;
在所述Calcite中,结合所述抽数SQL、所述HBase虚表、所述Hive表,生成逻辑执行计划;
基于所述Calcite中的固定规则和所述Calcite中预先注册的自定义规则,对所述逻辑执行计划进行优化;
调用所述Calcite中预先注册的物理转换器,将优化后的逻辑执行计划转换为所述物理执行计划。
进一步地,以上所述的基于SQL的数据处理方法,所述在所述Calcite中,结合所述抽数SQL、所述HBase虚表、所述Hive表,生成逻辑执行计划,包括:
在所述Calcite中,基于所述抽数SQL,验证所述HBase虚表、所述Hive表的基本信息;
验证通过后,将所述抽数SQL转换为所述逻辑执行计划。
进一步地,以上所述的基于SQL的数据处理方法,所述方法还包括:
获取所述用户基于实际需求编写的初始自定义规则;
控制所述初始自定义规则继承RelOptRule类,实现onMatch;
通过实现了RelNode接口的类,将实现onMatch的初始自定义规则注册到所述Calcite中,得到所述自定义规则。
进一步地,以上所述的基于SQL的数据处理方法,所述方法还包括:
获取初始物理转换器;
控制所述初始物理转换器继承ConverterImpl类,实现EnumerableRel接口;
通过所述实现了RelNode接口的类,将实现了numerableRel接口的初始物理转换器注册到所述Calcite中,得到所述物理转换器。
进一步地,以上所述的基于SQL的数据处理方法,所述物理转换器包括MapReduce物理转化器,所述物理执行计划包括MapReduce执行树;
所述利用所述Hadoop Yarn调度所述物理执行计划,读取所述HBase实体表中的数据写入所述Hive表中,包括:
利用所述Hadoop Yarn调度所述物理执行计划,获取所述HBase实体表的快照;
基于所述快照,利用所述Hadoop Yarn调度所述MapReduce执行树的Mapper读取所述HBase实体表中的数据;
利用所述Hadoop Yarn调度所述MapReduce执行树中的Reducer对数据进行处理,并写入所述Hive表中。
本发明还提供了一种基于SQL的数据处理装置,包括:
获取模块,用于获取用户基于实际需求编写的抽数SQL,以及,从元数据库中调取预先创建的Hive表和HBase虚表;其中,所述HBase虚表用于映射HBase实体表;
Calcite模块,用于在Calcite中,结合所述抽数SQL、所述HBase虚表、所述Hive表,生成物理执行计划,并将所述物理执行计划发送到Hadoop Yarn;
物理执行模块,用于利用所述Hadoop Yarn调度所述物理执行计划,读取所述HBase实体表中的数据写入所述Hive表中。
进一步地,以上所述的基于SQL的数据处理装置,所述Calcite模块,具体用于在所述Calcite中,结合所述抽数SQL、所述HBase虚表、所述Hive表,生成逻辑执行计划;基于所述Calcite中的固定规则和所述Calcite中预先注册的自定义规则,对所述逻辑执行计划进行优化;调用所述Calcite中预先注册的物理转换器,将优化后的逻辑执行计划转换为所述物理执行计划。
进一步地,以上所述的基于SQL的数据处理装置,所述物理转换器包括MapReduce物理转化器,所述物理执行计划包括MapReduce执行树;
所述物理执行模块,具体用于利用所述Hadoop Yarn调度所述物理执行计划,获取所述HBase实体表的快照;基于所述快照,利用所述Hadoop Yarn调度所述MapReduce执行树的Mapper读取所述HBase实体表中的数据;利用所述Hadoop Yarn调度所述MapReduce执行树中的Reducer对数据进行处理,并写入所述Hive表中。
本发明还提供了一种基于SQL的数据处理设备,包括处理器和存储器,所述处理器与存储器相连:
其中,所述处理器,用于调用并执行所述存储器中存储的程序;
所述存储器,用于存储所述程序,所述程序至少用于执行以上任一项所述的基于SQL的数据处理方法。
本发明的基于SQL的数据处理方法、装置和设备,方法包括获取用户基于实际需求编写的抽数SQL,以及,从元数据库中调取预先创建的Hive表和HBase虚表;其中,HBase虚表用于映射HBase实体表;在Calcite中,结合抽数SQL、HBase虚表、Hive表,生成物理执行计划,并将物理执行计划发送到Hadoop Yarn;利用Hadoop Yarn调度物理执行计划,读取HBase实体表中的数据写入Hive表中。采用本申请的技术方案,抽取数据不经过HBaseRegion Server,避免对HBase服务造成压力,用户只需要在调度平台编写一个简单的抽数SQL,即可实现数据的抽取,解放了用户的双手,节约了人力成本,有效提高了HBase数据库中的数据导入到Hive数据库的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明基于SQL的数据处理方法一种实施例提供的流程图;
图2是本发明基于SQL的数据处理装置一种实施例提供的结构示意图;
图3是本发明基于SQL的数据处理装置一种实施例提供的架构图;
图4是本发明基于SQL的数据处理设备一种实施例提供的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
图1是本发明基于SQL的数据处理方法一种实施例提供的流程图。
如图1所示,本实施例的基于SQL的数据处理方法可以包括以下步骤:
S101、获取用户基于实际需求编写的抽数SQL,以及,从元数据库中调取预先创建的Hive表和HBase虚表。
Hive是构建在Hadoop上的数据仓库框架,通过架设一层SQL操作的接口来实现通过类SQL的语句HQL来操作Hadoop分布式文件系统(HDFS)中的大规模数据。Hive可以将SQL转换为MapReduce任务运行。HBase全称为Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建的大规模结构化存储集群。
可选的,用户可以根据实际的编写需求编写抽数SQL。例如,编写insert intohive_table select c1,c2 from hbase_table where c3>'2020-11-2600:00:00'作为抽数SQL。
可选的,在此之前,用户需要在元数据系统中创建好Hive表和HBase虚表,并指定好每张表的字段类型。这里的HBase虚表是一张带Schema的虚表,有主键和固定的列,不能直接映射到HBase数据库,而是映射到HBase实体表。
可选的,本实施例中,获取用户基于实际需求编写的抽数SQL,以及,从元数据库中调取预先创建的Hive表和HBase虚表。
S102、在Calcite中,结合抽数SQL、HBase虚表、Hive表,生成物理执行计划,并将物理执行计划发送到Hadoop Yarn。
可选的,本实施例中,基于如下步骤确定物理执行计划:
步骤一:在Calcite中,结合抽数SQL、HBase虚表、Hive表,生成逻辑执行计划;
步骤二:基于Calcite中的固定规则和Calcite中预先注册的自定义规则,对逻辑执行计划进行优化;
步骤三:调用Calcite中预先注册的物理转换器,将优化后的逻辑执行计划转换为物理执行计划。
具体的,Calcite是面向Hadoop的新型查询引擎,它提供了标准的SQL语言,多种查询优化和连接各种数据源的能力。它可以将SQL转换为逻辑执行计划,由第三方根据物理执行引擎,将SQL的逻辑计划适配为特定物理执行计划,由物理执行引擎去执行此物理执行计划。最后,将执行结果返回。
本实施例在Calcite中,基于抽数SQL,验证HBase虚表、Hive表的基本信息,生成逻辑执行计划;具体的,使用Calcite对抽数SQL进行词法分析和语法分析,调用元数据系统,验证表和字段等信息,验证通过后,将抽数SQL转换为逻辑执行计划。
物理转换器包括MapReduce物理转化器,物理执行计划包括MapReduce执行树。本实施例中,使用Calcite中的固定规则和Calcite中预先注册的自定义规则,对逻辑执行计划进行优化,最后调用Calcite中预先注册的MapReduce物理转化器,将优化后的逻辑执行计划转换为MapReduce执行树。
可选的,固定规则是Calcite中内置的规则。
可选的,将MapReduce执行树发送给Hadoop Yarn。
S103、利用Hadoop Yarn调度物理执行计划,读取HBase实体表中的数据写入Hive表中。
Hadoop Yarn接收到MapReduce执行树,就会运行该MapReduce执行树。运行步骤如下:
步骤一:利用Hadoop Yarn调度物理执行计划,获取HBase实体表的快照;
步骤二:基于快照,利用Hadoop Yarn调度MapReduce执行树的Mapper读取HBase实体表中的数据;
步骤三:利用Hadoop Yarn调度MapReduce执行树中的Reducer对数据进行处理,并写入Hive表中。
具体地,可以先获取HBase实体表的快照,MapReduce执行树中的Mapper利用自定义InputFormat在内部把HBase实体表的每个文件(HFile)作为一个map的输入,并按照表的大小来划分reduce数,接着MapReduce执行树中的Reducer进行过滤,聚合等操作,最终按照抽数SQL中提供的表和分区导入数据到Hive表中。
本实施例的基于SQL的数据处理方法,包括获取用户基于实际需求编写的抽数SQL,以及,从元数据库中调取预先创建的Hive表和HBase虚表;其中,HBase虚表用于映射HBase实体表;在Calcite中,结合抽数SQL、HBase虚表、Hive表,生成物理执行计划,并将物理执行计划发送到Hadoop Yarn;利用Hadoop Yarn调度物理执行计划,读取HBase实体表中的数据写入Hive表中。采用本申请的技术方案,抽取数据不经过HBase Region Server,避免对HBase服务造成压力,用户只需要在调度平台编写一个简单的抽数SQL,即可实现数据的抽取,解放了用户的双手,节约了人力成本,有效提高了HBase数据库中的数据导入到Hive数据库的效率。
可选的,在以上实施例的基础上,本实施例还可以包括如下步骤:
步骤一:获取用户基于实际需求编写的初始自定义规则;
步骤二:控制初始自定义规则继承RelOptRule类,实现onMatch;
步骤三:通过实现了RelNode接口的类,将实现onMatch的初始自定义规则注册到Calcite中,得到自定义规则。
具体的,用户可以根据实际需求编写的初始自定义规则,初始自定义规则通过继承RelOptRule类,实现onMatch方法。实现onMatch的初始自定义规则通过一个实现了RelNode接口的类,注册到Calcite中。
可选的,在以上实施例的基础上,本实施例还可以包括如下步骤:
步骤一:获取初始物理转换器;
步骤二:控制初始物理转换器继承ConverterImpl类,实现EnumerableRel接口;
步骤三:通过实现了RelNode接口的类,将实现了EnumerableRel接口的初始物理转换器注册到Calcite中,得到物理转换器。
具体的,可以获取初始物理转换器,初始物理转换器通过继承了ConverterImpl类,实现了EnumerableRel接口。实现了EnumerableRel接口的初始物理转换器通过一个实现了RelNode接口的类,注册到Calcite中。
可选的,Calcite在对逻辑执行计划进行优化时,会应用固定规则、自定义规则优化逻辑执行计划,并使用物理转换器将逻辑执行计划转换为最终的物理执行计划,即MapReduce执行树。最后,此MapReduce执行树提交到Hadoop Yarn上,由Yarn去调度执行。
基于一个总的发明构思,本发明还提供了一种基于SQL的数据处理装置,用于实现上述方法实施例。
图2是本发明基于SQL的数据处理装置一种实施例提供的结构示意图。如图2所示,本实施例的装置可以包括:
获取模块11,用于获取用户基于实际需求编写的抽数SQL,以及,从元数据库中调取预先创建的Hive表和HBase虚表;其中,HBase虚表用于映射HBase实体表;
Calcite模块12,用于在Calcite中,结合抽数SQL、HBase虚表、Hive表,生成物理执行计划,并将物理执行计划发送到Hadoop Yarn;
物理执行模块13,用于利用Hadoop Yarn调度物理执行计划,读取HBase实体表中的数据写入Hive表中。
可选的,本实施例的基于SQL的数据处理装置中,Calcite模块12,具体用于在Calcite中,结合抽数SQL、HBase虚表、Hive表,生成逻辑执行计划;基于Calcite中的固定规则和Calcite中预先注册的自定义规则,对逻辑执行计划进行优化;调用Calcite中预先注册的物理转换器,将优化后的逻辑执行计划转换为物理执行计划。
可选的,本实施例的基于SQL的数据处理装置中,Calcite模块12,具体用于在Calcite中,基于抽数SQL,验证HBase虚表、Hive表的基本信息;验证通过后,将抽数SQL转换为逻辑执行计划。
可选的,本实施例的基于SQL的数据处理装置中,还包括注册模块;
注册模块,用于获取用户基于实际需求编写的初始自定义规则;控制初始自定义规则继承RelOptRule类,实现onMatch;通过实现了RelNode接口的类,将实现onMatch的初始自定义规则注册到Calcite中,得到自定义规则。
可选的,本实施例的基于SQL的数据处理装置中,注册模块,还用于获取初始物理转换器;控制初始物理转换器继承ConverterImpl类,实现EnumerableRel接口;通过实现了RelNode接口的类,将实现了numerableRel接口的初始物理转换器注册到Calcite中,得到物理转换器。
可选的,本实施例的基于SQL的数据处理装置中,物理转换器包括MapReduce物理转化器,物理执行计划包括MapReduce执行树;
物理执行模块,具体用于利用Hadoop Yarn调度物理执行计划,获取HBase实体表的快照;基于快照,利用Hadoop Yarn调度MapReduce执行树的Mapper读取HBase实体表中的数据;利用Hadoop Yarn调度MapReduce执行树中的Reducer对数据进行处理,并写入Hive表中。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图3是本发明基于SQL的数据处理装置一种实施例提供的架构图。
可选的,Calcite模块12和物理执行模块13组成图3中的抽数引擎。
基于一个总的发明构思,本发明还提供了一种基于SQL的数据处理设备,用于实现上述方法实施例。
图4是本发明基于SQL的数据处理设备一种实施例提供的结构示意图。
如图4所示,本实施例的基于SQL的数据处理设备包括处理器21和存储器22,处理器21与存储器22相连。其中,处理器21用于调用并执行存储器22中存储的程序;存储器22用于存储程序,程序至少用于执行以上实施例中的基于SQL的数据处理方法。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种基于SQL的数据处理方法,其特征在于,包括:
获取用户基于实际需求编写的抽数SQL,以及,从元数据库中调取预先创建的Hive表和HBase虚表;其中,所述HBase虚表用于映射HBase实体表;
在Calcite中,结合所述抽数SQL、所述HBase虚表、所述Hive表,生成物理执行计划,并将所述物理执行计划发送到Hadoop Yarn;
利用所述Hadoop Yarn调度所述物理执行计划,读取所述HBase实体表中的数据写入所述Hive表中。
2.根据权利要求1所述的基于SQL的数据处理方法,其特征在于,所述在Calcite中,结合所述抽数SQL、所述HBase虚表、所述Hive表,生成物理执行计划,并将所述物理执行计划发送到Hadoop Yarn,包括;
在所述Calcite中,结合所述抽数SQL、所述HBase虚表、所述Hive表,生成逻辑执行计划;
基于所述Calcite中的固定规则和所述Calcite中预先注册的自定义规则,对所述逻辑执行计划进行优化;
调用所述Calcite中预先注册的物理转换器,将优化后的逻辑执行计划转换为所述物理执行计划。
3.根据权利要求2所述的基于SQL的数据处理方法,其特征在于,所述在所述Calcite中,结合所述抽数SQL、所述HBase虚表、所述Hive表,生成逻辑执行计划,包括:
在所述Calcite中,基于所述抽数SQL,验证所述HBase虚表、所述Hive表的基本信息;
验证通过后,将所述抽数SQL转换为所述逻辑执行计划。
4.根据权利要求2所述的基于SQL的数据处理方法,其特征在于,所述方法还包括:
获取所述用户基于实际需求编写的初始自定义规则;
控制所述初始自定义规则继承RelOptRule类,实现onMatch;
通过实现了RelNode接口的类,将实现onMatch的初始自定义规则注册到所述Calcite中,得到所述自定义规则。
5.根据权利要求4所述的基于SQL的数据处理方法,其特征在于,所述方法还包括:
获取初始物理转换器;
控制所述初始物理转换器继承ConverterImpl类,实现EnumerableRel接口;
通过所述实现了RelNode接口的类,将实现了numerableRel接口的初始物理转换器注册到所述Calcite中,得到所述物理转换器。
6.根据权利要求2所述的基于SQL的数据处理方法,其特征在于,所述物理转换器包括MapReduce物理转化器,所述物理执行计划包括MapReduce执行树;
所述利用所述Hadoop Yarn调度所述物理执行计划,读取所述HBase实体表中的数据写入所述Hive表中,包括:
利用所述Hadoop Yarn调度所述物理执行计划,获取所述HBase实体表的快照;
基于所述快照,利用所述Hadoop Yarn调度所述MapReduce执行树的Mapper读取所述HBase实体表中的数据;
利用所述Hadoop Yarn调度所述MapReduce执行树中的Reducer对数据进行处理,并写入所述Hive表中。
7.一种基于SQL的数据处理装置,其特征在于,包括:
获取模块,用于获取用户基于实际需求编写的抽数SQL,以及,从元数据库中调取预先创建的Hive表和HBase虚表;其中,所述HBase虚表用于映射HBase实体表;
Calcite模块,用于在Calcite中,结合所述抽数SQL、所述HBase虚表、所述Hive表,生成物理执行计划,并将所述物理执行计划发送到Hadoop Yarn;
物理执行模块,用于利用所述Hadoop Yarn调度所述物理执行计划,读取所述HBase实体表中的数据写入所述Hive表中。
8.根据权利要求7所述的基于SQL的数据处理装置,其特征在于,所述Calcite模块,具体用于在所述Calcite中,结合所述抽数SQL、所述HBase虚表、所述Hive表,生成逻辑执行计划;基于所述Calcite中的固定规则和所述Calcite中预先注册的自定义规则,对所述逻辑执行计划进行优化;调用所述Calcite中预先注册的物理转换器,将优化后的逻辑执行计划转换为所述物理执行计划。
9.根据权利要求8所述的基于SQL的数据处理装置,其特征在于,所述物理转换器包括MapReduce物理转化器,所述物理执行计划包括MapReduce执行树;
所述物理执行模块,具体用于利用所述Hadoop Yarn调度所述物理执行计划,获取所述HBase实体表的快照;基于所述快照,利用所述Hadoop Yarn调度所述MapReduce执行树的Mapper读取所述HBase实体表中的数据;利用所述Hadoop Yarn调度所述MapReduce执行树中的Reducer对数据进行处理,并写入所述Hive表中。
10.一种基于SQL的数据处理设备,其特征在于,包括处理器和存储器,所述处理器与存储器相连:
其中,所述处理器,用于调用并执行所述存储器中存储的程序;
所述存储器,用于存储所述程序,所述程序至少用于执行权利要求1-6任一项所述的基于SQL的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011610689.1A CN112632170A (zh) | 2020-12-30 | 2020-12-30 | 基于sql的数据处理方法、装置和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011610689.1A CN112632170A (zh) | 2020-12-30 | 2020-12-30 | 基于sql的数据处理方法、装置和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112632170A true CN112632170A (zh) | 2021-04-09 |
Family
ID=75286701
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011610689.1A Pending CN112632170A (zh) | 2020-12-30 | 2020-12-30 | 基于sql的数据处理方法、装置和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112632170A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110059103A (zh) * | 2019-04-28 | 2019-07-26 | 南京大学 | 一种跨平台统一的大数据sql查询方法 |
US20200210423A1 (en) * | 2018-12-28 | 2020-07-02 | Baidu Online Network Technology (Beijing) Co., Ltd. | Multi-party data joint query method, device, server and storage medium |
CN111400297A (zh) * | 2020-03-19 | 2020-07-10 | 上海德拓信息技术股份有限公司 | 基于Hadoop的海量数据数据质量校验方法 |
-
2020
- 2020-12-30 CN CN202011610689.1A patent/CN112632170A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200210423A1 (en) * | 2018-12-28 | 2020-07-02 | Baidu Online Network Technology (Beijing) Co., Ltd. | Multi-party data joint query method, device, server and storage medium |
CN110059103A (zh) * | 2019-04-28 | 2019-07-26 | 南京大学 | 一种跨平台统一的大数据sql查询方法 |
CN111400297A (zh) * | 2020-03-19 | 2020-07-10 | 上海德拓信息技术股份有限公司 | 基于Hadoop的海量数据数据质量校验方法 |
Non-Patent Citations (3)
Title |
---|
SKIAIE: ""A Day In the Life of a Hive Query"", Retrieved from the Internet <URL:https://community.cloudera.com/t5/Community-Articles/A-Day-In-the-Life-of-a-Hive-Query/ta-p/287905> * |
一只无情的小猫咪: ""Calcite 参与对象简介"", Retrieved from the Internet <URL:https://zhuanlan.zhihu.com/p/56180392> * |
青紫天涯: ""Apache Calcite 学习(一)"", Retrieved from the Internet <URL:https://www.cnblogs.com/wcgstudy/p/11795886.html> * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108536761B (zh) | 报表数据查询方法及服务器 | |
CN107239479B (zh) | 一种基于区块链的数据存储以及查询的方法及装置 | |
CN106897322B (zh) | 一种数据库和文件系统的访问方法和装置 | |
CN107506451B (zh) | 用于数据交互的异常信息监控方法及装置 | |
CN110032604B (zh) | 数据存储装置、转译装置及数据库访问方法 | |
CN109491989B (zh) | 数据处理方法及装置、电子设备、存储介质 | |
US20150220527A1 (en) | Database table format conversion based on user data access patterns in a networked computing environment | |
CN111324610A (zh) | 一种数据同步的方法及装置 | |
US20130191404A1 (en) | Using views of subsets of nodes of a schema to generate data transformation jobs to transform input files in first data formats to output files in second data formats | |
CN108334609B (zh) | Oracle中实现JSON格式数据存取的方法、装置、设备及存储介质 | |
CN111949693B (zh) | 一种数据处理装置、数据处理方法、存储介质及电子设备 | |
CN112148788A (zh) | 异构数据源的数据同步方法及系统 | |
CN104216961A (zh) | 一种数据处理方法和装置 | |
CN116483859A (zh) | 数据查询方法及装置 | |
CN109473178B (zh) | 医疗数据整合的方法、系统、设备及存储介质 | |
CN113962597A (zh) | 一种数据分析方法、装置、电子设备及存储介质 | |
US11449461B2 (en) | Metadata-driven distributed dynamic reader and writer | |
CN111984745B (zh) | 数据库字段动态扩展方法、装置、设备及存储介质 | |
CN105573763A (zh) | 一种支持rtos的嵌入式系统建模方法 | |
WO2024001029A1 (zh) | 一种维护区块链数据的方法、装置、电子设备和存储介质 | |
CN117349368A (zh) | 基于Flink的跨库数据实时同步任务管理系统及方法 | |
US8924431B2 (en) | Pluggable domain-specific typing systems and methods of use | |
CA3203549A1 (en) | Unified verification method, device, equipment and storage medium | |
WO2024001039A1 (zh) | 一种维护区块链数据的方法、装置、电子设备和存储介质 | |
CN111125216A (zh) | 数据导入Phoenix的方法及装置 |
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 |