10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

实时大规模变更数据捕获:Openflow 数据库复制架构的技术解析 | 技术趋势

  • 2025-09-15
    北京
  • 本文字数:2834 字

    阅读完需:约 9 分钟

大小:1.41M时长:08:13
实时大规模变更数据捕获:Openflow数据库复制架构的技术解析 | 技术趋势

运营数据库中的每笔交易都讲述着一个故事——客户购买、库存更新或用户交互。然而大多数企业仍需等待数小时甚至数天才能对这些洞察采取行动,用昨日的数据进行分析的同时,实时机会悄然流失。


以下痛点屡见不鲜:工程团队受困于防火墙后的运营数据库;脆弱的 ETL 管道因模式变更而崩溃;批处理窗口造成关键业务延迟——从业务事件发生到可用于分析之间存在数小时滞后。


随着 Snowflake 近期对 Crunchy Data 的收购,我们正通过 Snowflake Postgres 构建运营数据与分析数据统一于单一系统的愿景——不再需要为分析目的转移事务数据。但我们也认识到许多企业将继续使用 Snowflake 之外的传统 OLTP 数据库。这正是 Openflow 的变更数据捕获(CDC)技术发挥关键作用的领域,它通过将任何运营数据库的变更无缝流式传输至 Snowflake AI 数据云,为实时分析和 AI 应用提供了处理传统 CDC 工作的全新视角。  

技术挑战:从数据库日志到分析洞察


传统的变更数据捕获(CDC)实施方案面临复杂的工程挑战。开发人员需要深入解析特定数据库的事务日志——如 PostgreSQL 的预写日志(WAL)、MySQL 的二进制日志、SQL Server 的变更跟踪功能、Oracle 的重做日志——同时还需处理各数据库复制协议的复杂细节。随后必须将这些变更可靠地流式传输到数据平台,优雅地处理模式演进,并维护精确一次(exactly-once)的交付语义。


我们通过 Openflow 数据库连接器着力解决的核心问题包括:


  • 安全与网络隔离:多数事务型数据库部署在防火墙和内网虚拟私有云中,处于严格隔离环境,无外部互联网暴露。

  • 大规模性能要求:需同时跨数百张表以每秒 20,000+变更事件的速率处理数据。

  • 模式演进能力:自动适应数据定义语言(DDL)变更,例如字段增删、重命名或删除。

  • 运维复杂性:维护 CDC 基础设施、处理故障场景并确保数据一致性。  

Openflow 的 CDC 架构:原生协议与 Snowpipe Streaming 的融合


我们设计的 Openflow 数据库连接器,将数据库原生 CDC 协议与 Snowflake 的高性能 Snowpipe Streaming API 相结合。每个连接器的核心均通过 Apache NiFi 数据流实现,既可部署于 Snowflake 托管基础设施中,也可通过后文将详述的 BYOC(自带云)模式直接部署于客户 VPC 内。

数据库原生变更捕获


Openflow 连接器并非通过解析 SQL 语句或轮询变更实现,而是直接接入各数据库的原生复制流:

  • PostgreSQL:通过预写日志(WAL)进行逻辑复制,支持将 wal_level 参数配置为 logical

  • MySQL:通过二进制日志(binlog)复制实现实时变更捕获

  • SQL Server:通过变更追踪(CT)API 实现增量数据提取

  • Oracle(即将支持):通过 XStream API 实现高性能变更数据捕获该技术方案具有多重优势


其一,实现真正的实时捕获:变更在提交至数据库的瞬间即可被检测。其二,通过采用高效的原生复制机制而非查询生产表,显著降低对源数据库的性能影响。



OpenFlow 中的连接器配置支持灵活的表选择模式


高性能流处理架构


OpenFlow 的核心突破在于将数据库原生 CDC(变更数据捕获)流与 Snowflake 的 Snowpipe Streaming API 无缝桥接。我们的连接器采用先进的缓冲与流处理机制,既能处理高吞吐量数据流,又能确保至少一次(at-least-once)的投递语义。


