Beispiele für BigQuery Export-Abfragen

Auf dieser Seite finden Sie Beispiele für die Abfrage von Channel Services-Daten, die in ein BigQuery-Dataset

Weitere Informationen zum Datenexport von Channel Services finden Sie unter Anleitung Channel Services-Datenexport einrichten BigQuery Für Weitere Tipps zur Fehlerbehebung finden Sie unter Probleme mit BigQuery beheben Exporte.

BigQuery-Tabelle identifizieren und darauf zugreifen

Channel Services-Exporte werden mit dem Partner Sales Console

Der Name der Tabelle hat folgendes Format: PROJECT_ID.DATASET_NAME.reseller_billing_detailed_export_v1

Damit andere Nutzer einen Channel Services-Export sehen können, müssen Sie die erforderlichen Berechtigungen. Sie können beispielsweise die Rolle bigquery.dataViewer zu Ihren Anmeldedaten für das Projekt, Dataset oder in der Tabelle selbst.

Beispielabfragen

Die folgenden Beispiele enthalten eine Beispielabfrage und eine grundlegende Erklärung, wie Sie die Ergebnisse zu interpretieren. Die Ergebnisse enthalten Google Cloud-Nutzungskosten für alle konfigurierten Kunden oder Channelpartner im Partner Sales Console.

Summe der Partnerkosten nach Rechnungskonto

Sie können diese Abfrage verwenden, um eine Rechnung zu überprüfen, die Sie von Google erhalten. Die Werte cost und credit.amount sind die Summen für alle Zeilen. Dazu gehören Nutzungskosten, Steuern, Korrekturen 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-Rechnungsunterkonto

Mit dieser Abfrage können Sie die abrechnungsfähige Nutzung für jeden Kunden zusammenfassen. Die Werte customer_cost und credit.customer_amount zeigen die Summen aller Zeilen an, Nutzungskosten darstellen. In Zeilen, die Steuern, Korrekturen und Rundungen enthalten, Einen null-Wert.

Für Gutschriften, bei denen type auf RESELLER_MARGIN gesetzt ist, lautet der Wert customer_amount auf null setzen, damit die Marge nicht in der Kundenabrechnung angezeigt wird.

Die Werte customer_cost und credit.customer_amount geben Ihre Preisneuberechnung an. Konfigurationen. Wenn beispielsweise die RebillingBasis für die Die Google Cloud-Berechtigung ist auf Direct Customer Cost minus 5% festgelegt. Der Wert von customer_cost beträgt 0,95 multipliziert mit cost. Dies entspricht dem konfigurierten Wert weniger Kosten.

Die Ergebnisse dieser Abfrage enthalten alle Cloud-Rechnungsunterkonten, deren zugehöriger Partner-Vertrieb Customer-Ressource Name, Rechnungsmonat und die gesamte abrechenbare Nutzung.

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-Rechnungsunterkonto, die dem Inhaber des Unterkontos angezeigt wurde

Diese Abfrage zeigt, wie die Datenkostenzahlen mit den Daten eines Reseller-Kunden übereinstimmen. (oder Sie als Partner) sehen, wenn er die Google Cloud Console für seine Unterkonto.

  1. Für Gutschriften, bei denen type auf RESELLER_MARGIN festgelegt ist, wird dies in SBA-Ansicht
  2. Bei Kosten, bei denen cost_type Steuern enthält, wird dieser Wert in der SBA-Ansicht ausgeblendet. Die Der Reseller muss die anwendbaren Steuern separat zu denen seiner Reseller hinzufügen Rechnungen.

Gelegentlich kann cost_at_list für einige Datensätze, die dieses Ergebnis verursachen, null sein in der Google Cloud Console. Verwenden Sie in diesem Fall Stattdessen IFNULL(cost_at_list, cost). Weitere Informationen finden Sie unter Belastungen ohne Liste Kosten.

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 Händler sind, können Sie diese Abfrage verwenden, um die abrechnungsfähige Nutzung für Channelpartner Die Werte channel_partner_cost und credit.channel_partner_amount zeigt die Summe aller Zeilen an, die die Nutzung darstellen Kosten. In Zeilen, in denen Steuern, Korrekturen und Rundungen dargestellt werden, wird ein null-Wert angezeigt.

