订阅
纠错
加入自媒体

SparkSQL对于批流支持的特性及批流一体化支持框架的难点

2020-12-24 12:10
EAWorld
关注

三、基于SparkStreaming

SQL模式的流式处理支持

SparkSQL-Flow 流式处理支持

ALL in SQL 的设计,能给数据开发人员提供极大方便,复杂SQL的表达能力也不弱。

SparkSQL-Flow 流式处理和批处理的配置没什么不同,定义一个流式 Source,如Kafka。流或批模式是由 Source 的实现决定。SparkSQL-Flow 在加载底层 SPI 来识别该 Source 是 Streaming 模式,还是批处理模式。加载时,配置的 Source 中有任意一个是 Streaming 类型,则认为是流处理模式。

SparkSQL-Flow流处理过程中的关联

在 ETL 或者一些实时流处理中,我们常常需要对数据做一些关联,如字典表关联、字段转义等操作。这在 数据处理业务场景中很常见。

我们在 Flow XML 中定义多个Source,这样在流处理过程中,流可以在任意 Transformer 中关联其他 Source 表中的字段。另外,我们可以对作为关联的 Source(Transformer的结果亦可) 做 cache 处理,这样根据 Spark 的模式,该表处于内存中,且整个Job 运行时不会再次触发该Source 的 Stage,可以提高性能。

除了使用 Select ... Join 的方式关联,还可以使用自定义 UDF 的方式关联字段,UDF 中可以有转换、调用数据库、可以调用 RESTApi 等等。

四、对于批流一体化ETL的思考

Kettle ETL 工具

提到 ETL 不得不提 Kettle。批、流、数据源、多样性 大多数设计的ETL工具在他面前都相形见绌。

Kettle 作业是生成了一个 dbr 文件,该 dbr 本质上是 Kettle 支持的特有规范的一种 XML,Kettle 是实现了执行该 XML 规范的一种解释器。

但是 Kettle 的缺点很明显,他的数据处理都是 Local 模式,对于大数据系统,把数据拉到运行节点再计算缺陷是很明显的。并且作业无法并行化,云化,无法利用大规模集群的算力。

DataX

DataX 是阿里开源的一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。

DataX设计理念

DataX本身作为数据同步框架,将不同数据源的同步抽象为从源头数据源读取数据的Reader插件,以及向目标端写入数据的Writer插件,理论上DataX框架可以支持任意数据源类型的数据同步工作。同时DataX插件体系作为一套生态系统, 每接入一套新数据源该新加入的数据源即可实现和现有的数据源互通。

DataX 理论上也支持流处理,不过他的处理方式跟 Spark 类似,流是当做无限的批来处理。如果了解SpringBatch的话,DataX 更像是多线程的 SpringBatch 的架构。DataX 没有提供设计器,他提供了丰富的Reader和Writer和易扩展的插件系统。和 Kettle一样,DataX 也需要把数据拉到本地计算,并不具有分布式处理能力。

理想中的批流一体ETL

具有如 Kettle 般的算子表达能力,又具有完全的大数据处理能力。

SparkSQL-Flow 是基于Spark架构,天生具有分布式、本地计算、完全SQL开发的批流一体化计算框架。

数据中台之批流融合框架和产品

框架、计算平台:

1.Spark

2.Flink

3.Datax

4.SparkSQL-Flow

相关产品:

1.DataWorks

2.DataPipeline

DataWorks:  DataWorks(数据工场,原大数据开发套件)是阿里云重要的PaaS(Platform-as-a-Service)平台产品,为您提供数据集成、数据开发、数据地图、数据质量和数据服务等全方位的产品服务,一站式开发管理的界面,帮助企业专注于数据价值的挖掘和探索。

DataPipeline: 批流一体的数据融合平台 .主要用于各类数据融合、数据交换场景。支持大数据、分布式、水平扩展、图形化设计器的数据交换平台。

SparkSQL-Flow实现了一个以SparkSQL为基础,以XML为载体的一种批流解释器。在国内某大型保险内供数项目所使用。大大减少了Spark程序开发难度,并且有预留了Spark原生优化。且以SQL的方式开发数据大大降低了业务梳复杂度以及保证了供数、验数算法口径的一致性。

关于作者:震秦,普元资深开发工程师。专注于大数据开发 8 年,擅长 Hadoop 生态内各工具的使用、优化和部分定制开发。曾参与国内多省市公安项目实施,负责大数据数仓设计、批处理和调度工具实现。

关于EAWorld:使能数字转型,共创数智未来!

<上一页  1  2  3  
声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

人工智能 猎头职位 更多
扫码关注公众号
OFweek人工智能网
获取更多精彩内容
文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号