Spark存储过程处理方法及装置制造方法及图纸

技术编号:19822009 阅读:20 留言:0更新日期:2018-12-19 14:47
本公开涉及Spark存储过程处理方法及装置,应用于Spark的Driver端,所述方法包括:获取Spark存储过程对应的语句集,所述语句集包括操作SQL语句和逻辑控制语句,所述操作SQL语句包括查询SQL语句,所述逻辑控制语句包括游标处理语句;将所述查询SQL语句和所述游标处理语句进行合并后生成第一逻辑计划;将所述第一逻辑计划发送至工作节点WorkerNode集群执行。通过将游标处理过程抽象为一个逻辑计划,并分发至WorkerNode集群执行,根据本公开实施例的Spark存储过程处理方法及装置能够降低Driver端负载压力。

【技术实现步骤摘要】
Spark存储过程处理方法及装置
本公开涉及大数据
,尤其涉及一种Spark存储过程处理方法及装置。
技术介绍
SparkSQL是基于Spark的分布式SQL引擎。一条SQL语句,在SparkSQL中会经过词法解析、语法解析等阶段,将SQL语句转为可以分布式执行的逻辑计划,并交由WorkerNode(工作节点)集群执行。Spark存储过程可以用于实现特定功能,是由操作SQL语句和逻辑控制语句组合而成的语句集。其中,操作SQL语句包括查询(Select)SQL语句和插入(Insert)SQL语句,逻辑控制语句可以包括赋值语句、条件判断语句和循环语句等,这些语句为SQL语句或非SQL语句。在执行Spark存储过程时,Spark的Driver(驱动器)端会启动一个PL/SQL(ProceduralLanguage/SQL,过程化SQL语句)引擎。相关技术中,在PL/SQL引擎对存储过程进行处理的过程中,对于非SQL语句,则直接在本地执行该逻辑控制语句;对于SQL语句,则生成逻辑计划,并将生成的逻辑计划交由WorkerNode集群执行。Driver端的PL/SQL引擎会将WorkerNode集群执行上述逻辑计划的结果拉取到本地,然后对所述结果执行逻辑控制语句中的游标处理语句,导致Driver端的负载较大。
技术实现思路
有鉴于此,本公开提出了一种Spark存储过程处理方法及装置,能够降低Driver端负载压力。根据本公开的一方面,提供了一种Spark存储过程处理方法,应用于Spark的Driver端,所述方法包括:获取Spark存储过程对应的语句集,所述语句集包括操作SQL语句和逻辑控制语句,所述操作SQL语句包括查询SQL语句,所述逻辑控制语句包括游标处理语句;将所述查询SQL语句和所述游标处理语句进行合并后生成第一逻辑计划;将所述第一逻辑计划发送至工作节点WorkerNode集群执行。根据本公开的另一方面,提供了一种Spark存储过程处理装置,应用于Spark的Driver端,所述装置包括:获取模块,用于获取Spark存储过程对应的语句集,所述语句集包括操作SQL语句和逻辑控制语句,所述操作SQL语句包括查询SQL语句,所述逻辑控制语句包括游标处理语句;第一生成模块,用于将所述查询SQL语句和所述游标处理语句进行合并后生成第一逻辑计划;第一发送模块,用于将所述第一逻辑计划发送至工作节点WorkerNode集群执行。通过获取Spark存储过程对应的语句集;将语句集中的查询SQL语句和游标处理语句进行合并后生成第一逻辑计划;将所述第一逻辑计划发送至WorkerNode集群执行,根据本公开各方面实施例的Spark存储过程处理方法及装置能够将游标处理过程抽象为一个逻辑计划,并分发至WorkerNode集群执行,降低了Driver端负载压力。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。附图说明包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。图1示出根据本公开一实施例的Spark存储过程处理方法的流程图。图2示出根据本公开一实施例的Spark架构的示意图。图3示出根据本公开一实施例的Spark存储过程处理方法的流程图。图4示出根据本公开一实施例的Spark存储过程处理方法的流程图。图5a和图5b分别示出根据本公开一实施例的Spark存储过程对应的语句集的一个示例图6示出根据本公开一实施例的Spark存储过程处理装置的框图。图7示出根据本公开一实施例的Spark存储过程处理装置的框图。图8是根据一示例性实施例示出的一种用于Spark存储过程处理的装置的框图。具体实施方式以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。图1示出根据本公开一实施例的Spark存储过程处理方法的流程图。图2示出根据本公开一实施例的Spark架构的示意图。如图2所示,Spark架构中包括Driver和WorkerNode(工作节点)集群。其中,Driver负责对应用程序进行调度,对task(任务)分配等进行管理。Driver端的PL/SQL引擎负责对存储过程对应的语句集进行处理。集群中的WorkerNode负责创建Executor(执行器),将资源和任务进一步分配给Executor。其中,Executor是工作节点上的进程,负责对分配给该进程的任务进行处理。一条SQL语句的处理流程包括词法解析、语法解析、优化、策略制定和执行。SQL语句经过词法解析、语法解析、优化和策略制定可以生成逻辑计划,生成逻辑计划的过程由图2所示的Driver端执行。进入执行阶段后,逻辑计划会被分发到图2所示的WorkerNode中的Executor执行。图1所示的Spark存储过程处理方法可以应用于图2所示的Driver端(Driver端的PL/SQL引擎)。如图1所示,该Spark存储过程处理方法可以包括:步骤S11,获取Spark存储过程对应的语句集,所述语句集包括操作SQL语句和逻辑控制语句,所述操作SQL语句包括查询SQL语句,所述逻辑控制语句包括游标处理语句。存储过程可以用于实现用户需要的特定功能,例如向数据表中插入数据、按照给定格式输出数据表中的数据等。存储过程对应的语句集表示实现特定功能需要的语句的集合。存储过程对应的语句集可以包括操作SQL语句和逻辑控制语句。其中,操作SQL语句包括查询SQL语句,逻辑控制语句包括游标处理语句。操作SQL语句可以用于表示对数据库中的数据进行操作的SQL语句,例如查询SQL语句、插入SQL语句等。其中,查询SQL语句的结果集可以通过游标进行处理。结果集是执行查询SQL语句之后得到的所有行数据的集合。游标是处理结果集的一种机制,通过对游标的操作可以读取结果集中各行的数据。游标可以将读取结果赋值给其他变量。逻辑控制语句可以表示语句集中除操作SQL语句以外的语句。逻辑控制语句中包括游标处理语句。游标处理语句可以表示能够通过指定变量处理查询SQL语句结果集的语句,其中,指定变量可以用于存储通过游标从查询SQL语句的结果集中读取的结果,即游标可以将从查询SQL语句的结果集的读取的一行结果赋值给指定变量。在一种可能的实现方式中,游标处理语句可以位于循环体内部和/或循环体的循环条件中。其中,循环体可以为while循环体、forinloop循环体等,对此本公开不做限制。在一种可能的实现方式中,游标处理语句可以包括:以指定变量为过滤条件的语句和/或对指定变量进行处理的语句。游标处理语句可以为SQL语句,也可以为非SQL语句。在一个示例中,以指本文档来自技高网...

