写点什么

Java 开发 Spark ELT 实践(一)

用户头像
团子粑粑
关注
发布于: 2020 年 07 月 28 日
Java开发Spark ELT实践(一)

1、什么是ELT

数据工程师,多数情况下接触过ETL,即提取(Extract)、转换(Transform)、加载(Load),随着越来越多的计算平台能力的崛起,很多时候,数据工程师按照ELT进行数据操作,即按照提取(Extract)、加载(Load)、转换(Transform),此好处就是,数据的转换可以借助于强大的计算平台,而数据同步工具只需要更多的关注数据的提取和加更加简单快捷的为开发者提高效率。

2、为什么选择Spark

a)在日益增长的业务数据同步过程中,很多传统ETL工具都是单机运行,搭建一套具备大规模数据处理能力的数据同步系统成为大数据分析系统中不可或缺的环节。由于Spark可运行于分布式平台并且对各种数据库的访问都实现了良好的支持,使用Spark来开发数据同步工具成为一个不错的选择;

b)Spark DataFrame提供了丰富的操作API且可以直接基于DataFrame进行SQL操作,在EL过程中且可以进行一些简单的数据转换;

c)Spark程序部署简单,只需要使用spark-submit命令提交代码即可。

2.1、Spark ETL不带T

本次实践不进行转换(Transform)实战,只进行简单的EL操作实战,旨在为了能够熟练使用Spark进行多种异构数源之间数据同步。

2.3、Java Spark Read on MySQL



public class MySQlReader {
public Dataset<Row> reader(SparkSession sparkSession, ConfigTableInfoBean configTableInfoBean){
Dataset<Row> rowDataset = sparkSession.read()
.format("jdbc")
.option("url", configTableInfoBean.getSrcUrl())
.option("dbtable", configTableInfoBean.getSrcTableName())
.option("user", configTableInfoBean.getSrcUserName())
.option("password", configTableInfoBean.getSrcPassWord())
.option("driver", "com.mysql.cj.jdbc.Driver").load();
return rowDataset;
}
}

如上代码,只需要填写入对应的MySQL信息,既可进行Spark对MySQL的读取。

2.4、后续将继续带来不同异构数据源的读取
发布于: 2020 年 07 月 28 日阅读数: 109
用户头像

团子粑粑

关注

底层码农 2020.06.06 加入

还未添加个人简介

评论

发布
暂无评论
Java开发Spark ELT实践(一)