将渠道服务数据导出到 BigQuery

本页介绍了如何配置渠道服务导出,还介绍了导出操作的可用架构。

使用 BigQuery,您 将渠道服务结算数据传输到指定的 BigQuery 数据集。这些数据可以帮助您 对客户或渠道合作伙伴如何使用 所提供的服务

从渠道服务导出的内容包含转销商专用数据 包含在 Cloud Billing 导出文件中。这类数据包括费用、赠送金额以及您配置的重新定价规则的使用情况数据。这些导出内容还汇总了 客户信息父级结算账号整合到单个数据集中。

不过,通过“渠道服务”导出功能导出的数据可用于 Cloud Billing 导出,您可以使用查询来联接这两个数据集 进行分析。

如需了解非转销商 Cloud Billing 导出,请参阅设置 Cloud Billing 会导出至 BigQuery

准备工作

在开始导出渠道服务结算数据之前,您必须:

  • 设置一个项目来托管您的 BigQuery 数据集,请确保 结算是 已启用 项目级别
  • 为项目启用 BigQuery Data Transfer Service API。
  • 为导出的数据创建数据集。

如果您已经拥有 的项目和 BigQuery 数据集 Cloud Billing 数据 导出内容 ,您可以将该项目和数据集重复用于渠道服务 导出。

如需详细了解如何设置项目和数据集,请参阅设置将 Cloud Billing 数据导出到 BigQuery 的功能

执行导出所需的权限

如需启用和配置渠道服务导出功能,您需要拥有以下角色:

选择项目和数据集

在 Partner Sales Console 中,选择项目和数据集 用于存储渠道服务数据的 BigQuery。启用结算功能 (如果尚未启用)。

当您选择或创建 BigQuery 时 数据集,您需要 可以选择某个受支持的 BigQuery 位置 数据集。为首次启用渠道服务数据导出功能后, 每个数据源(Google Cloud 或 Google Workspace)的时间:

  • 如果您配置了 BigQuery 数据集以使用多区域 位置、 所选的每个数据都有 BigQuery Export 数据 数据源。例如,如果您启用 从 9 月 23 日起的 BigQuery Export 将包括 数据。

  • 如果您将 BigQuery 数据集配置为使用单区域位置(多区域美国或欧盟除外),则从您启用导出功能之日起,系统会为每个所选数据源提供 BigQuery 导出数据。也就是说,系统不会添加 BigQuery Export 数据 非多区域数据集位置,因此您不会看到 启用导出功能前,请先从 BigQuery 导出数据。

如需导出多个 Partner Sales Console 账号的结算数据,请按照 具体步骤:

  1. 在数据导出到的 BigQuery 数据集上, 请确保每个 Partner Sales Console 的结算管理员 账号有权查看该数据集。
  2. 在每个 Partner Sales Console 中设置结算数据导出功能时 请选择统一数据集。

受支持的 BigQuery 位置

多区域

下表列出了支持渠道服务 BigQuery 数据导出的多区域。

多区域说明 多区域名称
欧盟成员国的数据中心1 EU
美国的数据中心 US

区域

下表列出了美洲区域 支持“渠道服务”BigQuery 数据导出功能。

区域说明 区域名称
爱荷华 us-central1
拉斯维加斯 us-west4
洛杉矶 us-west2
蒙特利尔 northamerica-northeast1
北弗吉尼亚 us-east4
俄勒冈 us-west1
盐湖城 us-west3
圣保罗 southamerica-east1
南卡罗来纳 us-east1

下表列出了亚太区域的 支持“渠道服务”BigQuery 数据导出功能。

区域说明 区域名称
香港 asia-east2
雅加达 asia-southeast2
孟买 asia-south1
大阪 asia-northeast2
首尔 asia-northeast3
新加坡 asia-southeast1
悉尼 australia-southeast1
台湾 asia-east1
东京 asia-northeast1

下表列出了欧洲提供渠道服务的区域 支持 BigQuery 数据导出。

区域说明 区域名称
比利时 europe-west1
芬兰 europe-north1
法兰克福 europe-west3
伦敦 europe-west2
荷兰 europe-west4
华沙 europe-central2
苏黎世 europe-west6

启用导出功能