每个 OpenFlow 连接器作为多线程 NiFi 数据流运行,包含以下核心组件:

  • CDC 捕获处理器:通过原生 API 读取数据库复制日志(例如 CaptureChangeMySQL、CaptureChangePostgreSQL、CaptureChangeSqlServer)

  • 流缓冲层:在内存中累积变更数据,实现最优批量流传输

  • Snowpipe Streaming 客户端:将缓冲的变更数据流式传输至 Snowflake 通道(例如 PutSnowpipeStreaming)

  • 合并执行引擎:调度 MERGE 操作以将变更应用到目标表,并在执行合并时压缩数据(例如 MergeSnowflakeJournalTable)


双表架构实现变更历史追踪


我们的关键创新之一是采用双表架构进行 CDC 数据管理。针对每个源表,我们创建:

  • 目标表:存储数据的当前状态,通过 MERGE 操作持续更新。

  • 日志表:仅追加表,完整记录所有数据变更历史,包含支持 SCD2 分析的元数据和有效载荷,提供至少一次投递保证,并在合并操作期间执行压缩。


日志表完整捕获变更历史:



该架构支持多种强大用例:

  • 时间点分析:查询历史任意时刻的数据状态

  • 变更审计:追踪变更内容及发生时间

  • 事件溯源:通过变更流重建业务事件

  • 合规报告:维护不可篡改的审计追踪


示例:通过日志表跟踪订单的完整生命周期。


应对企业级挑战

安全性:BYOC 部署模式实现增强控制


在 OLTP CDC 场景中,数据集成常见挑战在于既确保穿越客户网络的安全性,又兼顾灵活性与可控性。为此,BYOC(自带云)部署方案提供了理想的解决方案。Openflow 在客户 VPC 内创建基础设施,通过私有子网托管 EKS 集群。这意味着敏感的数据库连接不会超出您的网络边界——控制平面仍由 Snowflake 统一管理监控,而所有数据流动均严格限定在您的安全边界内。


BYOC 部署提供:

  • 网络隔离:数据库连接器运行于您的私有子网

  • 传输加密:所有通信均采用 TLS 加密协议

  • 密钥管理:支持与 AWS 密钥管理服务或 HashiCorp Vault 集成

  • 合规性:满足数据本地化的监管要求


图 1:Openflow BYOC(自带云)部署架构示意图,展示了从源数据库到 Snowflake 的安全灵活数据集成流程,确保数据始终处于客户安全边界内。

模式演进:自动适配


我们的核心优势之一是支持源表结构变更的自动适配。当发生 DDL 变更时,系统会自动检测模式修改,更新目标表以匹配新结构,为更新后的模式创建新的日志表,并在无需人工干预的情况下实现无缝复制。


这种自动模式演进支持常见的数据库操作(如增加、重命名或删除列),消除了传统 CDC 实施方案中最大的运维痛点。

超越传统 ETL:面向 AI 的实时数据就绪


当结合现代 AI 与分析用例时,Openflow 的 CDC 架构真正优势得以显现。该架构通过近实时双向数据流,将企业数据与 AI 系统连接——无论模型或智能体位于何处。


通过近实时变化数据流,您可以:


构建实时机器学习特征库:通过分钟级最新数据持续更新机器学习特征,实现更精准及时的模型预测启用

事件驱动型分析:在业务事件发生瞬间自动触发分析与告警,实现即时洞察与响应

实现实时个性化推荐:基于即时客户行为数据驱动推荐引擎,提供高相关性且与时俱进的用户体验

驱动运营型 AI:通过最新系统状态赋能智能自动化,实现更灵敏高效的自主运营


示例:基于 Snowflake 告警的事件驱动分析方案


展望未来:数据移动技术的演进方向


Openflow 标志着数据集成理念的根本性变革。通过将数据库原生 CDC 协议与云原生流式架构相结合,我们成功打破了性能、安全性和运维简易性之间传统的权衡取舍。


随着企业日益广泛部署人工智能代理和实时应用,能否在数秒而非数小时内获取新鲜、一致的数据已成为关键竞争优势。我们正持续投入建设 Snowflake Openflow 平台,即将推出包括 Oracle 数据库支持、多云部署架构、扩展型连接器生态以及 Apache Iceberg 表支持等核心功能——这一切都致力于让实时数据集成变得像执行 SQL 查询般简单可靠。


