实时数据使用的数据组织与处理
1. 实时数据使用概述
当源系统同时支持批量和实时数据交付时,可利用现有工具,例如从关系型数据库管理系统(RDBMS)的批量提取切换到使用变更数据捕获(CDC)工具进行实时摄取。建议提前规划实时用例并选择合适的方法,避免后期高昂的重写成本。
2. 快速存储剖析
以 Apache Kafka 为例介绍实时系统存储。在实时系统中,操作基于单个行或消息,消息通常较小,从几 KB 到 1MB 不等,消息被组织成主题,类似于文件系统中的文件夹。
- 消息生产者与消费者 :生产者将消息写入主题,消费者从主题读取和处理消息。例如在一个实时处理管道中,有一个作为摄取应用的生产者,从 RDBMS 读取新的、更新的和删除的行,实时存储中有一个主题和两个不同的消费者应用。一个消费者 Y 是数据转换管道,执行常见的数据转换并将处理后的消息保存到另一个主题;另一个消费者 X 是某种实时分析作业。
- 消息的不可变性与偏移机制 :实时存储系统中的消息是不可变的,写入后不能更改或删除。每条消息被分配一个偏移量,这是一个不断增加的数字。偏移量用于向生产者发送确认消息已成功保存的回执,生产者据此发送新消息。消费者也通过向实时系统发送最新处理消息的偏移量来跟踪偏移。偏移/确认机制提供了可靠性,消费者失败时可从上次处理的偏移量处恢复处理,同时也可用于监控消费者应用的性能。
以下是生产者、消费者与主题关系的 mermaid 流程图:
graph