在启用数据导出功能之前,请记下您的完全限定数据集 ID(格式为 PROJECT_ID:DATASET_NAME)。

要启用“渠道服务”导出功能,请执行以下操作:

  1. 在 Partner Sales Console 中,打开结算 页面
  2. 选择账单导出
  3. 重新结算数据集字段中输入完全限定的数据集 ID。
  4. 选择要为其导出数据的数据源
  5. 点击更新如果看到更新数据集权限的提示,请点击更新

用于启用重新结算的界面
导出

完成设置后,账单导出功能会每天传送增量使用情况数据。通过 直到为您的账号运行账单导出功能,导出表才会显示 第一次使用数据集包含自首次配置为 保留数据。

要停止将重新结算费用数据导出到数据集,请点击停用结算功能 数据导出(位于客户重新结算页面上)。如需重新启用导出功能,请按照上述步骤指定数据集 ID。

在该功能停用期间,您可能无法查看重新结算费用数据。如果您 在此期间删除了所有导出的数据,我们无法回填已删除的 记录。

所需的服务账号权限

“渠道服务”数据导出工具使用的是 由 Google 管理,并且有权将结算记录写入表中。通过 服务账号:

cloud-channel-billing-reporting-rebilling@system.gserviceaccount.com

此服务账号需要预定义角色: roles/bigquery.dataEditor 以允许导出。您可以按以下步骤配置权限: 启用导出功能

高效查询数据

默认情况下,BigQuery 表按 export_time 分区,并按 payer_billing_account_id 聚簇。这意味着该表被划分为 每个小分区进一步分为更小的集群。 使用分区键和集群键 可帮助 BigQuery 快速找到相关数据,从而 大幅降低查询费用。

例如,与不含 分区键和聚类键:

SELECT
  billing_account_id
  currency,
  invoice.month,
  -- Divide by currency_conversion_rate if converting non-USD to USD.
  SUM(cost)
    + SUM(
      IFNULL(
        (SELECT SUM(c.amount) FROM UNNEST(credits) AS c), 0))
    AS total
FROM PROJECT_ID.DATASET_NAME.reseller_billing_detailed_export_v1
WHERE
  export_time BETWEEN TIMESTAMP(START_DATE)
    AND TIMESTAMP(END_DATE)
  AND payer_billing_account_id IN (PAYER_BILLING_ACCOUNT_IDS)
GROUP BY
  billing_account_id,
  currency,
  invoice.month
ORDER BY
  billing_account_id,
  currency,
  invoice.month;

如需详细了解分区、聚类和最佳实践,请参阅 以下链接:

  1. 查询分区表
  2. 查询聚簇表
  3. 优化查询计算
  4. 控制 BigQuery 费用的最佳实践

查找付款人的结算账号 ID

如需查找付款方的结算账号 ID,请打开 Partner Sales Console结算账号页面,然后点击合作伙伴结算标签页。

您可以查看所有结算账号和付款人结算账号 ID。

付款人结算账号 ID

为导出数据集中的其他用户设置访问权限控制

您可以通过多种方式在 BigQuery 导出的数据中设置访问权限控制。有关详情,请参阅 BigQuery 访问权限控制

为确保用户只能访问他们有权查看的数据,我们建议您设置获授权的视图,以便共享您导出的数据集中的数据。

为用户设置权限时,请确保服务账号 cloud-channel-billing-reporting-rebilling@system.gserviceaccount.com 始终 拥有对导出数据集的完整编辑者权限,以进行持续数据导出。

表架构

以下架构描述了 BigQuery 表中的数据。

在 BigQuery 数据集中,系统会加载详细的重新结算导出数据 导出到名为reseller_billing_detailed_export_v1的数据表中

