谁在跨项目使用 BigQuery Storage Read API 时付费?

Who pays when using BigQuery Storage Read API across projects?

假设我在 GCP 中有两个项目,项目 A 和 B。项目 A 有一个 BigQuery table,项目 B 需要使用 BigQuery Storage Read API 读取该数据。

如果我在项目 B 中创建一个服务帐户,然后转到项目 A 并为该用户分配角色 BigQuery Read Session User 并将他们添加到数据集 ACL,他们将能够流式传输 table内容。哪个项目将收到提取数据的账单?创建读取会话的项目 A,或代理服务帐户所在的项目 B?

明确地说,我希望项目 B 为其产生的负载付费。

我试图找到一种方法来明确说明这一点,但据我所知,在创建读取会话时无法指定计费项目。我还检查了当我尝试创建一个将“父项目”设置为项目 B 而 table 位置显示为项目 A 的读取会话时会发生什么,这只会导致找不到 table完全没有。

Storage Read API pricing 中,BigQuery 按处理的字节数(也称为读取的字节数)收费。在您的场景中,项目 A 有 Bigquery table 和读取会话发生的地方,您刚刚将项目 B 的服务帐户附加为项目 A 中的 BigQuery Read Session User,因此计费金额将转到项目 A。

作为替代方案,您可以使用 Billing Reports Bigquery 存储的成本趋势 API 通过以下过滤器进行检查: