最近的一些数据发展趋势推动了传统的批处理抽取 - 转换 - 加载(ETL)架构发生了巨大的变化:数据平台要在整个企业范围内运行;数据源的类型变得更多;流数据得到了普遍性增长。
在 QCon 旧金山 2016 会议上,Neha Narkhede 做了“ETL 已死,而实时流长存”的演讲,并讨论了企业级数据处理领域所面临的挑战。该演讲的核心前提是开源的 Apache Kafka 流处理平台能够提供灵活且统一的框架,支持数据转换和处理的现代需求。
Narkhede 是 Confluent 的联合创始人和 CTO,在演讲中,他首先阐述了在过去的十年间,数据和数据系统的重要变化。该领域的传统功能包括提供联机事务处理(online transaction processing,OLTP)的操作性数据库以及提供在线分析处理(online analytical processing,OLAP)的关系型数据仓库。来自各种操作性数据库的数据会以批处理的方式加载到数据仓库的主模式中,批处理运行的周期可能是每天一次或两次。这种数据集成过程通常称为抽取 - 转换 - 加载(extract-transform-load,ETL)。
最近的一些数据发展趋势推动传统的 ETL 架构发生了巨大的变化:
单服务器的数据库正在被各种分布式数据平台所取代,这种平台在整个公司范围内运行;
除了事务性数据之外,现在有了类型更多的数据源,比如日志、传感器、指标数据等;
流数据得到了普遍性的增长,就业务需求而言,需要有一种比每日批处理更快的方案。
这些趋势所造成的后果就是传统的数据集成方式最终看起来像一团乱麻,比如组合自定义的转换脚本、使用企业级中间件如企业服务总线(ESB)和消息队列(MQ)以及像 Hadoop 这样的批处理技术。
在探讨现代流处理技术如何缓解这些问题之前,Narkhede 简要回顾了一下数据集成的历史。在上世纪 90 年代的零售