CN107885779A - 一种Spark并行访问MPP数据库的方法 - Google Patents

一种Spark并行访问MPP数据库的方法 Download PDF

Info

Publication number
CN107885779A
CN107885779A CN201710946027.3A CN201710946027A CN107885779A CN 107885779 A CN107885779 A CN 107885779A CN 201710946027 A CN201710946027 A CN 201710946027A CN 107885779 A CN107885779 A CN 107885779A
Authority
CN
China
Prior art keywords
spark
mpp
node
mpp databases
databases
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
CN201710946027.3A
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 Kingbase Information Technologies Co Ltd
Original Assignee
Beijing Kingbase Information Technologies 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 Kingbase Information Technologies Co Ltd filed Critical Beijing Kingbase Information Technologies Co Ltd
Priority to CN201710946027.3A priority Critical patent/CN107885779A/zh
Publication of CN107885779A publication Critical patent/CN107885779A/zh
Pending legal-status Critical Current

Links

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

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)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种Spark并行访问MPP数据库的方法,包括以下步骤:Spark集群中的节点访问MPP数据库的入口,所述MPP数据库的入口收集表数据在MPP数据库集群中的分布信息并返回给Spark;Spark先将收到的每个数据节点作为一个分区,如果指定了关键列,则会依据关键列值的上下界,将每个分区再细分为多个分区;Spark将任务分配到执行节点,每个Spark执行节点通过JDBC连接对应的数据节点,Spark集群即可并行地访问MPP数据库。有益效果:Spark可以通过JDBC连接到集群的一个管理节点上,获取表数据在集群节点间的分布信息,然后通过JDBC连接到多个数据节点并行地获取表数据,大大提高访问速度。

Description

