本文将从以下几个方面展开对阿里云EventBridgeTransform能力的介绍:
1)首先介绍ETL基本概念;
2)接着介绍T(Transform)的能力;
3)最后探讨EventBridgeTransform能力及落地场景。
ETL表示的是数据提取(Extract)、转换(Transform)和加载(Load)的过程,是数据集成的核心任务。三个步骤的主要作用如下:
从数据源中提取数据,数据源可以是各种数据存储系统,比如消息队列、数据库等。
对提取的数据进行转换操作,比如数据富化、数据清洗、数据聚合、数据拆分、格式转换等。
将经过转换后的数据加载到目标服务中,比如数据仓库、数据湖、BI系统等。ETL应用广泛,它可以帮助企业管理和利用数据,实现数据驱动的决策和业务转型。
ETL中的T(Transform)可以对提取的数据进行转换操作,它具体的使用场景如下:
调用外部服务获取额外信息丰富原始数据,提高数据的完整度和可应用性。
对原始数据进行清洗或验证,去除重复、缺失或者不准确的数据,确保数据的质量和准确性,或者对数据中的信息进行脱敏,确保数据的安全性。
将多条原始数据进行合并,形成一个统一的数据视图,便于后续的快速分析和查询。
将单条原始数据根据业务需求拆分为多条数据。
将上游数据转换为目标服务可接受的格式,比如将Base64、Avro、PB等格式的原始数据统一转换为json格式。
通过Transform,可以将原始数据转化为一致性、准确性和安全性兼具的高质量数据,为后续的数据分析等操作提供可靠的基础。
目前业界的Transform能力,常见的做法有以下几类:
数据清洗:去除数据中的敏感字段、处理噪音数据等。
数据格式转换:将数据中的指定字段转换为特定格式。
用户可自定义Transform的逻辑。这种常见的做法是:用户根据CustomTransform的接口规范,实现接口并将实现的代码打成jar包,之后在系统导入该jar包即可使用自己编写的Transform逻辑。
通过Remote调用的方式调用外部系统对数据进行Transform。
上述1、2两种做法,由于其Transform与系统逻辑高度耦合,共享计算资源,并不太适合在Transform中进行重量级计算,仅适合应用在一些轻量、简单的业务场景。更优的做法是RemoteCustomTransform,它解耦了Transform业务逻辑与数据通路,更具灵活性。
阿里云EventBridge通过集成阿里云函数计算实现了CustomTransform能力,通过Remote调用的方式将Transform业务逻辑与数据通路解耦。提高了Transform的灵活性,降低计算资源的挤兑风险。
使用阿里云的函数计算进行Transform时,EventBridge的整体链路如图所示。
下文在此基础之上继续探讨链路中涉及的几个关键问题:
攒批可以批量聚合多条数据,在达到攒批条件后再将数据批量推送给下一步进行处理。EventBridge将攒批能力置于Transform之前,通过攒批能力提升了数据的处理效率和吞吐量,并且显著降低Transform调用函数计算的次数。
批量推送条数:单次可聚合的最大数据条数。
Transform处理数据时可能出现异常,为避免异常导致数据丢失或影响链路的稳定性和可用性等。Transform复用了EventBridge的重试、死信、容错等机制。
1.允许异常容错:当Transform异常发生时不会阻塞执行,会继续处理后续的数据。但是,EventBridge会重试发生异常的数据,在超出重试策略后根据配置将数据投递至死信队列或直接丢弃。2.禁止容错:不允许错误,当Transform异常发生且超过重试策略配置时会阻塞执行。
函数计算的调用和函数的执行会产生一定费用,包含函数调用、资源使用(CPU、Mem等)和公网出流量三部分的费用。为减少函数计算产生的费用,函数计算定向减免了来自EventBridge的函数调用次数费用,即EventBridge触发函数计算产生的函数调用次数不再计入费用账单[3,4]。
目前可在EventBridge的事件流中体验Transform能力,如图所示。
对于阿里云函数计算来说,我们提供了两种方式:
可在提供的模板之上,直接创建函数。产品层面提供了简易的IDE,便于用户编写和调试代码。
支持绑定用户已有的函数。更详细的使用可参考Transform帮助文档,见附录[4]。
EventBridgeTransform基于Serverless函数计算构建,可享受Serverless服务免运维、资源弹性伸缩、按量付费等特性,具体如下:
消息(MNS)->Transform->消息(RocketMQ)
消息(RocketMQ)->Transform->OSS
客户会将用户产生的视频数据投递到RocketMQ中,这些数据用户是可以查看的。为此客户选择OSS来进行文件存储,满足这种写多读少、低成本存储数据的场景。但是,视频数据中包含了若干敏感信息,为此客户使用FCTransform对视频中的敏感数据做清除后,再将视频投递到OSS中。
EventBridgeTransform通过集成函数计算,满足了实际业务中复杂、个性化的需求。其弹性伸缩、免运维、按量付费的特性深受客户青睐。未来Transform会通过集成更多的服务(阿里云工作流、HTTPDestination等)解锁更多的业务场景,满足多样化需求。