字段 类型 说明
billing_account_id 字符串 与使用情况关联的账号 ID,该 ID 可能是客户的 ID,也可能是您自己的 ID。这可能是结算账号或 Cloud Identity ID,具体取决于产品系列。
payer_billing_account_id 字符串 父级结算账号的 ID。
invoice.month 字符串 包含费用专列项的账单的年份和月份 (YYYYMM)。 例如:“202101”与 2021 年 1 月相同。
cost_type 字符串 此专列项代表的费用类型:常规项、税费、调整项或舍入误差费用。
service.id 字符串 与使用情况关联的服务的 ID。
service.description 字符串 报告结算数据的 Google 服务。
sku.id 字符串 服务所用资源的 SKU ID。
sku.description 字符串 服务使用的资源类型的说明。 例如,Cloud Storage 的类型为“Standard Storage US”。
usage_start_time 时间戳 所计算费用的每小时使用时段的开始时间。所有服务的使用情况和费用按小时显示。长期运行的服务使用量分布在多个每小时范围内。对于订阅产品,此字段为结算月份的开始时间。
usage_end_time 时间戳 计算费用的每小时使用时间段的结束时间。所有服务的使用情况和费用按小时显示。长期运行的服务使用量分布在多个每小时范围内。对于订阅产品,此字段为结算月份的结束时间。
project 结构体 生成 Cloud Billing 数据的 Google Cloud 项目的相关信息。
project.number 字符串 生成 Cloud Billing 数据的 Google Cloud 项目内部生成的匿名化唯一标识符。
project.id 字符串 生成 Cloud Billing 数据的 Google Cloud 项目的 ID。
project.name 字符串 生成 Cloud Billing 数据的 Google Cloud 项目的名称。
project.labels 结构体,重复
project.labels.key 字符串 如果存在标签,则为键值对的“键”部分。
project.labels.value 字符串 如果存在标签,则为键值对的“值”部分。
project.ancestry_numbers 字符串 project.id 所标识项目的资源层次结构祖先实体。
labels 结构体,重复
labels.key 字符串 如果存在标签,则为键值对的“键”部分。
labels.value 字符串 如果存在标签,则为键值对的“值”部分。
system_labels 结构体,重复
system_labels.key 字符串 如果存在系统标签,则为键值对的“键”部分。
system_labels.value 字符串 如果存在系统标签,则为键值对的“值”部分。
location.location 字符串 国家/地区或区域级别的使用位置。针对没有特定位置的资源显示 global。如需了解详情,请参阅地区和可用区
location.country 字符串 location.location 是国家/地区、区域或可用区时,此字段是发生了使用的国家/地区。例如 US。如需了解详情,请参阅区域和可用区
location.region 字符串 location.location 是国家或地区时,此字段是发生了使用的区域。例如 us-central1。如需了解详情,请参阅区域和可用区
location.zone 字符串 location.location 是可用区时,此字段是发生了使用的可用区。例如 us-central1-a。如需了解详情,请参阅区域和可用区
resource 结构体 描述与产生服务使用量的服务资源(例如虚拟机或 SSD)相关的信息的结构和价值。
resource.name 字符串 生成相关用量的资源的特定于服务的标识符。可以由用户生成。
resource.global_name 字符串 产生相关用量的资源的全局唯一服务标识符。
cost 数字 不计任何赠金的使用费。如需获取包含赠金的总费用,请将 credits.amount 添加到 cost
currency 字符串 费用的结算币种。如需了解详情,请参阅结算和付款支持的本地货币
currency_conversion_rate 浮点数 美元兑本地货币的汇率。也就是说,cost ÷ currency_conversion_rate 得出以美元为单位的费用。
usage.amount 数字 所用 usage.unit 的数量。
usage.unit 字符串 衡量资源使用情况的基本单位。例如,标准存储空间的基本单位是字节/秒。
usage.amount_in_pricing_unit 数字 usage.pricing_unit 的使用量。
usage.pricing_unit 字符串 用于衡量资源使用情况的单位。
credits 结构体,重复 包含描述赠金结构和价值的字段。
credits.id 字符串 如果填充,则表示赠金与产品 SKU 相关联。
credits.full_name 字符串 与产品 SKU 关联的赠金的名称。
credits.type 字符串 此字段说明了 credits.id 的用途或来源。
credits.name 字符串 对使用量应用的赠金的说明。
credits.amount 数字 对使用量应用的赠金金额。
credits.channel_partner_amount 数字 在重新结算加价和折扣后,应用到使用量的赠金金额。基于 channel_partner_name 和关联的 ChannelPartnerRepricingConfig。如果 credits.type 为 RESELLER_MARGIN,则此金额将为零。
credits.customer_amount 数字 在重新结算加价和折扣后,应用到使用量的赠金金额。基于 customer_name 和关联的 CustomerRepricingConfig。如果 credits.type 为 RESELLER_MARGIN,则此金额将为零。
adjustmentsInfo 结构体,重复 包含描述费用订单项调整项的结构和值的字段。
adjustmentsInfo.adjustment_id 字符串 如果填充此字段,则表示调整项与费用专列项相关联。adjustmentsInfo.adjustments_id 是某个问题导致的所有调整项的唯一 ID。
adjustmentsInfo.adjustment_description 字符串 调整及其原因的说明。
adjustmentsInfo.adjustment_type 字符串 调整项的类型。
adjustmentsInfo.adjustment_mode 字符串 发出调整项的方式。
export_time 时间戳 与附加结算数据关联的处理时间。每次导出新数据时,该值都会增加。使用 export_time 列了解导出的结算数据的上次更新时间。
entitlement_name 字符串 Cloud Channel API Entitlement的资源名称。请使用以下格式:accounts/{account}/customers/{customer}/entitlements/{entitlement}
channel_partner_name 字符串 (仅限分销商)向最终客户销售商品的渠道合作伙伴的资源名称。请使用以下格式:accounts/{account}/channelPartnerLinks/{channelPartner}
channel_partner_cost 数字 (仅限分销商)在应用现有 ChannelPartnerRepricingConfig 后,由 channel_partner_name 标识的渠道合作伙伴的费用。
customer_name 字符串 消耗此用量的转销商客户的资源名称,格式为:accounts/{account}/customers/{customer}
customer_cost 数字 应用CustomerRepricingConfig(如果存在)后,由 customer_name 列标识的转销商客户的费用。
cost_at_list 数字 按公开价格收费时的费用。
customer_repricing_config_name 字符串 Cloud Channel API CustomerRepricingConfig 的资源名称。请使用以下格式:accounts/{account}/customers/{customer}/customerRepricingConfigs/{id}
channel_partner_repricing_config_name 字符串 (仅限分销商)Cloud Channel API ChannelPartnerRepricingConfig 的资源名称。请使用以下格式:accounts/{account}/channelPartnerLinks/{channelPartner}/channelPartnerRepricingConfigs/{id}
tags Struct 用于描述代码的字段,例如键、值和命名空间。
tags.key 字符串 与此特定代码关联的键的简称或显示名称。
tags.value 字符串 附加到标记键的资源。在任何给定时间,对于给定键,一个资源只能附加一个值。
tags.inherited 布尔值 指明标记绑定是继承的(继承的标记 = True)还是直接/非继承的(标记的继承 = False)。
tags.namespace 字符串 表示定义标记键和值的资源层次结构。命名空间可以与标记键和标记值的简称组合使用,为标记键或标记值创建一个全局唯一的完全限定名称。
customer_correlation_id 字符串 客户的外部 CRM ID。仅当此客户存在 CRM ID 时填充。
price Struct 用于描述与使用量费用相关的结构和值的字段。
price.effective_price 数字 使用费。
price.tier_start_amount 数字 SKU 价格层级的下限单位数。对于 例如,具有三个价格层级(例如 0-100 个单位、101-1000 个单位)的 SKU 和超过 1001 个单位,将显示三行 SKU 价格,分别是 0、101、 price.tier_start_amount 字段中的 1001 表示 SKU 价格层级的起始单位数量。 详细了解 Google Cloud 价格层级
price.unit 字符串 定价所依据的使用单位和 衡量资源用量(例如吉比字节、太比字节、月、年、 GiB 小时、GiB 月或计数)。使用 price.unit 字段与 usage.pricing_unit 字段。
price.pricing_unit_quantity 数字 SKU 的价格层级单位数量。例如,如果层级价格是每 1000000 个字节 $1,则此列将显示 1000000。
transaction_type 字符串 卖家的交易类型。交易类型可能是以下各项之一:
  • GOOGLE = 1:Google Cloud 销售的服务。
  • THIRD_PARTY_RESELLER = 2:Google Cloud 转售的第三方服务。
  • THIRD_PARTY_AGENCY = 3:由合作伙伴销售的第三方服务,Google Cloud 充当代理。
