写点什么

实时大规模变更数据捕获: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:49535

评论

发布
暂无评论

小程序与 H5、原生应用的对比

Speedoooo

容器 信息安全 ios开发 APP开发 Andriod开发

云主机是什么?可以用来干嘛?

行云管家

云计算 云服务 云主机 云平台

携手企业创新 共创美好未来——低代码助力企业数字化

明道云

搭建springboot-tdengine 环境

williamcai

tdengine Spring Boot

Gartner发布《2021年企业低代码平台魔力象限》低码一体化平台成趋势!

优秀

低代码

Python代码阅读(第46篇):寻找符合条件的元素

Felix

Python 编程 Code Programing 阅读代码

高校人才集聚飞桨启航菁英计划!百度联合中国图象图形学学会助力AI人才培养

百度大脑

人工智能 百度 图像

helm部署的es出现探针过不了的问题

ilinux

云智慧开源数据可视化编排平台—FlyFish

云智慧AIOps社区

开源 大前端 低代码 数据可视化 JavaScrip

落实等级保护工作的意义简单说明-行云管家

行云管家

网络安全 等保 等级保护 安全等级保护

微信业务架构

stars

架构训练营

Kubernetes Operator 开发入门

侯生

Kubernetes operator #k8s

观察者网专访明道云CEO任向晖

明道云

架构实战营毕业总结

Abner S.

#架构实战营

京东架构师珍藏版:redis深度笔记(全彩版)全篇精华,细节满满

收到请回复

redis 编程 面试 后端 计算机

二本渣渣的金九银十辛酸面试之旅:5 面阿里(Java岗) 侥幸上岸

Java 编程 程序员 架构 面试

1024 写给程序员的一些建议

Andy阿辉

编程 程序员 程序人生 程序 java;

字节跳动Web Infra发起 Modern.js 开源项目,打造现代 Web 工程体系

字节跳动终端技术

字节跳动 大前端 开源技术

英特尔公司CEO帕特·基辛格致开放生态系统的一封公开信

科技新消息

4个实验,彻底搞懂TCP连接的断开

Java 架构 TCP 后端 网络编程

校招失败,在小公司熬了2年后我终于进了阿里,竭尽全力(Java岗)

Java 程序员 架构 面试 计算机

Aeron是什么?

BUG侦探

Aeron

每周学习感想

张靖

#架构实战营

MongoDB技术实践与应用案例征集活动

MongoDB中文社区

mongodb

终于有人把云原生存储讲明白了

青云技术社区

云计算 云原生 存储 Cloud Native

事件管理CRM系统是活动策划工作的必要工具

低代码小观

CRM 管理系统 事件管理 CRM系统 活动策划

CFI技术新探索,struct_san今日登场

腾讯安全云鼎实验室

云安全

招募令!焱融 SaaS 平台新产品招募100位体验官

焱融科技

云计算 分布式 高性能 文件存储 NAS

利用守护线程隐式关闭线程池

FunTester

Java 线程池 接口测试 FunTester 守护线程

2021云栖大会|东方通正式加入阿里云云原生合作伙伴计划,强强联手共创国产数字化转型新风向!

阿里巴巴云原生

阿里云 云原生 合作共赢 云栖大会

四万字32图,Kafka知识体系保姆级教程宝典

五分钟学大数据

大数据 kafka

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