将“渠道服务”数据导出至 BigQuery

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

您可以使用 BigQuery 将渠道服务结算数据导出到指定的 BigQuery 数据集。此数据有助于您对客户或渠道合作伙伴如何使用您提供的服务执行详细分析。

从渠道服务导出的内容包含 Cloud Billing 导出内容中未以其他方式包含的转销商专用数据。这包括已配置的重新定价规则的费用、赠金和用量数据。这些导出功能还会将客户的父级结算帐号的所有信息汇总到一个数据集中。

不过,“渠道服务”导出文件中的数据与 Cloud Billing 导出文件兼容,您可以使用查询联接这两个数据集以进行分析。

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

准备工作

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

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

如果您已有用于 Cloud Billing 数据导出的项目和 BigQuery 数据集,则可以将该项目和数据集重用于“渠道服务”导出。

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

执行导出所需的权限

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

选择项目和数据集

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

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

  • 如果您将 BigQuery 数据集配置为使用多区域位置,则从上个月开始,每个选定数据源的 BigQuery Export 数据均可用。例如,如果您在 9 月 23 日启用 BigQuery 导出,则导出的数据将包含自 8 月 1 日起的数据。

  • 如果您将 BigQuery 数据集配置为使用单区域位置(多区域位置(美国或欧盟)除外),则每个选定数据源的 BigQuery 导出数据将从启用导出功能之日起开始提供。也就是说,非多区域数据集位置不会追溯添加 BigQuery 导出数据,因此您不会看到启用导出之前的 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 Export 中的数据设置访问权限控制。如需了解详情,请参阅 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 使用权的资源名称。使用以下格式: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 结构体 用于描述标记的字段,例如键、值和命名空间。
tags.key 字符串 与此特定标记关联的密钥的简称或显示名。
tags.value 字符串 附加到标记键的资源。在任何给定时间,对于给定键,只能将一个值附加到资源。
tags.inherited 布尔值 指明标记绑定是继承的(继承的标记 = True)还是直接的/非继承的(继承的标记 = False)。
tags.namespace 字符串 表示定义标记键和值的资源层次结构。命名空间可以与标记键和标记值的简称组合使用,为标记键或标记值创建一个全局唯一的完全限定名称。
customer_correlation_id 字符串 客户的外部 CRM ID。仅当此客户存在 CRM ID 时填充。
price 结构体 用于描述与使用量费用相关的结构和值的字段。
price.effective_price 数值 按用量收取的价格。
price.tier_start_amount 数值 SKU 价格层级的下限单位数。例如,具有三个价格层级(例如 0-100 个单位、101-1000 个单位和超过 1001 个单位)的 SKU 会为 SKU 显示三行价格行,price.tier_start_amount 字段中的 0、101 和 1001 表示 SKU 价格层级的起始单位数量。详细了解 Google Cloud 价格层级
price.unit 字符串 指定了价格并衡量资源用量的用量单位(例如,吉比字节、太比字节、月、年、吉比字节小时、吉比字节月或计数)。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,这是与使用情况关联的 Cloud Billing 帐号。
  • 对于 Google Workspace,这是客户的 Cloud Identity ID。

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 的直观易懂的说明。例如免费试用赠金基于支出的承诺使用折扣。只有使用字母数字 credits.id 的 SKU 才会填充 credits.full_name 值。如果 credits.id 的值是赠金类型的说明(例如承诺使用折扣:CPU),则 credits.full_name 字段将为空。

credits.type

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

  • COMMITTED_USAGE_DISCOUNT:为 Compute Engine 购买基于资源的承诺使用合约,来换取大幅度的虚拟机使用折扣。
  • COMMITTED_USAGE_DISCOUNT_DOLLAR_BASE:为服务购买的基于支出的承诺使用折扣,以承诺支出最低金额。
  • DISCOUNT:折扣赠金类型用于达到合同支出阈值后获得的赠金。请注意,在 Partner Sales Console 提供的 Cloud Billing 报告中,折扣赠金类型被列为基于支出的折扣(合同)
  • FREE_TIER:某些服务提供不超过指定限额的免费资源使用量。对于这些服务,我们会应用赠金以实现免费层级使用量。
  • PROMOTION:促销赠金类型包括 Google Cloud 免费试用和营销活动赠金,或其他 Google Cloud 使用补贴。促销赠金(如有)被视为一种付款方式,并会自动应用以减少您的总账单费用。
  • RESELLER_MARGIN:如果您是转销商,则转销商利润赠金类型表示从每个符合条件的订单项获得的转销商计划折扣。
  • SUBSCRIPTION_BENEFIT:通过购买服务的长期订阅来换取折扣所获得的赠金。
  • SUSTAINED_USAGE_DISCOUNT:持续使用折扣赠金类型是指您在结算月份的大部分时间内运行特定 Compute Engine 资源而获得的自动折扣。

adjustmentsInfo

对于 Google Cloud,只有在为 Cloud Billing 修改生成费用专列项时,系统才会填充这些值。adjustmentsInfo 类型包含有关调整项的详细信息,无论调整项是出于更正错误还是其他原因发出。

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 层级的定价