一种Spark并行访问MPP数据库的方法
技术领域
本发明涉及数据库技术领域,具体来说,涉及一种Spark并行访问MPP数据库的方法。
背景技术
从关系数据库读取数据,Spark可以使用DataFrame和JdbcRDD等方法。这些方法在接口上都提供一个JDBC连接串到数据库的入口(包含主机+端口号),在实现上通过JDBC连接到这一个入口节点访问数据库。
从性能角度考虑,这些方法对于单机数据库来说是可以接受的;但对于MPP数据库来说不可接受。因为对于MPP数据库来说,一个表的数据可能会分布在集群的多个数据节点上,而Spark只以一个管理节点作为入口访问数据库——即使JdbcRDD方法支持按关键列的值分区,可以并发多个连接到入口节点——但整体的性能瓶颈仍是(由JDBC连接串指定的)入口节点,无法充分发挥集群多机的性能优势。
以下为本发明中可能会涉及的一些关键术语:
Spark:一个快速的、通用的大规模数据处理引擎。
MPP:massively parallel processing,大规模并行处理技术。
管理节点:分布式数据库系统中,接受客户端连接并解释SQL,将工作分配给计算节点,向客户端返回结果集。
计算节点:存储和进行SQL计算的节点。
针对相关技术中的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中的上述技术问题,本发明提出一种Spark并行访问MPP数据库的方法,Spark可以通过JDBC连接到集群的一个管理节点上,获取表数据在集群节点间的分布信息,然后通过JDBC连接到多个数据节点并行地获取表数据。
为实现上述技术目的,本发明的技术方案是这样实现的:
一种Spark并行访问MPP数据库的方法,包括以下步骤:
S1 Spark集群中的节点访问MPP数据库的入口(管理节点1),管理节点1收集表数据在MPP数据库集群中的分布信息并返回给Spark,假设数据分布在数据节点1、2和3;
S2 Spark先将收到的每个数据节点作为一个分区(假设为分区1、2和3),如果指定了关键列,则会依据关键列值的上下界,将每个分区再细分为多个分区。
假设数据节点1上关键列的值范围为[1, 100000],那么将会把分区1划分为10个分区,分别查询键值为[1, 10000],[10001, 20000],……,[90001, 100000]的数据。对其他数据节点也同样以关键列值划分多个分区。
S3 Spark将任务分配到执行节点,每个Spark执行节点通过JDBC连接对应的数据节点,Spark集群即可并行地访问MPP数据库。
本发明的有益效果:Spark集群利用MPP数据库中数据在节点间的分布信息,进行动态的分区划分,利用框架通用的任务分配机制把分区分配给多个Spark执行节点来访问MPP数据库的多个节点,从而充分利用两个集群的多机优势,实现对MPP数据库的高度并行访问,大大提高访问速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例所述的一种Spark并行访问MPP数据库的方法的流程示意图;
图2是根据本发明实施例所述的一种Spark并行访问MPP数据库的方法的应用示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
如图1至2所示,根据本发明实施例所述的一种Spark并行访问MPP数据库的方法,包括以下步骤:
S1 Spark集群中的节点访问MPP数据库的入口(管理节点1),管理节点1收集表数据在MPP数据库集群中的分布信息并返回给Spark,假设数据分布在数据节点1、2和3;
S2 Spark先将收到的每个数据节点作为一个分区(假设为分区1、2和3),如果指定了关键列,则会依据关键列值的上下界,将每个分区再细分为多个分区。
假设数据节点1上关键列的值范围为[1, 100000],那么将会把分区1划分为10个分区,分别查询键值为[1, 10000],[10001, 20000],……,[90001, 100000]的数据。对其他数据节点也同样以关键列值划分多个分区。
S3 Spark将任务分配到执行节点,每个Spark执行节点通过JDBC连接对应的数据节点,Spark集群即可并行地访问MPP数据库。
为了方便理解本发明的上述技术方案,以下通过具体使用方式上对本发明的上述技术方案进行详细说明。
在具体使用时,根据本发明所述的一种Spark并行访问MPP数据库的方法,使用Scala语言实现MppRDD,以JAR包的形式供Spark调用。以Spark SQL为例,使用之前需要先import MppRDD。
具体实现代码可参考:
scala>import java.sql.DriverManager
import java.sql.DriverManager
scale>import org.apache.spark.rdd.MppRDD
import org.apache.spark.rdd.MppRDD
scala>val mpprdd=new MppRDD(sc,”jdbc:kingbaseanalyticsdb://localhost:5432/kingbase”,|”com.kingbase.kingbaseanalyticsdb.Driver”,”fgao”,””,”public.t1”,””,”a”,r=>(r.getInt(1),r.getString(2)))
mpprdd: org.apache.spark.rdd.MppRDD[(Int, String)] = MppRDD[7] at MppRDDat <console>: 35
scala> mpprdd.collect().foreach(println)
(1,hahaha)
(3,saprk)
(2,doooop)
(4,mpprdd)
jdbcUrl:必选。连接数据库的JDBC URL,形如"jdbc:subprotocol://host:port/database"。
jdbcDriver:必选。JDBC驱动名。
user:必选。访问数据库使用的用户名。
password:可选。访问数据库使用的密码。
dbTable:必选。要访问的数据库名,形如[schema.]tableName。
whereClause:可选。查询的过滤条件,默认查询全部数据。
keyColumn:可选。关键列名。如果指定关键列,则会依据关键列的值继续细分分区。最多可指定一列。
mapRow:必选。从ResultSet到期望的单行结果的映射函数。
综上所述,借助于本发明的上述技术方案,Spark可以通过JDBC连接到集群的一个管理节点上,获取表数据在集群节点间的分布信息,然后通过JDBC连接到多个数据节点并行地获取表数据,大大提高访问速度。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (2)

1.一种Spark并行访问MPP数据库的方法,其特征在于,包括以下步骤:
S1 Spark集群中的节点访问MPP数据库的入口,所述MPP数据库的入口收集表数据在MPP数据库集群中的分布信息并返回给Spark;
S2 Spark先将收到的每个数据节点作为一个分区;
S3 Spark将任务分配到执行节点,每个Spark执行节点通过JDBC连接对应的数据节点,Spark集群即可并行地访问MPP数据库。
2.根据权利要求1所述的Spark并行访问MPP数据库的方法,其特征在于,步骤S2中如果指定了关键列,则会依据关键列值的上下界,将每个分区再细分为多个分区。
CN201710946027.3A 2017-10-12 2017-10-12 一种Spark并行访问MPP数据库的方法 Pending CN107885779A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710946027.3A CN107885779A (zh) 2017-10-12 2017-10-12 一种Spark并行访问MPP数据库的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710946027.3A CN107885779A (zh) 2017-10-12 2017-10-12 一种Spark并行访问MPP数据库的方法

Publications (1)

Publication Number Publication Date
CN107885779A true CN107885779A (zh) 2018-04-06

Family

ID=61781425

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710946027.3A Pending CN107885779A (zh) 2017-10-12 2017-10-12 一种Spark并行访问MPP数据库的方法

Country Status (1)

Country Link
CN (1) CN107885779A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109145041A (zh) * 2018-07-18 2019-01-04 北京云星宇交通科技股份有限公司 一种数据访问方法及系统
CN110618860A (zh) * 2019-09-09 2019-12-27 中盈优创资讯科技有限公司 基于Spark的Kafka消费并发处理方法及装置
CN111159235A (zh) * 2019-12-20 2020-05-15 中国建设银行股份有限公司 数据预分区方法、装置、电子设备及可读存储介质
CN112181305A (zh) * 2020-09-30 2021-01-05 北京人大金仓信息技术股份有限公司 数据库集群网络分区选择方法和装置
CN112905854A (zh) * 2021-03-05 2021-06-04 北京中经惠众科技有限公司 数据处理方法、装置、计算设备及存储介质
CN114610959A (zh) * 2022-05-12 2022-06-10 恒生电子股份有限公司 数据处理方法、装置、设备及存储介质
CN116756150A (zh) * 2023-08-16 2023-09-15 浩鲸云计算科技股份有限公司 一种Mpp数据库大表关联加速方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160132527A1 (en) * 2012-06-27 2016-05-12 Emc Corporation Declarative cluster management
CN105765578A (zh) * 2013-11-26 2016-07-13 起元科技有限公司 分布式文件系统中的数据的并行访问
CN107066546A (zh) * 2017-03-20 2017-08-18 国家计算机网络与信息安全管理中心 一种基于mpp引擎的跨数据中心快速查询方法和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160132527A1 (en) * 2012-06-27 2016-05-12 Emc Corporation Declarative cluster management
CN105765578A (zh) * 2013-11-26 2016-07-13 起元科技有限公司 分布式文件系统中的数据的并行访问
CN107066546A (zh) * 2017-03-20 2017-08-18 国家计算机网络与信息安全管理中心 一种基于mpp引擎的跨数据中心快速查询方法和系统

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109145041A (zh) * 2018-07-18 2019-01-04 北京云星宇交通科技股份有限公司 一种数据访问方法及系统
CN110618860A (zh) * 2019-09-09 2019-12-27 中盈优创资讯科技有限公司 基于Spark的Kafka消费并发处理方法及装置
CN111159235A (zh) * 2019-12-20 2020-05-15 中国建设银行股份有限公司 数据预分区方法、装置、电子设备及可读存储介质
CN112181305A (zh) * 2020-09-30 2021-01-05 北京人大金仓信息技术股份有限公司 数据库集群网络分区选择方法和装置
CN112181305B (zh) * 2020-09-30 2024-06-07 北京人大金仓信息技术股份有限公司 数据库集群网络分区选择方法和装置
CN112905854A (zh) * 2021-03-05 2021-06-04 北京中经惠众科技有限公司 数据处理方法、装置、计算设备及存储介质
CN114610959A (zh) * 2022-05-12 2022-06-10 恒生电子股份有限公司 数据处理方法、装置、设备及存储介质
CN116756150A (zh) * 2023-08-16 2023-09-15 浩鲸云计算科技股份有限公司 一种Mpp数据库大表关联加速方法
CN116756150B (zh) * 2023-08-16 2023-10-31 浩鲸云计算科技股份有限公司 一种Mpp数据库大表关联加速方法

Similar Documents

Publication Publication Date Title
CN107885779A (zh) 一种Spark并行访问MPP数据库的方法
CN106776768B (zh) 一种分布式爬虫引擎的url抓取方法及系统
CN106790718A (zh) 服务调用链路分析方法及系统
CN103678550B (zh) 一种基于动态索引结构的海量数据实时查询方法
US8676951B2 (en) Traffic reduction method for distributed key-value store
US7526471B2 (en) Field-to-field join constraints
CN103020256B (zh) 一种大规模数据的关联规则挖掘方法
CN105488231B (zh) 一种基于自适应表维度划分的大数据处理方法
CN104111996A (zh) 基于hadoop平台的医保门诊大数据抽取系统及方法
CN109446279A (zh) 基于neo4j大数据血缘关系管理方法、系统、设备及存储介质
CN103631909B (zh) 对大规模结构化和非结构化数据联合处理的系统及方法
CN103729478B (zh) 基于MapReduce的LBS兴趣点发现方法
CN103646051B (zh) 一种基于列存储的大数据并行处理系统及方法
CN104361221A (zh) 基于异构系统数据映射模板的医疗数据采集系统及方法
CN106250519A (zh) 用于并行数据库的数据查询方法和装置
CN107066546B (zh) 一种基于mpp引擎的跨数据中心快速查询方法和系统
CN107480252A (zh) 一种数据查询方法、客户端、服务端及系统
CN107247799A (zh) 兼容多种大数据存储的数据处理方法、系统及其建模方法
Samwel et al. F1 query: Declarative querying at scale
CN106599190A (zh) 基于云计算的动态Skyline查询方法
WO2004097677A1 (en) Automatic data consolidation
Lorie et al. A low communication sort algorithm for a parallel database machine
CN1588358A (zh) 对mdx多维数据查询语句的处理方法和系统
CN104572862A (zh) 一种海量数据存储访问方法及系统
CN106156319A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180406