Last updated on

2025.3.11 3.12 笔记


实时可视化大屏

[业务数据库] -> [CDC] -> [数据清洗、聚合、计算] -> [存储/传输]
CDC

Change Data Capture(CDC,变更数据捕获)是一种实时或近实时追踪并捕获数据库数据变更的技术,主要用于将变更数据同步到下游系统(如数据仓库、缓存或微服务),以支持实时分析、数据集成和业务响应。

CDC 的分类

CDC 主要分为基于查询的 CDC 和基于日志的 CDC

维度基于查询的 CDC基于日志的 CDC
概念每次捕获变更发起 Select 查询进行全表扫描,过滤出查询之间变更的数据读取数据存储系统的 log ,例如 MySQL 里面的 binlog持续监控
开源产品Sqoop, Kafka JDBC SourceCanal, Maxwell, Debezium
执行模式BatchStreaming
捕获所有数据的变化
低延迟,不增加数据库负载
不侵入业务
捕获删除事件和旧记录的状态
捕获旧记录的状态
Binlog

Binlog(Binary Log,二进制日志)是 MySQL 数据库的核心日志文件,用于记录所有对数据库的结构变更和数据修改操作(如 INSERT、UPDATE、DELETE、CREATE TABLE 等),但不记录查询操作(如 SELECT)。它是 MySQL 实现数据持久化、主从复制和数据恢复的关键组件。

Apache Flink 是一个开源的分布式流处理框架,专为高吞吐、低延迟、有状态的实时数据处理场景设计。它不仅能处理无界数据流(如实时日志、传感器数据),也能高效处理有界数据集(如批量文件),并统一了流处理和批处理的编程模型。

数据库、数据仓库、数据湖的对比
维度数据库数据仓库数据湖
数据类型结构化数据(行/列)结构化历史数据(已清洗)原始数据(结构化/半结构化/非结构化)
数据模式写入时定义(Schema-on-Write)写入时定义(Schema-on-Write)读取时定义(Schema-on-Read)
处理目标支持高频事务处理(OLTP)支持分析查询(OLAP)支持探索性分析与机器学习
存储成本较高(需频繁优化存储结构)高(需ETL处理)低(支持原始格式存储)
数据治理强(事务一致性保障)强(数据清洗与标准化)弱(需额外治理避免“数据沼泽”)
典型用户业务操作人员数据分析师数据科学家、算法工程师

选择数据库:需要高频事务处理且数据结构固定的场景(如CRM系统) 选择数据仓库:需长期存储清洗后的历史数据并支持复杂分析(如BI报表) 选择数据湖:需存储多源异构数据并支持灵活分析(如AI模型训练) 三者并非互斥,现代企业常采用“湖仓一体”(Lakehouse)架构,结合数据湖的灵活性与数据仓库的治理能力,实现高效数据管理

SSE

Server-Sent Events(SSE)是一种在客户端和服务端之间实现单向事件流的机制,允许服务端主动向客户端发送事件数据。在 SSE 中,可以使用自定义事件(Custom Events)来发送具有特定类型的事件数据。

Server-Sent Events 与 WebSockets 的对比
Server-Sent EventsWebSockets
基于 HTTP 协议基于 TCP 协议
单工,只能服务端单向发送消息全双工,可以同时发送和接收消息
轻量级,使用简单相对复杂
内置断线重连和消息追踪的功能不在协议范围内,需手动实现
文本或使用 Base64 编码和 gzip 压缩的二进制消息类型广泛
支持自定义事件类型不支持自定义事件类型
连接数 HTTP/1.1 6 个,HTTP/2 可协商(默认 100)连接数无限制