seller_name 字符串 卖家的法定名称。
subscription 结构体 描述基于支出或基于资源的承诺的字段。您可以使用这些字段来分析特定承诺的费用。
subscription.instance_id 字符串 与承诺关联的订阅 ID。

有关架构的其他说明

不适用于 Google Workspace 的列

如果某列或字段不适用于产品系列,则导出的数据 此产品系列将在此列/字段中包含 null。以下 列/字段不适用于 Google Workspace 导出内容:

  • project
  • labels
  • resource
  • credits
  • adjustmentsInfo
  • cost_at_list
  • customer_repricing_config_name
  • channel_partner_repricing_config_name
  • tags
  • price.effective_price
  • price.tier_start_amount
  • transaction_type
  • seller_name

关于 Google Workspace 导出的其他注意事项

使用 Google Workspace 导出时,有几种特殊行为:

  • Google Workspace 数据不包含转销商自己的使用情况。
  • cost_typetaxadjustment 时,usage.amount_in_pricing_units 始终为 1。
  • 在 Google Workspace 账单上,税费显示为一个专列项。在 税项按客户细分。而总税费应该 与账单一致,则各项税费可能会存在轻微的四舍五入不准确的情况。

billing_account_id

  • 对于 Google Cloud,这是 相关资源。
  • 对于 Google Workspace,这是 客户

