配额和限制

配额

Dataflow 代管式服务具有以下配额限制:

  • 每个用户每分钟最多可以发出 300 万个请求
  • 每个 Dataflow 作业最多可使用 1000 个 Compute Engine 实例
  • 每个 Google Cloud 项目可以运行至少 25 个并发的 Dataflow 作业
  • 每个 Dataflow 工作器都有在一个时间间隔输出的日志上限。如需了解确切的限制,请参阅日志记录文档。
  • 如果您选择接受组织级别的配额,则每个组织可以运行至少 125 个并发的 Dataflow 作业
  • 每个用户每分钟最多可以发出 15000 个监控请求
  • 每个 Google Cloud 项目在各个地区可拥有以下数量的 Shuffle 槽:
    • asia-east1:48 个槽
    • asia-northeast1:24 个槽
    • asia-south1:32 个槽
    • europe-west1:160 个槽
    • europe-west3:24 个槽
    • europe-west4:128 个槽
    • northamerica-northeast1:24 个槽
    • us-central1:160 个槽
    • us-east1:160 个槽
    • us-east4:32 个槽
    • us-west1:96 个槽
    • 其他:16 个槽
    160 个槽足以同时对大约 100 TB 的数据进行重排处理。
  • 每个 Google Cloud 项目在每个云区域的 Streaming Engine 吞吐量每分钟 600 GB,以便在 Compute Engine 实例和 Streaming Engine 之间发送数据。

您可以查看 Dataflow 专用配额的当前使用情况:

  1. 在 Google Cloud Console 中,转到 API 和服务
    转到 API 和服务
  2. 点击信息中心
  3. 点击 Dataflow API
  4. 点击配额
    例如,如需查看当前的 Shuffle 槽配额使用情况,请查看“配额”页面上的 Shuffle 槽图表。
    “配额”页面上的 Shuffle 槽。

Dataflow 服务可以运用 Google Cloud 的多款产品,如 BigQueryCloud StoragePub/SubCompute Engine。这些产品(连同其他 Google Cloud 服务)通过配额来限制您可以在一个项目中使用的最大资源数量。在使用 Dataflow 时,您可能需要调整这些服务的配额设置。

Compute Engine 配额

在 Dataflow 服务上运行流水线时,Dataflow 会创建 Compute Engine 实例来运行流水线代码。

Compute Engine 配额按区域来指定。请查看您的项目的 Compute Engine 配额,并在需要时申请进行以下调整:

  • CPU 数量:Dataflow 的默认机器类型为 n1-standard-1(用于批处理)、n1-standard-2(用于使用 Streaming Engine 的作业)和 n1-standard-4(用于不使用 Streaming Engine 的作业)。 FlexRS 默认使用 n1-standard-2 机器。在 Beta 版阶段,FlexRS 使用 90% 的抢占式虚拟机和 10% 的常规虚拟机。Compute Engine 计算 CPU 数量的方式是将每个实例的 CPU 总数相加。例如,运行 10 个 n1-standard-4 实例计为 40 个 CPU。请参阅 Compute Engine 机器类型,了解每种机器类型所对应的 CPU 个数。
  • 使用中的 IP 地址数:项目使用中的 IP 地址数量必须足够容纳所需数量的实例。如需使用 10 个 Compute Engine 实例,您就需要有 10 个使用中的 IP 地址。
  • 永久性磁盘:Dataflow 为每个实例都挂接了永久性磁盘。
    • 用于批处理流水线的默认磁盘大小为 250 GB,用于流处理流水线的默认磁盘大小为 400 GB。对于 10 个实例,默认情况下,批处理作业需要 2500 GB 的永久性磁盘。
    • 用于 Dataflow Shuffle 批处理流水线的默认磁盘大小为 25 GB。
    • 用于 Streaming Engine 流处理流水线的默认磁盘大小为 30 GB。
  • 代管实例组:Dataflow 会将您的 Compute Engine 实例作为代管实例组进行部署。您需要确保自己拥有以下相关配额:
    • 每个 Dataflow 作业具有一个实例组
    • 每个 Dataflow 作业具有一个代管实例组
    • 每个 Dataflow 作业具有一个实例模板

其他配额

根据您正在使用的数据源和接收器,您可能还需要其他的配额。

  1. Pub/Sub:如果您使用的是 Pub/Sub,则可能需要其他的配额。在计划配额时,请注意,处理来自 Pub/Sub 的 1 条消息涉及到 3 项操作。如果您使用自定义时间戳,则应预见到操作次数会增加一倍,因为 Dataflow 将创建一个单独的订阅来跟踪自定义时间戳。
  2. BigQuery:如果您针对 BigQuery 使用流处理 API,则需遵守配额限制和其他限制

限制

本节介绍 Dataflow 在正式使用环境下的实际限制。

限额 数量
每个流水线的工作器数量上限。 1000
作业创建请求的大小上限。步骤很多且名称冗长的流水线说明可能会达到此限制。 10 MB
辅助输入分片的数量上限。 2 万
Streaming Engine 中单个元素值的大小上限 100 MB
每个工作器在指定时间段内生成的日志条目数量上限。 每 30 秒 15000 条消息
Streaming Engine 限制 数量
Pub/Sub 消息的字节数上限。 7 MB
大键的大小上限。超过 64 KB 的键会导致性能下降。 2 MB
TagValueTagBag 使用的状态标记的长度上限。 64 KB