【技术保护点】
1.一种Spark存储过程处理方法,其特征在于,应用于Spark的Driver端,所述方法包括:获取Spark存储过程对应的语句集,所述语句集包括操作SQL语句和逻辑控制语句,所述操作SQL语句包括查询SQL语句,所述逻辑控制语句包括游标处理语句;将所述查询SQL语句和所述游标处理语句进行合并后生成第一逻辑计划;将所述第一逻辑计划发送至工作节点WorkerNode集群执行。

【技术特征摘要】
1.一种Spark存储过程处理方法,其特征在于,应用于Spark的Driver端,所述方法包括:获取Spark存储过程对应的语句集,所述语句集包括操作SQL语句和逻辑控制语句,所述操作SQL语句包括查询SQL语句,所述逻辑控制语句包括游标处理语句;将所述查询SQL语句和所述游标处理语句进行合并后生成第一逻辑计划;将所述第一逻辑计划发送至工作节点WorkerNode集群执行。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:对于所述语句集中除所述游标处理语句和所述查询SQL语句以外的每个语句,若该语句为SQL语句,则基于该SQL语句生成第二逻辑计划;将所述第二逻辑计划发送至所述WorkerNode集群中执行。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:对于所述语句集中除所述游标处理语句和所述操作SQL语句以外的每个语句,若该语句为非SQL语句,则在本地执行该非SQL语句。4.根据权利要求3所述的方法,其特征在于,所述游标处理语句包括:以指定变量为过滤条件的语句和/或对指定变量进行处理的语句,所述指定变量用于存储通过游标从所述查询SQL语句的结果集中读取的结果。5.一种Spark存储过程处理装置,其特征在于,应...

【专利技术属性】
技术研发人员:谷宁波户蕾蕾
申请(专利权)人:新华三大数据技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1