批处理时代正走向终结。未来属于能够以商业速度安全可靠地海量传输数据的架构——而这样的未来已通过 Openflow 成为现实。


原文地址:https://www.snowflake.com/en/engineering-blog/real-time-change-data-capture-openflow/


2025-09-15 18:4975

评论

发布
暂无评论

隐私安全的必答题,网易云信如何解?

网易云信

隐私安全

安全大讲堂 | 孙朝晖:全量数据是一切网络安全分析的起点

腾讯安全云鼎实验室

数据分析 网络安全 数据安全 安全大讲堂

如何使用Java AWT 创建一个简易计算器

华为云开发者联盟

Java 计算器 GUI AWT 图形

深度揭秘阿里云 Serverless Kubernetes

Serverless Devs

6张图为你分析Kafka Producer 消息缓存模型

华为云开发者联盟

kafka 消息 Kafka Producer 消息缓存模型 消息缓存

TSP 平台场景中的 MQTT 主题设计|车联网平台搭建从入门到精通 03

EMQ映云科技

开源 物联网 IoT mqtt emq

ironSource 推出全球首个跨渠道应用营销平台 ironSource Luna

科技热闻

《Mybatis 手撸专栏》第1章:开篇介绍,我要带你撸 Mybatis 啦!

小傅哥

小傅哥 mybatis 手写Mybatis

Redis面试题:基本数据类型与底层存储结构

Linux服务器开发

redis 面试题 Linux服务器开发 Linux后台开发 BAT面试题

OceanBase 源码解读(八):事务日志的提交和回放

OceanBase 数据库

oceanbase 源码解读

web前端培训React合成事件原理解析

@零度

React web前端开发

动态卡片:富媒体内容井喷式增长下,新一代移动端动态研发的模式

蚂蚁集团移动开发平台 mPaaS

ios android 前端 mPaaS 卡片技术

中国企业的测试之道被美国学习了?

博文视点Broadview

金三银四的 Vue 面试准备

CRMEB

资金管理系统解决方案

低代码小观

资产管理 企业管理系统 资金安全 CRM系统 客户关系管理系统

如何实现24小时客户服务

小炮

客户服务

小程序多端引流新思路:App公域流量挖掘

Speedoooo

APP开发 智慧终端 引流获客工具 引流获客系统

ShardingSphere-Proxy 5.0 分库分表(一)

神农写代码

字节跳动流式数据集成基于Flink Checkpoint两阶段提交的实践和优化背景

字节跳动数据平台

大数据 flink 字节跳动 数据集成

即学即会 Serverless 系列:初识 Serverless 架构

Serverless Devs

云计算 阿里云 Serverless 架构

信创云管理平台,头部券商解决异构云资源管理的关键

BoCloud博云

信创 云管平台

从持续交付到业务创新(上):互联网时代研发效能的核心

阿里云云效

云计算 阿里云 云原生 研发效能 持续交付

打印总是遇到问题?一文教你如何在优麒麟上使用 CUPS 管理打印机

优麒麟

Linux 终端 优麒麟 打印机管理

电路模型和电路定律 (Ⅱ)

謓泽

3月月更

API接口知识小结

源字节1号

程序员 有趣的技术知识

阿里巴巴开源大规模稀疏模型训练/预测引擎DeepRec

阿里云大数据AI技术

机器学习 深度学习 搜索引擎 分布式训练 推荐引擎

ModStartCMS模块化建站系统 v3.5.0 多图字段支持,系统优化升级

ModStart开源

从持续交付到业务创新(下):有效的业务创新

阿里云云效

云计算 阿里云 云原生 研发效能

企业知识管理的措施

小炮

知识管理

科技筑基、高效实战:中科柏诚信云链正当时

联营汇聚

31岁的Python,蝉联年度编程语言排行榜冠军

JackTian

Python 编程 程序员 编程语言 后端

实时大规模变更数据捕获:Openflow数据库复制架构的技术解析 | 技术趋势_DataOps_Jakub Puchalski_InfoQ精选文章