servicesku

对于 Google Workspace,这些列代表的是“产品”和“SKU” 与使用情况相关的事件。详细了解产品和SKU ID ,了解所有最新动态。

usage_start_timeusage_end_time

在 Google Workspace 账单 CSV 中,此字段表示为日期。在 这些导出内容以时间戳表示:

  • 对于 usage_start_time,这是订阅的开始时间(包括该时间),即开始日期的 0:00(太平洋标准时间)。
  • 对于 usage_end_time,这是指订阅的结束时间(不含) 结束日期的次日 0:00(太平洋标准时间)。

project.labels

对于 Google Cloud,这些是发生了使用量的 Google Cloud 项目中的键值对。如需了解详情,请参阅 使用 标签 ,了解所有最新动态。

labels

对于 Google Cloud,这些是 Google Cloud 上的键值对 发生了使用的资源。有关详情,请参阅使用 标签 ,了解所有最新动态。

system_labels

  • 对于 Google Cloud,这些是 发生了使用的 Google Cloud 资源。如需更多信息 请参阅可用系统 标签

  • 对于 Google Workspace,这些是关于 其中包括:

    • workspace.googleapis.com/domain_name:客户的域名。
    • workspace.googleapis.com/order_id:订单 ID。
    • workspace.googleapis.com/purchase_order_id:采购订单 (PO) ID。
    • workspace.googleapis.com/subscription_id:订阅 ID。
    • workspace.googleapis.com/usage_type:使用类型。不适用 如果 cost_type 不为 regular,则会发生该错误。

Google Workspace 使用类型包括:

  • COMMITMENT_TERM_START_ITEM:订阅开始。一般价格 与按月结算承诺订阅的非完整月份相关联 和预付款订阅的结算/合同期内。
  • COMMITMENT_TERM_END_ITEM:订阅结束。通常与 按月结算承诺订阅的上月费用。
  • COMMITMENT_TERM_RENEWAL_ITEM:后续订阅期的开始时间。
  • COMMITMENT_MONTHLY_ITEM:为月初存在的承诺记录的使用量。在大多数情况下,此费用会在 。
  • COMMITMENT_SEATS_CHANGE_ITEM:在承诺级别发生变化时记录 (增加或减少)。对于按月付款的包年订阅,通常从月中开始,持续到月底;对于预付费订阅,则持续到结算周期/合约期结束。
  • COMMITMENT_CANCEL_ITEM:在取消订阅时记录。 包括与提前终止相关的费用。表示在合同中途取消时,针对合同剩余期限收取的费用;或者在合同中途更改或取消时,针对结算周期剩余期限发放的赠金。
  • FLEXIBLE_SEATS_ITEM:记录一段时间内(连续几天)部分用户的使用情况。目前仅适用于用户 无需任何承诺
  • COUPON_DISCOUNT_ITEM:与优惠券相关的折扣金额。
  • MIGRATED_CREDIT_ITEM:来自 CONVERSION 迁移的功劳。
  • COMMITMENT_PREPAY_BILLING_PERIOD_ITEM:表示 在整个付款周期开始时创建的 合约期预付款。

