行为和使用场景
借助 Datastream,用户能够近乎实时地将关系型数据库管理系统 (RDBMS) 和其他来源中的源数据引入 BigQuery、BigLake Iceberg 表和 Cloud Storage 等目标。它适用于下游使用场景,例如将数据加载到 BigQuery 中进行数据仓储和分析,或者对数据运行 Spark 作业以用于人工智能和机器学习使用场景。
概念
本部分介绍有效使用 Datastream 所需了解的主要概念。
变更数据捕获
变更数据捕获 (CDC) 是一组软件设计模式,用于确定(和跟踪)已更改的数据,以便可使用更改后的数据执行操作。CDC 也是一种数据集成方法,基于对企业数据源所做更改的识别、捕获和交付。
事件溯源
事件溯源于 2005 年引入,它是一种设计模式,其中应用状态的每一次更改都在事件对象中捕获。利用事件溯源,应用可以重建其状态、执行 时间点恢复 (通过处理该时间点之前的事件)、在逻辑发生变化时重新计算状态,或者启用命令查询责任隔离 (CQRS)设计。随着实时事件处理工具的不断演变,许多应用正在迁移到事件溯源模型。过去,由于原子性、一致性、隔离性和持久性 (ACID)要求,事务型数据库始终以事件为导向。
事务型数据库
在事务型数据库中,数据库要执行的一组操作通常先写入预写式日志 (WAL),然后再在存储引擎上执行任何操作。在存储引擎上执行操作并将其提交到 WAL 后,该操作会被视为成功。使用 WAL 可实现原子性和持久性,并且还可实现数据库的高保真度复制。某些数据库将向日志写入将在存储级别发生的确切操作(例如 write 0x41 on location 20),因此这些操作只能在同一存储引擎上复制(或重做)。其他数据库将记录一个完整的逻辑语句(或行),该逻辑语句(或行)可在其他存储引擎上重新执行。
事件和数据流
Datastream 会近乎实时地从各种来源提取大量数据,并使这些数据可在目标位置中使用。Datastream 存储的数据单位是一个事件。数据流表示从来源持续提取事件并将其写入目标位置。
统一类型
数据源有自己的类型,一些特定于数据库本身,还有一些是通用的,跨数据库共享。由于有许多不同的来源会生成到统一目标位置的数据流,因此必须有一种统一的标准方法来表示所有来源中的原始来源类型。统一类型是表示所有来源的数据类型的一种通用且无损的方式,以便可按一致的方式使用这些数据。Datastream 支持的统一类型将表示所有受支持的来源系统中所有标准化类型的超集,因此可以无损地支持所有类型。
实体上下文
Datastream 有 5 个实体:
- 专用连接配置 可让 Datastream 通过安全的专用网络连接与数据源进行通信。 此通信通过 Virtual Private Cloud (VPC) 对等互连进行。
- 连接配置文件 表示到特定来源数据库或目标数据库的连接信息。
- 数据流 表示来源和目标连接配置文件对,以及特定于数据流的设置。
- 对象 表示数据流的子部分。例如,对于要流式传输的每个表,数据库流都有一个数据对象。
- 事件 表示给定对象的每个数据操纵语言 (DML) 更改。
创建专用连接 配置后, 您可以通过 专用通信通道连接到在 Google Cloud 或其他位置托管的来源。专用连接是可选的,Datastream 还支持通过公共网络使用的其他连接模式。
为来源和 目标位置创建连接 配置文件后,您可创建数据流,以使用存储在 连接配置文件中的信息将数据从来源转移到目标位置。
创建数据流后,Datastream 会直接连接到来源,使用内容,然后根据事件结构处理事件并将其写入目标位置。
专用连接配置和连接配置文件可以与数据流分开管理,以便重复使用。
特性
Datastream 的功能包括:
- 无服务器: 您可以配置一个数据流,配置后数据就会开始移动。这样可省去安装、资源分配和维护方面的开销。随着数据量的增减,Datastream 的自动扩缩功能会自动分配资源,让数据保持近乎实时移动。
- 基于 Avro 的统一类型架构: Datastream 基于 Avro 类型将所有特定于来源的数据类型转换为统一的 Datastream 类型架构,可实现与来源无关的处理。
- 流式传输历史数据和 CDC 数据: Datastream 同时近乎实时地流式传输历史数据和 CDC 源数据。
Oracle CDC 无需其他许可: Datastream 支持从任何 Oracle 来源版本 11.2g 或更高版本进行基于 LogMiner 的 CDC 流式传输,无需支付额外许可或软件安装费用。
BigQuery 目标位置: 来源中的更改会近乎实时地持续复制到 BigQuery 表中。BigQuery 中的数据几乎可以立即用于分析。
Cloud Storage 目标位置: CDC 数据会连续写入 Cloud Storage 中的自描述 Avro 或 JSON 文件。此信息通过直接就地使用或者将下游加载到另一目标位置(例如 Spanner),可用于额外处理。
使用 Knowledge Catalog 进行集中式元数据管理: Datastream 资源(例如数据流、连接配置文件和连接配置)会自动与 Knowledge Catalog 同步。这样,您就可以直接在 Knowledge Catalog 界面中搜索和浏览这些资产。
使用场景
Datastream 有 3 种主要的使用场景:
- 数据集成:来自数据库和软件即服务 (SaaS) 云服务的数据流可以通过将数据加载到 BigQuery 中,提供近乎实时的数据集成流水线。
- 流式分析: 数据库中的更改会注入到流式处理流水线中,例如使用 Dataflow 进行欺诈检测、安全性事件处理和异常值检测。
- 近乎实时地查看数据更改:由于能近乎实时地查看数据更改,人工智能和机器学习应用可通过营销努力或通过馈送回生产系统来阻止用户流失或提高用户参与度。
行为概览
借助 Datastream,客户可以将来自多个数据源的持续更改直接流式传输到 Google Cloud。
来源
- 需要进行设置才能将来源用于 Datastream,这包括身份验证和其他配置选项。
- 每个来源都会生成反映所有数据操纵语言 (DML) 更改的事件。
- 每个数据流都可以回填历史数据,以及将正在进行的更改流式传输到目标位置。
目的地
Datastream 支持 BigQuery、BigLake Iceberg 表和 Cloud Storage 作为 目标位置。创建数据流后,系统将定义其目标位置配置。
事件交付
- 无法保证事件顺序。事件元数据 包含可用于确定事件顺序的信息。
- 事件交付至少发生一次。事件元数据包括可用于移除目标位置中的任何重复数据的数据。
- 对于 BigQuery 目标位置,事件大小限制为每个事件 20 MB;对于 Cloud Storage 目标位置,事件大小限制为每个事件 100 MB。
如需详细了解事件,请参阅事件和数据流。
高可用性和灾难恢复
本部分介绍 Datastream 如何处理与高可用性和灾难恢复相关的场景。
高可用性: Datastream 是一种地区服务,在 每个地区中的多个区域 运行。任何地区中的单区域故障不会影响服务在其他区域中可用性或质量。
灾难恢复: 如果一个区域发生故障,则在该区域运行的任何数据流都将在服务中断期间关闭。解决服务中断问题后,Datastream 将在其中断的位置继续操作,并且将从来源重新检索尚未写入目标位置的所有数据。在这种情况下,目标位置中可能会存在重复数据。如需详细了解如何移除重复数据,请参阅事件交付。
初始数据和 CDC 数据
由于数据源中有些数据在来源连接到数据流之前就已存在(历史数据),因此 Datastream 会根据历史数据以及实时发生的数据更改生成事件。
为确保快速访问数据,历史数据和实时数据更改会同时复制到目标位置。事件元数据指示该事件是来自回填还是来自 CDC。
后续步骤
- 详细了解 Datastream。
- 了解统一类型映射。
- 详细了解 Datastream 支持的来源。
- 详细了解 Datastream 支持的 目标位置。
- 了解如何创建 专用连接配置、 连接配置文件和 数据流。