[Feature Request]: Honor --quota_project_id in Python GCS/Pub/Sub IO and the Java-backed BigQuery STORAGE_WRITE_API path
维护者通常 1 天内回复
@shahar1 已经在做这个了。
开始于 2026年10月13日。
评估
这个 Issue 还没有评估数据。
描述
What would you like to happen?
Follow-up to #37431 / #39203.
#39203 adds a --quota_project_id pipeline option to Python GoogleCloudOptions, which attributes quota/billing of API requests to a chosen GCP project (the x-goog-user-project header). The option lives on the GCP-wide options class, but currently only the Python BigQuery IO transforms honor it (ReadFromBigQuery, ReadAllFromBigQuery, WriteToBigQuery with FILE_LOADS/STREAMING_INSERTS, ReadBigQueryChangeHistory).
It should be honored by the rest of the Python GCP IO so the option means what its name says. The client libraries already support it, so this is plumbing only:
- GCS (
apache_beam/io/gcp/gcsio.py):storage.Client(...)acceptsclient_options={'quota_project_id': ...}(honored bygoogle.cloud.client.Client);resourcemanager_v3.ProjectsClientused by_get_project_numbertakesclient_optionstoo.GcsIOalready receivespipeline_options, so the value is available where the client is built. - Pub/Sub (
apache_beam/io/gcp/pubsub.py,runners/direct/transform_evaluator.py):pubsub.PublisherClient(...)/SubscriberClient(...)forwardclient_optionsto the GAPIC client, which acceptsquota_project_id. WriteToBigQuery(method=STORAGE_WRITE_API): this path expands to the JavaStorageWriteToBigQuerytransform. Java already supports--bigQueryQuotaProjectId(BigQueryOptions), but the Python option never reaches it:PipelineOptionsTranslation.fromProtoconvertslower_underscore→lowerCamel, soquota_project_idarrives asquotaProjectId, which no Java option reads. Options: have the Python transform/expansion forward it under the Java name, or have Java'sBigQueryOptions.getBigQueryQuotaProjectId()fall back to a genericquotaProjectId. (Note: on Dataflow, options reach the Java worker in the legacy{"options": {...}}format without case conversion, so a solution must cover that path as well.)- Other GCP IOs that build clients (Bigtable, Spanner, …) should be checked the same way.
Until then, the option's help text says it is currently honored by BigQuery IO only.
Issue Priority
Priority: 2 (default / most feature requests should be filed as P2)
Issue Components
- Component: Python SDK
- Component: Java SDK
- Component: Go SDK
- Component: Typescript SDK
- Component: IO connector
- Component: Beam YAML
- Component: Beam examples
- Component: Beam playground
- Component: Beam katas
- Component: Website
- Component: Infrastructure
- Component: Spark Runner
- Component: Flink Runner
- Component: Prism Runner
- Component: Twister2 Runner
- Component: Hazelcast Jet Runner
- Component: Google Cloud Dataflow Runner
- 主要语言
- Java
- 星标
- 8.7k
- 派生
- 4.8k
- 平均合并
- 2 天 12 小时
- 30 天内合并 PR
- 371
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
apache/beam 的其他 Issue
-
awaiting triage bug P3
难度 1/5 1 小时以内 新手友好度 67/100
维护者通常 1 天内回复
-
[Bug]: [Python] WriteToJson silently rounds floats to 10 decimal places可能已有人在做 @Abhi2939 于 1 天前认领。 未关闭io P2 python yaml
难度 2/5 1-3 小时 新手友好度 62/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 68/100
apache/beam#39624 · 2 个 reaction ·
维护者通常 1 天内回复
-
[Bug]: PubsubIO used in batch incorrect batch cutoff size可能已有人在做 @1fanwang 于 78 天前认领。 未关闭bug io P3 pinned pubsub
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
build P3 sub-task
难度 1/5 1 小时以内 新手友好度 68/100
维护者通常 1 天内回复
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 66/100
SasanLabs/VulnerableApp#912 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 1 天内回复
-
desktop edt not responding
难度 2/5 1-3 小时 新手友好度 78/100
-
难度 2/5 1-3 小时 新手友好度 78/100
datafusion-contrib/StreamFusion#653 ·
维护者通常 1 天内回复
-
[Bug] Absolute row/column index 0 is ignored for images, hyperlinks and comments可能已有人在做 @fanOfSunny 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 82/100
维护者通常 1 天内回复