Next.js 15.5更新:Turbopack量产与中间件升级
来源: InfoQ 话题 - 大数据
运营数据库中的每笔交易都讲述着一个故事——客户购买、库存更新或用户交互。然而大多数企业仍需等待数小时甚至数天才能对这些洞察采取行动,用昨日的数据进行分析的同时,实时机会悄然流失。
以下痛点屡见不鲜:工程团队受困于防火墙后的运营数据库;脆弱的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参数配置为logicalMySQL:通过二进制日志(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/"