Für Gutschriften, bei denen type auf RESELLER_MARGIN gesetzt ist, gilt Folgendes: channel_partner_amount ist auf 0 gesetzt, damit der Rand nicht sichtbar ist bei der Abrechnung für Channelpartner.

Die Werte channel_partner_cost und credit.channel_partner_amount zeigen Ihre Konfigurationen für Preisneuberechnungen. Wenn beispielsweise die RebillingBasis für eine bestimmte Channelpartner auf Direct Customer Cost minus 5% gesetzt ist, Der Wert von channel_partner_cost beträgt 0,95 multipliziert mit cost. Dies spiegelt die eine Reduzierung Ihrer Kosten konfiguriert.

Die Ergebnisse dieser Abfrage enthalten jedes Rechnungskonto, den Channelpartner resource_name, die mit Kunden unter diesem Rechnungskonto verknüpft sind, wird die Rechnung und die gesamte abrechenbare Nutzung.

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 einem Kunden nicht zugewiesen sind

Mit dieser Abfrage können Sie die Kosten zusammenfassen, die nicht mit Channel Services verknüpft sind. aber die Nutzung kann auch anderen Kunden in Rechnung gestellt werden. Die Werte cost und credit.amount zeigen die Summe aller Zeilen an, in denen der billing_account_id und payer_billing_account_id sind unterschiedlich. Die billing_account_id steht für das Cloud-Rechnungsunterkonto.

Für Gutschriften, bei denen type auf RESELLER_MARGIN festgelegt ist, wird in dieser Abfrage Folgendes ausgeschlossen: des Guthabenbetrags. Die Gutschrift ist für Ihre Zuweisung vorgesehen und nicht Kundenkosten betrachtet. Der Betrag in Höhe von RESELLER_MARGIN ist in Ihrem und auf den von Google gesendeten Rechnungen ausgewiesen.

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 der CSV-Rechnung

Als Google Workspace-Reseller können Sie Google Workspace-Abrechnungsdaten mit ähnlichen Spalten wie die CSV-Rechnung -Dateien.

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,
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 relevante Spalten, die den SELECT- und GROUP BY-Klauseln hinzugefügt werden können:

  • billing_account_id: Stellt die Cloud Identity-ID des Kunden dar.
  • customer_name: Stellt die Kundenressource dar, die die in API-Aufrufen verwendet werden.
  • channel_partner_name (für Händler): Steht für den Kanal. Partner.
  • entitlement_name: Ressourcenname der Berechtigung in Channel Services.
  • customer_correlation_id: Eine CRM-ID (Customer-Relationship-Management), die die Sie für einen Kunden definieren können.
  • usage.amount: Für die lizenzbasierte Nutzung von Google Workspace ist dies steht für bezahlte Plätze. Beispiel: gekaufte Lizenzen für Zusicherungen oder Anzahl der zugewiesenen Lizenzen für Flex-Abos.

Das Ergebnis der Abfrage unterscheidet sich in den folgenden Punkten von der CSV-Rechnung:

  • Die CSV-"Beschreibung" -Spalte einen menschenlesbaren String verwendet, während die In BigQuery Export werden Enum-Werte verwendet.
  • Das Start-/Enddatum der CSV-Datei Spalten sind nicht mit Nullen aufgefüllt (z. B. 1. Mai), während Die BigQuery-Abfrage verwendet aufgefüllte Werte (z. B. 1. Mai). Sie können verwenden Sie auch die Zeitstempelwerte direkt. Der usage_start_time ist inklusiv, aber usage_end_time ist exklusiv.
  • Die CSV-Datei enthält ein einzelnes Linie am Ende, während die BigQuery Export enthält Steuerpositionen auf Aboebene, die ergeben den gleichen Betrag wie in der CSV-Datei Zeile.