Auf dieser Seite finden Sie Beispiele für Abfragen von Channel Services-Daten, die in einen BigQuery-Datensatz exportiert wurden.
Weitere Informationen zum Export von Channel Services-Daten finden Sie unter Channel Services-Datenexport nach BigQuery einrichten. Weitere Tipps zur Fehlerbehebung finden Sie unter Probleme mit BigQuery-Exporten beheben.
BigQuery-Tabelle ermitteln und darauf zugreifen
Channel Services-Exporte werden über die Partner Sales Console eingerichtet.
Der Name der Tabelle hat folgendes Format: PROJECT_ID.DATASET_NAME.reseller_billing_detailed_export_v1
.
Damit andere Nutzer einen Channel Services-Export aufrufen können, müssen Sie die richtigen Berechtigungen anwenden. Sie können die Rolle bigquery.dataViewer
beispielsweise Ihren Anmeldedaten für das Projekt, das Dataset oder die Tabelle selbst zuweisen.
Beispielabfragen
Die folgenden Beispiele enthalten eine Beispielabfrage und eine grundlegende Erklärung zur Interpretation der Ergebnisse. Die Ergebnisse enthalten die Google Cloud-Nutzungskosten für jeden konfigurierten Kunden oder Channelpartner in der Partner Sales Console.
Summe der Partnerkosten nach Rechnungskonto
Mit dieser Abfrage können Sie eine Rechnung prüfen, die Sie von Google erhalten. Die Werte cost
und credit.amount
sind die Summen aller Zeilen. Dazu gehören Nutzungskosten, Steuern, Anpassungen und Rundungsfehler.
SELECT
payer_billing_account_id,
currency,
invoice.month,
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)
GROUP BY
payer_billing_account_id,
currency,
invoice.month
ORDER BY
payer_billing_account_id,
currency,
invoice.month;
Summe der Kundenkosten nach Cloud Billing-Rechnungsunterkonto
Mit dieser Abfrage können Sie die abrechenbare Nutzung für jeden Kunden zusammenfassen. Die Werte customer_cost
und credit.customer_amount
geben die Summen aller Zeilen an, die Nutzungskosten darstellen. Zeilen, die Steuern, Anpassungen und Rundungen darstellen, enthalten einen null
-Wert.
Bei Gutschriften, bei denen type
auf RESELLER_MARGIN festgelegt ist, wird customer_amount
auf null gesetzt, damit die Marge nicht in der Kundenabrechnung zu sehen ist.
Die Werte customer_cost
und credit.customer_amount
geben Ihre Konfigurationen für die Preisanpassung an. Wenn der RebillingBasis
für die Google Cloud-Berechtigung eines bestimmten Kunden beispielsweise auf Direct Customer Cost minus 5%
festgelegt ist, ist der Wert für customer_cost
0, 95 multipliziert mit cost
. Dies entspricht der konfigurierten Kostenminderung.
Die Ergebnisse dieser Abfrage enthalten jedes Cloud-Rechnungsunterkonto, den zugehörigen Ressourcennamen des Kunden des Vertriebsprogramms für Partner, den Rechnungsmonat und die abrechenbare Gesamtnutzung.
SELECT
customer_name,
billing_account_id,
payer_billing_account_id,
currency,
invoice.month,
SUM(customer_cost)
+ SUM(
IFNULL(
(SELECT SUM(c.customer_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)
GROUP BY
customer_name,
billing_account_id,
payer_billing_account_id,
currency,
invoice.month
ORDER BY
customer_name,
billing_account_id,
payer_billing_account_id,
currency,
invoice.month;
Summe der Kundenkosten nach Cloud Billing-Unterkonto, wie sie dem Inhaber des Unterkontos angezeigt wird
Diese Abfrage zeigt, wie die Datenkosten mit den Angaben übereinstimmen, die ein Kunde, der die Daten weiterverkauft (oder Sie als Partner), sieht, wenn er die Google Cloud Console für sein Unterkonto öffnet.
- Bei Gutschriften, für die
type
auf RESELLER_MARGIN festgelegt ist, wird dieser Wert in der SBA-Ansicht ausgeblendet. - Kosten, bei denen
cost_type
Steuer ist, werden in der SBA-Ansicht ausgeblendet. Der Reseller muss die anwendbaren Steuern separat auf die Rechnungen für den Weiterverkauf hinzufügen.
Gelegentlich kann cost_at_list
für einige Einträge null sein, was dazu führt, dass sich dieses Ergebnis von dem in der Google Cloud Console unterscheidet. Verwenden Sie in diesem Fall stattdessen IFNULL(cost_at_list, cost)
. Weitere Informationen finden Sie unter Gebühren ohne Listenkosten.
SELECT
customer_name,
currency,
SUM(cost_at_list) AS list_cost,
SUM(cost - cost_at_list) AS negotiated_savings,
SUM(cost)
+ SUM(
IFNULL(
(
SELECT
SUM(c.amount)
FROM
UNNEST(credits) AS c
WHERE
c.type != 'RESELLER_MARGIN'
),
0)) AS total
FROM
`PROJECT_ID.DATASET_NAME.reseller_billing_detailed_export_v1`
WHERE
cost_type != 'tax'
AND billing_account_id = 'BILLING_SUBACCOUNT_ID'
AND invoice.month = 'YYYYMM'
GROUP BY
customer_name,
currency
ORDER BY
customer_name,
currency;
Summe der Channelpartnerkosten nach Rechnungskonto
Wenn Sie ein Distributor sind, können Sie mit dieser Abfrage die abrechenbare Nutzung für jeden Channelpartner zusammenfassen. Die Werte channel_partner_cost
und credit.channel_partner_amount
geben die Summe aller Zeilen an, die die Nutzungskosten darstellen. Zeilen, die Steuern, Anpassungen und Rundungen darstellen, enthalten den Wert null
.
Bei Gutschriften, bei denen type
auf RESELLER_MARGIN festgelegt ist, wird channel_partner_amount
auf null gesetzt, damit die Marge nicht in der Abrechnung für Channelpartner sichtbar ist.
Die Werte channel_partner_cost
und credit.channel_partner_amount
zeigen Ihre Konfigurationen für die Preisneuberechnung. Wenn RebillingBasis
für einen bestimmten Channelpartner beispielsweise auf Direct Customer Cost minus 5%
festgelegt ist, ist der Wert für channel_partner_cost
0, 95 multipliziert mit cost
. Dieser Wert entspricht der konfigurierten Kostenminderung.
Die Ergebnisse dieser Abfrage enthalten jedes Rechnungskonto, den Channelpartnerresource_name
, der mit Kunden unter diesem Rechnungskonto verknüpft ist, den Rechnungsmonat und die abrechenbare Gesamtnutzung.
SELECT
channel_partner_name,
payer_billing_account_id,
currency,
invoice.month,
SUM(channel_partner_cost)
+ SUM(
IFNULL(
(SELECT SUM(c.channel_partner_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)
GROUP BY
channel_partner_name,
payer_billing_account_id,
currency,
invoice.month
ORDER BY
channel_partner_name,
payer_billing_account_id,
currency,
invoice.month;
Summe der Kosten, die keinem Kunden zugewiesen sind
Mit dieser Abfrage können Sie Kosten zusammenfassen, die nicht mit einem Channel Services-Kunden verknüpft sind, aber für andere Kunden in Rechnung gestellt werden können. Die Werte cost
und credit.amount
geben die Summe aller Zeilen an, in denen billing_account_id
und payer_billing_account_id
unterschiedlich sind. billing_account_id
steht für das Cloud Billing-Unterkonto.
Bei Gutschriften, bei denen type
auf RESELLER_MARGIN festgelegt ist, wird der Gutschriftbetrag in dieser Abfrage nicht berücksichtigt. Der Gutschriftsbetrag ist für Ihre Zuweisung bestimmt und gilt nicht als Kundenkosten. Der Betrag von RESELLER_MARGIN
ist in Ihren Kosten enthalten und wird auf den von Google gesendeten Rechnungen berücksichtigt.
SELECT
billing_account_id,
payer_billing_account_id,
currency,
invoice.month,
SUM(cost)
+ SUM(
IFNULL(
(SELECT SUM(c.amount) FROM UNNEST(credits) AS c WHERE c.type != 'RESELLER_MARGIN'), 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 customer_name IS NULL
GROUP BY
billing_account_id,
payer_billing_account_id,
currency,
invoice.month
ORDER BY
billing_account_id,
payer_billing_account_id,
currency,
invoice.month;
Google Workspace-Datenansicht ähnlich wie CSV-Rechnung
Wenn Sie Google Workspace-Reseller sind, sehen Sie möglicherweise eine Ansicht der Google Workspace-Abrechnungsdaten mit ähnlichen Spalten wie in den CSV-Rechnungsdateien.
SELECT
(
SELECT
ws_labels.value
FROM
UNNEST(system_labels) AS ws_labels
WHERE
ws_labels.key = 'workspace.googleapis.com/domain_name'
) AS domain_name,
billing_account_id AS customer_id,
sku.description AS sku_name,
sku.id AS sku_id,
(
SELECT
ws_labels.value
FROM
UNNEST(system_labels) AS ws_labels
WHERE
ws_labels.key = 'workspace.googleapis.com/usage_type'
) AS description,
(
SELECT
ws_labels.value
FROM
UNNEST(system_labels) AS ws_labels
WHERE
ws_labels.key = 'workspace.googleapis.com/order_id'
) AS order_name,
FORMAT_TIMESTAMP('%b %d', usage_start_time, 'America/Los_Angeles')
AS start_date,
FORMAT_TIMESTAMP(
'%b %d',
TIMESTAMP_SUB(usage_end_time, INTERVAL 1 MINUTE),
'America/Los_Angeles')
AS end_date,
SUM(usage.amount_in_pricing_unit) AS quantity,
(
SELECT ws_labels.value
FROM UNNEST(system_labels) AS ws_labels
WHERE ws_labels.key = 'workspace.googleapis.com/purchase_order_id'
) AS po_number,
SUM(cost) AS amount,
SUM(cost_at_list) AS list_amount,
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 = 'EXTERNAL_BILLING_ACCOUNT_ID'
AND invoice.month = 'INVOICE_MONTH'
GROUP BY
domain_name,
customer_id,
sku_name,
sku_id,
description,
order_name,
start_date,
end_date,
po_number
HAVING amount != 0
ORDER BY
domain_name,
order_name,
start_date,
end_date;
Weitere Spalten, die Sie den SELECT
- und GROUP BY
-Bedingungen hinzufügen können:
billing_account_id
: Stellt die Cloud Identity-ID des Kunden dar.customer_name
: Stellt die Kundenressource dar, die in API-Aufrufen verwendet werden kann.channel_partner_name
: (Für Distributoren) Stellt den Channelpartner dar.entitlement_name
: Ressourcenname der Berechtigung in Channel Services.customer_correlation_id
: Eine CRM-ID (Customer Relationship Management), die Sie für einen Kunden definieren können.usage.amount
: Bei der sitzbasierten Nutzung von Google Workspace gibt dies die kostenpflichtigen Plätze an. Beispiel: Gekaufte Lizenzen für Verträge oder die Anzahl der zugewiesenen Lizenzen für Flex-Abos.
Das Abfrageergebnis unterscheidet sich in folgenden Punkten von der CSV-Rechnung:
- In der CSV-Spalte „Beschreibung“ wird ein visuell lesbarer String verwendet, während im BigQuery-Export enum-Werte verwendet werden.
- Die Spalten „Startdatum“ und „Enddatum“ der CSV-Datei enthalten keine Nullen (z. B. 01. Mai), während in der BigQuery-Abfrage Werte mit Nullen aufgefüllt werden (z. B. 01. Mai). Sie können die Zeitstempelwerte auch direkt verwenden.
usage_start_time
ist einschließend,usage_end_time
jedoch ausschließend. - Die CSV-Datei enthält am Ende eine einzelne Zeile „Steuer“. Der BigQuery-Export enthält Steuerzeilen auf Aboebene, die zusammen denselben Betrag ergeben wie die CSV-Zeile „Steuer“.
Abrechnungsdaten für Offlinebestellungen, die einer PDF-Rechnung ähneln (Vorschau)
Wenn Sie ein Reseller sind, der auch Offlinebestellungen aufgibt (Bestellungen, die nicht über die Partner Sales Console aufgegeben werden), können Sie sich eine Ansicht der Abrechnungsdaten mit ähnlichen Spalten wie in den CSV-Rechnungsdateien ansehen.
SELECT
billing_account_id AS customer_name,
service.description AS sku_name,
sku.id AS sku_id,
FORMAT_TIMESTAMP('%b %d', usage_start_time, 'America/Los_Angeles')
AS start_date,
FORMAT_TIMESTAMP('%b %d', usage_end_time, 'America/Los_Angeles')
AS end_date,
SUM(usage.amount_in_pricing_unit) AS quantity,
SUM(cost) AS amount,
FROM `PROJECT_ID.DATASET_NAME.reseller_billing_offline_orders_detailed_export_v0`
WHERE
export_time BETWEEN TIMESTAMP(START_DATE)
AND TIMESTAMP(END_DATE)
AND payer_billing_account_id = 'EXTERNAL_BILLING_ACCOUNT_ID'
AND invoice.month = 'INVOICE_MONTH'
GROUP BY
customer_name,
sku_name,
sku_id,
start_date,
end_date
HAVING amount != 0
ORDER BY
customer_name,
start_date,
end_date,
sku_id;
Das Abfrageergebnis unterscheidet sich in folgenden Punkten von der PDF-Rechnung:
- Sie können den Zeitstempel in einen Datumswert in der Zeitzone „America/Los_Angeles“ umwandeln. Sowohl
usage_start_time
als auchusage_end_time
sind ausschließend. - Die PDF-Datei enthält eine detaillierte Aufschlüsselung der lokalen und staatlichen Umsatzsteuer. Der BigQuery-Export enthält Steuerzeilen auf Aboebene, die sich zum Steuerbetrag für das gesamte Abo summieren.