CN112163030A - 多表批量操作方法、系统及计算机设备 - Google Patents

多表批量操作方法、系统及计算机设备 Download PDF

Info

Publication number
CN112163030A
CN112163030A CN202011209723.4A CN202011209723A CN112163030A CN 112163030 A CN112163030 A CN 112163030A CN 202011209723 A CN202011209723 A CN 202011209723A CN 112163030 A CN112163030 A CN 112163030A
Authority
CN
China
Prior art keywords
data
sql
spark
encapsulation
field information
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
Application number
CN202011209723.4A
Other languages
English (en)
Inventor
杨翔鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Mininglamp Software System Co ltd
Original Assignee
Beijing Mininglamp Software System Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Mininglamp Software System Co ltd filed Critical Beijing Mininglamp Software System Co ltd
Priority to CN202011209723.4A priority Critical patent/CN112163030A/zh
Publication of CN112163030A publication Critical patent/CN112163030A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种多表批量操作方法、系统及计算机设备。多表批量操作方法包括:获取步骤:获取至少一待处理表的字段信息和封装数据;格式信息封装步骤:将字段信息转化为Spark‑SQL支持的StructType类型的格式信息;数据封装步骤:将字段信息对应的封装数据封装成Row类型数据;执行步骤:创建DataFrame,执行SQL逻辑对DataFrame进行处理。本发明基于通用Spark‑SQL处理数据的方式,将至少一待处理表数据整合到一个DataFrame中,进而提高Spark‑SQL处理的效率,在满足单一表的数据处理的同时,还能满足多张表的数据处理。

Description