usage.amount

对于 Google Workspace 基于席位的使用量,此字段表示付费席位。对于 例如,承诺的席位数或弹性方案付费的席位数。

usage.pricing_unit

credits.id

对于 Google Cloud,这可以是字母数字唯一标识符 (12-b34-c56-d78) 或赠金类型说明(承诺使用折扣) 折扣: CPU )。如果 credits.id 字段为空,则表示产品 SKU 未与 赠送金额。

credits.full_name

对于 Google Cloud,此字段是对以字母数字表示的 credits.id 用户可理解的说明。例如,免费试用 赠金基于支出的承诺使用折扣 折扣 ,了解所有最新动态。系统仅会为使用字母数字的 SKU 填充 credits.full_namecredits.id。如果 credits.id 的值是赠金类型的说明 (例如 承诺使用折扣: CPU ),则 credits.full_name 字段将为空。

credits.type

对于 Google Cloud,赠金类型包括:

  • COMMITTED_USAGE_DISCOUNT:为 Compute Engine 购买的基于资源的承诺使用合约,以获得大幅度的虚拟机使用费折扣。
  • COMMITTED_USAGE_DISCOUNT_DOLLAR_BASE :为换取服务而购买的基于支出的承诺使用合约 您承诺的支出最低金额。
  • DISCOUNT:折扣赠金类型用于 。请注意,在 Cloud Billing 报告在 Partner Sales Console,折扣赠金类型列为 基于支出的折扣(按合同规定)
  • FREE_TIER : 某些服务提供不超过指定数量的免费资源使用量 限制 对于这些服务,赠金会用于实现免费层级使用量。
  • PROMOTION:赠送金额类型包括 Google Cloud 免费版 试用 营销活动赠金或其他补助金,供客户使用 Google Cloud。 赠送金额(如果有)被视为一种付款方式, 自动扣减费用,以减少您的总账单费用。
  • RESELLER_MARGIN:如果您是转销商,则转销商利润 赠金类型表示每 符合条件的订单项。
  • SUBSCRIPTION_BENEFIT:购买长期订阅后可获得的赠金 以换取折扣。
  • SUSTAINED_USAGE_DISCOUNT :持续使用折扣赠金类型是系统为您自动应用 以高额的费用运行特定 Compute Engine 资源而获得 部分。

adjustmentsInfo

对于 Google Cloud,只有当为 Cloud Billing 修改生成了费用专列项时,系统才会填充这些值。adjustmentsInfo type 包含有关调整的详细信息,以及是否签发以进行修正 错误或其他原因。

adjustmentsInfo.adjustment_type

对于 Google Cloud,这包括:

  • USAGE_CORRECTION:由于报告的使用情况有误而进行的更正。
  • PRICE_CORRECTION:由不正确的定价规则导致的更正。
  • METADATA_CORRECTION:更正了元数据,以在不更改 费用。
  • GOODWILL:出于善意向客户发放的赠金。
  • SALES_BASED_GOODWILL:出于商誉向客户发放的赠金,例如 部分。
  • SLA_VIOLATION:因服务等级而向客户发放的赠金 违反目标 (SLO) 的情况。
  • BALANCE_TRANSFER:从一个付款账号转入资金的调整项 到另一个位置。
  • ACCOUNT_CLOSURE:将已关闭账号的余额结清为零的调整项。
  • GENERAL_ADJUSTMENT:常规的结算账号修改。

adjustmentsInfo.adjustment_mode

对于 Google Cloud,这包括:

  • PARTIAL_CORRECTION:更正会部分排除原始用法 和费用。
  • COMPLETE_NEGATION_WITH_REMONETIZATION:更正操作会完全取消原始使用量和费用,并使用更新后的使用量和费用发出更正后的专列项。
  • COMPLETE_NEGATION:更正操作会完全取消原始使用量和费用,并且不再重新计算使用量的费用。
  • MANUAL_ADJUSTMENT:手动将调整项分配给费用和使用量。

price.effective_price

对于 Google Cloud,这是 Google Cloud 或 Google Maps Platform SKU 和 SKU 价格 层级。 如果您的 Cloud Billing 账号采用自定义合同价格,这是您 具体结算账号的价格;否则,这就是列表 价格 与 SKU 或 SKU 层级相同