Streamsets 定制组件开发指引

SDC-定制组件

一.SDC组件介绍

SDC组件主要分为以下三类(符合ETL的概念):

​ a)Source数据抽取组件:从文件或服务抽取数据的组件

​ b)Processor数据转化组件:处理和转化数据的组件

​ c)Target数据载入组件:将数据持久化的组件

​ *额外的一类:执行器组件,一种特殊的Target组件,不像普通Target组件那样持久化数据,而是将数据输出到外部系统,由外部系统对记录执行额外的操作,通常用来处理异常数据和事件,类似场景有:错误数据处理,可将错误数据输出到文件,或者别的管道,也可以出现错误记录时停止管道;事件动作监听,比如源组件发出没有更多数据的事件,Pipeline Finisher Executor组件可以监听该事件并停止整个管道。

二.组件代码uml结构

在这里插入图片描述

​ 通过分析uml结构可以知道,SDC组件都是实现自Stage接口。其下又有三个子接口,与前面组件介绍的分类对应。

​ 因为代码是开源的,相应接口都可以看到具体的实现案例,这里以Processor类的组件举个例子。

​ Processor的作用是将一个源或者前一个Processor发送的数据执行对应操作后发送给目标或另一个Processor。

三.Processor组件实现简介

3.1 数据处理逻辑

​ SDC启动流程,对Processor类别组件方法的调用顺序为:

  1. List init();

    初始化方法,在处理数据前执行一次,其返回为一个ConfigIssue列表,当列表为空时,流程才能正常启动,不为空则将ConfigIssue内容显示在界面上,提示相应的配置建议。

  2. void process();

    数据处理方法,组件初始化结束后在这个方法对数据分批处理。

  3. void destroy();

    销毁方法,管道执行结束时调用,用来释放资源的方法,初始化失败也会调用该方法,用来释放已经初始化的内容。

​ 通常情况下,需要对每条记录都进行处理,并且输出为单个流时,定制组件开发只需要继承SDC提供的SingleLaneRecordProcessor类即可,该抽象类定义了将批量数据处理成单条记录的方法,以及处理异常时的基本操作,并将处理后的数据放在SingleLaneBatchMaker中交给下一步。

自定义的类只需要重写以下process方法即可处理每条记录。

protected abstract void process(Record record, SingleLaneBatchMaker batchMaker) throws StageException;

​ 有时,我们开发组件需要预加载数据,或者对配置的参数进行校验提醒,那么就需要重写init()方法。

​ 如果在init阶段缓存了额外的数据,记得重写destroy()方法是释放对应资源,防止性能损耗无法及时释放。

3.2 组件配置项编写

​ 在编写对应处理逻辑前,需要创建一个DProcessor的子类,该类中定义了流程处理需要的参数配置项,并且SDC启动时会加载相应的配置,使其展现在界面上。

在这里插入图片描述

其中可配置诸如:组件图标,组件名称,组件介绍,参数介绍,参数默认值,参数类型等等。

其他细节的编写可以参考已有的组件,后续将会在git工程中加入更多组件,以便参考和管理。

3.3 组件的使用

​ 1.组件安装:

​ 1)maven打包组件

​ 2)将tar包上传至SDC目录,/streamsets-datacollector-3.17.1/user-libs/目录下解压tar包

​ 3)重启sdc之后即可在设计环节选择自己开发的组件

3.4 开源社区组件开发教学:

https://github.com/streamsets/tutorials

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
StreamSets是一款开源的数据流管道解决方案,适用于实时数据处理和ETL(Extract, Transform, Load)任务。它提供了一个可视化界面,使用户能够轻松地创建、管理和监控数据流管道。 StreamSets具有很多功能和优势。首先,它支持各种数据来源和目标,包括关系数据库、文件系统、消息队列等等,使用户能够方便地从各种数据源中获取数据并将其发送到目标位置。 其次,StreamSets提供了强大的数据转换和处理功能。用户可以使用内置的转换器和处理器来执行各种操作,如数据清洗、格式转换、过滤等等。此外,StreamSets还支持自定义转换器和处理器,以满足用户的特定需求。 另外,StreamSets具有很强的实时性能。它能够以非常低的延迟处理大量的数据,并且支持容错和高可用性,确保数据流管道的稳定和可靠性。 在使用StreamSets时,用户可以通过可视化界面轻松地创建和配置数据流管道。它提供了丰富的图形化组件和工具,使用户能够直观地理解和管理数据流。此外,StreamSets还提供了实时的监控和报警功能,用户可以随时了解管道的状态和性能。 总而言之,StreamSets是一款功能强大且易于使用的数据流管道解决方案。它能够帮助用户处理实时数据并实现ETL任务,提高数据处理的效率和可靠性。无论是在大数据领域还是传统数据处理领域,StreamSets都是一个值得考虑和尝试的工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值