多表批量操作方法、系统及计算机设备
技术领域
本申请涉及数据处理领域,尤其涉及一种基于Spark-SQL的多表批量操作方法、系统及计算机设备。
背景技术
大数据技术是目前较为热门的一项技术,指对规模巨大的数据进行查询、分析等处理的技术。随着大数据时代的来临,与大数据相关的数据仓库、数据安全、数据分析、数据挖掘等应用已逐渐成为IT行业的研究热点。其中,诞生于加州大学伯利克分校AMP Lab的Apache Spark是一个基于内存计算的大数据计算框架,它是Map Reduce(MR)的替代方案,目的在于提供更高效的数据处理能力,且其能够兼容HDFS分布式存储层,兼容Apache Hive元数据仓库,可融入Hadoop的生态系统,以弥补失Map Reduce的不足。基于Spark SQL对诸如Apache Hive等的标的产品实现计算逻辑,相比于Map Reduce而言能够提高处理性能。目前针对相关技术中,存在以下瓶颈,尚未提出有效解决方案:
1、Map Reduce不能满足大部分大数据场景下的处理。
2、大多数应用场景下,Spark任务处理都是单一表进行的,当任务需要同时处理多张表的数据时,就需要在之前的技术基础上进行额外的设计。
因此,针对以上现状,做出了一种基于Spark-SQL的多表批量操作方法及系统。本申请采用基于Spark-SQL对单表的处理方式,在面对灵活的业务数据时能够从中将相同的表数据整合到一个DataFream中,进而提高Spark-SQL处理的效率,满足了基本的单表需求的同时还能满足多张表的数据处理。
发明内容
本申请实施例提供了一种基于Spark-SQL的多表批量操作方法、系统及计算机设备,以至少解决相关技术中主观因素影响的问题。
本发明提供了一种多表批量操作方法,基于Spark-SQL,其中,包括:
获取步骤:获取至少一待处理表的字段信息和封装数据;
格式信息封装步骤:将所述字段信息的类型转化为Spark-SQL支持的类型;
数据封装步骤:将所述字段信息对应的所述封装数据封装成Row类型数据;
执行步骤:创建DataFrame,执行SQL逻辑对所述DataFrame进行处理。
上述的多表批量操作方法,其中,所述待处理表的名称将至少一所述待处理表进行分类,获取每一分类中的一个所述待处理表的字段信息和封装数据。
上述的多表批量操作方法,其中,所述格式信息封装步骤具体包括:将所述字段信息转化为Spark-SQL支持的StructType类型。
上述的多表批量操作方法,其中,所述数据封装步骤具体包括:将同一类型的所述待处理表中每一行的所述封装数据封装为Row类型的集合。
上述的多表批量操作方法,其中,所述执行步骤具体包括:
第三封装步骤:将StructType类型的所述字段信息和Row类型的集合封装到一个实体类中;
转化步骤:将同一类型的实体类转化为一个DataFrame;
操作步骤:执行SQL逻辑后SparkSession开始批量处理表中数据。
第二方面,本申请实施例提供了多表批量操作系统,适用于上述多表批量操作方法,包括信息获取单元、格式信息封装单元、数据封装单元、执行单元,其中:
获取单元:获取至少一待处理表的字段信息和封装数据;
格式信息封装单元:将所述字段信息的类型转化为Spark-SQL支持的类型;
数据封装单元:将所述字段信息对应的所述封装数据封装成Row类型数据;执行单元:创建DataFrame,执行SQL逻辑对所述DataFrame进行处理。
上述的多表批量操作方法,其中,所述待处理表的名称将至少一所述待处理表进行分类,获取每一分类中的一个所述待处理表的字段信息和封装数据。
上述的多表批量操作方法,其中,所述格式信息封装单元将所述字段信息转化为Spark-SQL支持的StructType类型;所述数据封装单元将同一类型的所述待处理表中每一行的所述封装数据封装为Row类型的集合类型。
上述的多表批量操作方法,其中,所述执行单元包括封装模块、转化模块、操作模块,其中:
封装模块:将StructType类型和Row类型的集合封装到一个实体类中;
转化模块:将同一类型的把实体类转化为一个DataFrame;
操作模块:执行SQL逻辑后SparkSession开始批量处理表中数据。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上述第一方面所述的多表批量操作方法。
相比于相关技术,本申请实施例提供的一种基于Spark-SQL的多表批量操作方法及系统,基于Spark-SQL对单表的处理方式,在面对灵活的业务数据时封装了一种针对多张表多种字段信息批量处理的方式,进而提高Spark-SQL处理的效率,满足了基本的单表需求的同时也支持了灵活度更高的多表场景。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的多表批量操作方法流程图;
图2是根据本申请实施例的执行步骤流程图;
图3是根据本申请实施例的多表批量操作方法及系统框架图;
图4为本发明的多表批量操作系统的结构示意图
图5是根据本申请实施例的计算机设备的框架图。
其中,附图标记为:
信息获取单元:11;
格式信息封装单元:12;
数据封装单元:13;
执行单元:14;
封装模块:141;
转化模块:142;
操作模块:143;
81:处理器;
82:存储器;
83:通信接口;
80:总线。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本发明利用了Spark-SQL数据处理模块,下面进行简要的介绍。
Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UCBerkeley AMP lab(加州大学伯克利分校的AMP实验室)所开源的类Hadoop Map Reduce的通用并行框架,Spark,拥有Hadoop Map Reduce所具有的优点;但不同于Map Reduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的Map Reduce的算法。Spark是一种与Hadoop相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使Spark在某些工作负载方面表现得更加优越,换句话说,Spark启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。Spark是在Scala语言中实现的,它将Scala用作其应用程序框架。与Hadoop不同,Spark和Scala能够紧密集成,其中的Scala可以像操作本地集合对象一样轻松地操作分布式数据集。尽管创建Spark是为了支持分布式数据集上的迭代作业,但是实际上它是对Hadoop的补充,可以在Hadoop文件系统中并行运行。
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。本质是将HQL转换为MapReduce程序。Hive的设计目标是使Hadoop上的数据操作与传统SQL相结合,让熟悉SQL编程开发人员能够轻松向Hadoop平台迁移。Hive提供类似SQL的查询语言HQL,HQL在底层被转换为相应的MapReduce操作。Hive在HDFS上构建数据仓库来存储结构化的数据,这些数据一般来源与HDFS上的原始数据,使用Hive可以对这些数据执行查询、分析等操作。Hive的数据模型包括Hive数据库、内部表、外部表、分区、桶、Hive的视图等。Hive在创建内部表时,会将数据移动到数据仓库指向的路径,若创建外部表,仅记录数据所在的路径,不对数据位置做任何改变,在删除表的时候,内部表的元数据和数据会被一起删除,外部表只会删除元数据,不删除数据。这样来说,外部表要比内部表安全,数据组织液更加灵活,方便共享源数据。Hive的调用方式为HiveShell、Thrift、JDBC、ODBC;Hive的运行机制是将sql转换成抽象语法树后将抽象语法树转化成查询块,然后将查询块转换成逻辑查询计划(操作符树),最终将逻辑计划转换成物理计划(M\Rjobs)。Hive的优势为并行计算;充分利用集群的CPU计算资源、存储资源;处理大规模数据集;使用SQL,学习成本低。Hive应用场景是海量数据处理、数据挖掘、数据分析、SQL是商务智能工具的通用语言,Hive有条件和这些BI产品进行集成。
Spark SQL是Spark用来处理结构化数据的一个模块,它提供了两个编程抽象分别叫做Data Frame和Data Set,它们用于作为分布式SQL查询引擎。Spark SQL有如下特点:支持多种数据源,Hive、RDD、Parquet、Json、JDBC等;多种性能优化技术;组件扩展性,对于SQL的语法解析器、分析器以及优化器,用户可以自己重新开发,且可以动态扩展。Spark SQL提供了DataFrame和DataSet的数据抽象,DataFrame就是RDD+字段信息,可以认为是一张二维表格,劣势在于编译器不进行表格中的字段的类型检查,在运行期进行检查;DataSet是Spark最新的数据抽象,Spark的发展会逐步将DataSet作为主要的数据抽象,弱化RDD和DataFrame.DataSet包含了DataFrame所有的优化机制。除此之外提供了以样例类为字段信息模型的强类型。DataFrame和DataSet都有可控的内存管理机制,所有数据都保存在非堆上,都使用了catalyst进行SQL的优化。DataFrame支持两种查询方式:一种是DSL风格,另外一种是SQL风格。DSL风格需要引入import spark.implicit._这个隐式转换,可以将DataFrame隐式转换成RDD类型;SQL风格需要将DataFrame注册成一张表格,如果通过CreateTempView这种方式来创建,那么该表格Session有效,如果通过CreateGlobalTempView来创建,那么该表格跨Session有效,但是SQL语句访问该表格的时候需要加上前缀global_temp,还需要通过sparkSession.sql方法来运行你的SQL语句。
RDD,全称为Resilient Distributed Datasets,意为容错的、并行的数据结构,可以让用户显式地将数据存储到磁盘和内存中,并能控制数据的分区。同时,RDD还提供了一组丰富的操作来操作这些数据。RDD的特点如下,它是在集群节点上的不可变的、已分区的集合对象;通过并行转换的方式来创建如(map,filter,join,etc);失败自动重建;可以控制存储级别(内存、磁盘等)来进行重用;必须是可序列化的;是静态类型的。RDD核心概念如下:Client是客户端进程,负责提交作业到Master;Master是Standalone模式中主控节点,负责接收Client提交的作业,管理Worker,并命令Worker启动分配Driver的资源和启动Executor的资源;Worker是Standalone模式中slave节点上的守护进程,负责管理本节点的资源,定期向Master汇报心跳,接收Master的命令,启动Driver和Executor;Driver是一个Spark作业运行时包括一个Driver进程,也是作业的主进程,负责作业的解析、生成Stage并调度Task到Executor上。包括DAGScheduler,TaskScheduler;Executor即真正执行作业的地方,一个集群一般包含多个Executor,每个Executor接收Driver的命令Launch Task,一个Executor可以执行一到多个Task。
本发明主要是基于通用Spark-SQL处理数据的方式,主要思想是:基于Spark-SQL对单表的处理方式,封装了一种针对多张表多种字段信息批量处理的方法,在面对灵活的业务数据时能够从中将相同的表数据整合到一个DataFrame中,进而提高Spark-SQL处理的效率,满足了基本的单表需求的同时也支持了灵活度更高的多表场景。
下面将以Spark-SQL处理数据的方式为例对本申请实施例进行说明。
实施例一
本实施例提供了一种基于Spark-SQL的多表批量操作方法。请参照图1-图3,图1是根据本申请实施例的多表批量操作方法流程图;图2是根据本申请实施例的执行步骤流程图;图3是根据本申请实施例的多表批量操作方法及系统框架图;如图1-图3所示,基于Spark-SQL的多表批量操作方法包括如下步骤:
获取步骤S1:获取至少一待处理表的字段信息(Schema)和封装数据(Data);
格式信息封装步骤S2:将所述字段信息(Schema)转化为Spark-SQL支持的StructType类型的格式信息。
数据封装步骤S3:将所述字段信息(Schema)对应的所述封装数据(Data)封装成Row类型数据(Seq[Row]);
执行步骤S4:创建DataFrame,执行SQL逻辑对所述DataFrame进行处理。
实施例中,所述获取步骤具体包括:根据类型将至少一所述待处理表进行分类,从分类后的所述待处理表中获取每一所述待处理表的所述字段信息(Schema)和所述封装数据(Data)。
实施例中,所述格式信息封装步骤具体包括:将所述字段信息(Schema)转化为Spark-SQL支持的StructType类型。
实施例中,所述数据封装步骤具体包括:将同一类型的所述待处理表中每一行的所述封装数据(Data)封装Row类型的集合(Seq[Row])。
进一步地,所述执行步骤S4具体包括:
第三封装步骤S41:将StructType类型和Row类型的集合(Seq[Row])封装到一个实体类(bean)中;
转化步骤S42:将同一类型的把实体类(bean)转化为一个DataFrame;
操作步骤S43:执行SQL逻辑后SparkSession开始批量处理表中数据。
由此,本发明基于Spark-SQL对单表的处理方式,封装了一种针对多张表多种字段信息批量处理的方法,在面对灵活的业务数据时能够从中将相同的表数据整合到一个DataFrame中,进而提高Spark-SQL处理的效率,满足了基本的单表需求的同时也支持了灵活度更高的多表场景。
实施例二
请参照图4,图4为本发明的多表批量操作系统的结构示意图。如图4所示,本发的多表批量操作系统基于Spark-SQL,适用于上述的基于Spark-SQL的多表批量操作方法,多表批量操作系统包括信息获取单元11、格式信息封装单元12、数据封装单元13及执行单元14,其中:
信息获取单元11,获取至少一待处理表的字段信息(Schema)和封装数据(Data);
格式信息封装单元12,将所述字段信息(Schema)转化为Spark-SQL支持的StructType类型的格式信息;
数据封装单元13,将所述字段信息(Schema)对应的所述封装数据(Data)封装成Row类型的集合(Seq[Row]);
执行单元14,创建Data Frame,执行SQL逻辑对所述Data Frame进行处理。
在本实施例中,获取单元11从至少一所述待处理表中提取所述待处理表,并获取所述待处理表的所述字段信息(Schema)和所述封装数据(Data)。
在本实施例中,所述格式信息封装单元12将所述字段信息(Schema)转化为Spark-SQL支持的StructType类型;所述数据封装单元13将同一类型的所述待处理表中每一行的所述封装数据(Data)封装为Row类型的集合类型(Seq[Row])。
进一步地,所述执行单元14包括封装模块141、转化模块142及操作模块,其中:
封装模块141:将StructType类型和Row类型的集合封装到一个实体类(bean)中;
转化模块142:将同一类型的把实体类(bean)转化为一个DataFrame;
操作模块143:执行SQL逻辑后SparkSession开始批量处理表中数据。
实施例三
结合图5所示,本实施例揭示了一种计算机设备的一种具体实施方式。计算机设备可以包括处理器81以及存储有计算机程序指令的存储器82。
具体地,上述处理器81可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器82可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器82可包括硬盘驱动器(Hard Disk Drive,简称为HDD)、软盘驱动器、固态驱动器(SolidState Drive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(Universal SerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器82可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器82可在数据处理装置的内部或外部。在特定实施例中,存储器82是非易失性(Non-Volatile)存储器。在特定实施例中,存储器82包括只读存储器(Read-Only Memory,简称为ROM)和随机存取存储器(RandomAccess Memory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(Programmable Read-Only Memory,简称为PROM)、可擦除PROM(Erasable ProgrammableRead-Only Memory,简称为EPROM)、电可擦除PROM(Electrically Erasable ProgrammableRead-Only Memory,简称为EEPROM)、电可改写ROM(Electrically Alterable Read-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(Static Random-Access Memory,简称为SRAM)或动态随机存取存储器(Dynamic Random Access Memory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器(Fast Page Mode Dynamic Random Access Memory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(Extended Date Out Dynamic RandomAccess Memory,简称为EDODRAM)、同步动态随机存取内存(Synchronous Dynamic Random-Access Memory,简称SDRAM)等。
存储器82可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器81所执行的可能的计算机程序指令。
处理器81通过读取并执行存储器82中存储的计算机程序指令,以实现上述实施例中的任意一种文件系统容量管理优化方法、。
在其中一些实施例中,计算机设备还可包括通信接口83和总线80。其中,如图5所示,处理器81、存储器82、通信接口83通过总线80连接并完成相互间的通信。
通信接口83用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。通信端口83还可以实现与其他部件例如:外接设备、图像/数据采集设备、数据库、外部存储以及图像/数据处理工作站等之间进行数据通信。
总线80包括硬件、软件或两者,将计算机设备的部件彼此耦接在一起。总线80包括但不限于以下至少之一:数据总线(Data Bus)、地址总线(Address Bus)、控制总线(Control Bus)、扩展总线(Expansion Bus)、局部总线(Local Bus)。举例来说而非限制,总线80可包括图形加速接口(Accelerated Graphics Port,简称为AGP)或其他图形总线、增强工业标准架构(Extended Industry Standard Architecture,简称为EISA)总线、前端总线(Front Side Bus,简称为FSB)、超传输(Hyper Transport,简称为HT)互连、工业标准架构(Industry Standard Architecture,简称为ISA)总线、无线带宽(InfiniBand)互连、低引脚数(Low Pin Count,简称为LPC)总线、存储器总线、微信道架构(Micro ChannelArchitecture,简称为MCA)总线、外围组件互连(Peripheral Component Interconnect,简称为PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(Serial AdvancedTechnology Attachment,简称为SATA)总线、视频电子标准协会局部(Video ElectronicsStandards Association Local Bus,简称为VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线80可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
该计算机设备可以Spark-SQL的多表批量操作系统,从而实现结合图2描述的方法。
另外,结合上述实施例中基于Spark-SQL的多表批量操作方法,本申请实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种Spark-SQL的多表批量操作方法
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种多表批量操作方法,其特征在于,基于Spark-SQL,所述多表批量操作方法包括以下步骤:
获取步骤:获取至少一待处理表的字段信息和封装数据;
格式信息封装步骤:将所述字段信息的类型转化为Spark-SQL支持的类型;
数据封装步骤:将所述字段信息对应的所述封装数据封装成Row类型数据;
执行步骤:创建DataFrame,执行SQL逻辑对所述DataFrame进行处理。
2.根据权利要求1所述的多表批量操作方法,其特征在于,所述获取步骤具体包括:根据所述待处理表的名称将至少一所述待处理表进行分类,获取每一分类中的一个所述待处理表的字段信息和封装数据。
3.根据权利要求1所述的多表批量操作方法,其特征在于,所述格式信息封装步骤具体包括:将所述字段信息转化为Spark-SQL支持的StructType类型。
4.根据权利要求1所述的多表批量操作方法,其特征在于,所述数据封装步骤具体包括:将同一类型的所述待处理表中每一行的所述封装数据封装为Row类型的集合。
5.根据权利要求1所述的多表批量操作方法,其特征在于,所述执行步骤具体包括:
第三封装步骤:将StructType类型的所述字段信息和Row类型的集合封装到一个实体类中;
转化步骤:将同一类型的实体类转化为一个DataFrame;
操作步骤:执行SQL逻辑后SparkSession开始批量处理表中数据。
6.一种多表批量操作系统,其特征在于,基于Spark-SQL,适用于上述权利要求1-5所述的基于Spark-SQL的多表批量操作方法,包括信息获取单元、格式信息封装单元、数据封装单元、执行单元,其中:
获取单元:获取至少一待处理表的字段信息和封装数据;
格式信息封装单元:将所述字段信息的类型转化为Spark-SQL支持的类型;
数据封装单元:将所述字段信息对应的所述封装数据封装成Row类型数据;
执行单元:创建DataFrame,执行SQL逻辑对所述DataFrame进行处理。
7.根据权利要求6所述的多表批量操作系统,其特征在于,根据所述待处理表的名称将至少一所述待处理表进行分类,获取每一分类中的一个所述待处理表的字段信息和封装数据。
8.根据权利要求7所述的多表批量操作系统,其特征在于,所述格式信息封装单元将所述字段信息转化为Spark-SQL支持的StructType类型;所述数据封装单元将同一类型的所述待处理表中每一行的所述封装数据封装为Row类型的集合类型。
9.根据权利要求8所述的多表批量操作系统,其特征在于,所述执行单元包括封装模块、转化模块、操作模块,其中:
封装模块:将StructType类型和Row类型的集合封装到一个实体类中;
转化模块:将同一类型的把实体类转化为一个DataFrame;
操作模块:执行SQL逻辑后SparkSession开始批量处理表中数据。
10.一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5中任一项所述的多表批量操作方法。
CN202011209723.4A 2020-11-03 2020-11-03 多表批量操作方法、系统及计算机设备 Pending CN112163030A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011209723.4A CN112163030A (zh) 2020-11-03 2020-11-03 多表批量操作方法、系统及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011209723.4A CN112163030A (zh) 2020-11-03 2020-11-03 多表批量操作方法、系统及计算机设备

Publications (1)

Publication Number Publication Date
CN112163030A true CN112163030A (zh) 2021-01-01

Family

ID=73865525

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011209723.4A Pending CN112163030A (zh) 2020-11-03 2020-11-03 多表批量操作方法、系统及计算机设备

Country Status (1)

Country Link
CN (1) CN112163030A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113486016A (zh) * 2021-07-19 2021-10-08 瀚高基础软件股份有限公司 一种在SQL数据库中兼容MySQL删除多表的方法及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017096941A1 (zh) * 2015-12-11 2017-06-15 深圳市华讯方舟软件技术有限公司 一种基于Spark-SQL大数据处理平台的后台刷新方法
CN109063017A (zh) * 2018-07-12 2018-12-21 广州市闲愉凡生信息科技有限公司 一种云计算平台的数据持久化分布方法
CN110909066A (zh) * 2019-12-06 2020-03-24 中科院计算技术研究所大数据研究院 一种基于SparkSQL和RestAPI的流数据处理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017096941A1 (zh) * 2015-12-11 2017-06-15 深圳市华讯方舟软件技术有限公司 一种基于Spark-SQL大数据处理平台的后台刷新方法
CN109063017A (zh) * 2018-07-12 2018-12-21 广州市闲愉凡生信息科技有限公司 一种云计算平台的数据持久化分布方法
CN110909066A (zh) * 2019-12-06 2020-03-24 中科院计算技术研究所大数据研究院 一种基于SparkSQL和RestAPI的流数据处理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113486016A (zh) * 2021-07-19 2021-10-08 瀚高基础软件股份有限公司 一种在SQL数据库中兼容MySQL删除多表的方法及存储介质
CN113486016B (zh) * 2021-07-19 2023-07-14 瀚高基础软件股份有限公司 一种在SQL数据库中兼容MySQL删除多表的方法及存储介质

Similar Documents

Publication Publication Date Title
Xie et al. Simba: Efficient in-memory spatial analytics
You et al. Large-scale spatial join query processing in cloud
Doulkeridis et al. A survey of large-scale analytical query processing in MapReduce
Yuan et al. Spark-GPU: An accelerated in-memory data processing engine on clusters
Alexandrov et al. The stratosphere platform for big data analytics
US8548986B2 (en) Adaptive row-batch processing of database data
US8364751B2 (en) Automated client/server operation partitioning
Yan et al. Incmr: Incremental data processing based on mapreduce
US20200265090A1 (en) Efficient graph query execution engine supporting graphs with multiple vertex and edge types
Chattopadhyay et al. Procella: Unifying serving and analytical data at YouTube
You et al. Spatial join query processing in cloud: Analyzing design choices and performance comparisons
Aji et al. Haggis: turbocharge a MapReduce based spatial data warehousing system with GPU engine
Han et al. Distme: A fast and elastic distributed matrix computation engine using gpus
Choi et al. Vispark: GPU-accelerated distributed visual computing using spark
Koutsoukos et al. Modularis: Modular relational analytics over heterogeneous distributed platforms
EP3779720B1 (en) Transaction processing method and system, and server
CN111078705A (zh) 基于Spark平台建立数据索引方法及数据查询方法
CN112163030A (zh) 多表批量操作方法、系统及计算机设备
Wang et al. Sparkarray: An array-based scientific data management system built on apache spark
Chao-Qiang et al. RDDShare: reusing results of spark RDD
CN115982230A (zh) 数据库的跨数据源查询方法、系统、设备及存储介质
CN112835932B (zh) 业务表的批量处理方法及装置、非易失性存储介质
Jayalath et al. Efficient Geo-distributed data processing with rout
Gruska et al. Integrating mapreduce and rdbmss
CN113886358A (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