配置 Cloud Storage 目标位置

本页面介绍了如何配置 Datastream 以将数据写入 Cloud Storage 存储桶。

Cloud Storage 是一项用于在 Google Cloud中存储数据的服务。您将数据以对象形式存储在称为存储分区的容器中。当您将数据流式传输到 Cloud Storage 时,Datastream 会按对象名称和时间戳整理数据。然后,您可以使用 Cloud Storage API 使用数据。如需了解详情,请参阅关于 Cloud Storage 存储分区

启用 API

如果目标 Cloud Storage 存储桶与 Datastream 位于同一项目中,则启用 Datastream API 便已足够。

如果您要向另一项目中的存储桶写入数据,则必须向 DataStream 关联的服务账号授予访问此存储桶所需的权限。

  1. 获取用于服务账号的电子邮件地址。为此,请在 Google Cloud 控制台首页中找到相应的项目编号。服务账号的电子邮件地址将是 service-[project_number]@gcp-sa-datastream.iam.gserviceaccount.com
  2. 向此电子邮件地址授予写入目标存储桶所需的权限(通常是 roles/storage.objectViewerroles/storage.objectCreatorroles/storage.legacyBucketReader 权限)。

指定目标存储桶和前缀

在数据流配置中提供项目名称、存储桶名称和可选文件前缀,以确定数据的写入位置。

写入行为

  • 给定数据流的数据将写入提供的存储桶或文件前缀,位置为 [bucket]/[prefix]/[object name]/yyyy/mm/dd/hh/mm/[filename(idempotent)]
  • 数据库源路径中的对象名称是架构名称,后跟表名称(以下划线“_”分隔)。
  • 路径中的时间戳 (hh/mm) 是事件元数据中的源时间戳。
    • 对于回填事件,时间戳表示回填任务的开始时间(通常是数据流启动时间或手动触发回填的时间)。
    • 对于 CDC 事件,时间戳表示记录在来源上发生更改的时间。
  • 每当达到文件大小上限或超时上限(以先发生者为准),就会轮替文件。您可以使用 Datastream API 调整文件大小上限和超时时间上限值。
  • 此外,每次检测到源架构更改时(例如添加新列),都会轮替文件。
  • 同一路径中同一分钟可能有多个文件。
  • 您可以根据 Cloud Storage API 使用数据。
  • 将数据流式传输到 Cloud Storage 时,事件大小上限为 100 MB。

在某些情况下,最常是在数据流首次开始运行时,回填和 CDC 之间会出现重叠,这导致出现重复事件。当 Datastream 开始从当前数据库日志文件(在数据流启动之前创建)中读取数据时,会发生这种情况,并且此日志文件包含一些还由回填捕获的事件。这是预期行为,可以在必要时使用事件元数据来消除重复事件。

后续步骤