Übertragungen verwalten

In diesem Dokument wird gezeigt, wie vorhandene Datenübertragungskonfigurationen verwaltet werden.

Sie können auch eine vorhandene Übertragung manuell auslösen, was auch als Starten einer Backfill-Ausführung bezeichnet wird.

Übertragungen aufrufen

Rufen Sie Ihre vorhandenen Übertragungskonfigurationen auf. Rufen Sie dazu Informationen zu jeder Übertragung auf, listen Sie alle vorhandenen Übertragungen auf und rufen Sie den Verlauf der Übertragungsausführungen oder Logeinträge auf.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle für das Projekt BigQuery-Nutzer (roles/bigquery.user) zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Aufrufen von Übertragungsdetails benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Darüber hinaus benötigen Sie Berechtigungen zum Aufrufen von Cloud Logging-Daten, um Logeinträge über die Google Cloud Console aufrufen zu können. Die Rolle „Log-Betrachter“ (roles/logging.viewer) bietet Ihnen Lesezugriff auf alle Logging-Features. Weitere Informationen zu den Berechtigungen und Rollen von Identity and Access Management (IAM), die für Cloud-Logging-Daten gelten, finden Sie in der Anleitung zur Zugriffssteuerung von Cloud Logging.

Weitere Informationen zu IAM-Rollen in BigQuery Data Transfer Service finden Sie in der Zugriffssteuerung.

Übertragungsdetails abrufen

Nachdem Sie eine Übertragung erstellt haben, können Sie Informationen zu der Übertragungskonfiguration abrufen. Die Konfiguration enthält die Werte, die Sie bei der Erstellung der Übertragung angegeben haben, sowie andere wichtige Informationen wie Ressourcennamen.

So rufen Sie Informationen zu einer Übertragungskonfiguration ab:

Console

  1. Rufen Sie die Seite Datenübertragungen auf.

    Zu „Datenübertragungen”

  2. Wählen Sie die Übertragung aus, für die Sie die Details abrufen möchten.

  3. Klicken Sie auf der Seite Übertragungsdetails auf Konfiguration, um die Übertragungskonfiguration und die Details der Datenquelle aufzurufen. Im folgenden Beispiel werden die Konfigurationsattribute einer Google Ads-Übertragung dargestellt:

    Grafik: Übertragungskonfiguration in der Console

bq

Geben Sie den Befehl bq show ein und fügen Sie den Ressourcennamen der Übertragungskonfiguration hinzu. Mit dem Flag --format können Sie das Ausgabeformat festlegen.

bq show \
--format=prettyjson \
--transfer_config resource_name

Ersetzen Sie resource_name durch den Ressourcennamen der Übertragung (auch als Übertragungskonfiguration bezeichnet). Wenn Sie den Ressourcennamen der Übertragung nicht kennen, suchen Sie den Ressourcennamen mit bq ls --transfer_config --transfer_location=location.

Geben Sie beispielsweise den folgenden Befehl ein, um die Übertragungskonfiguration für projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7 anzeigen zu lassen:

bq show \
--format=prettyjson \
--transfer_config projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

Verwenden Sie die Methode projects.locations.transferConfigs.get und geben Sie die Übertragungskonfiguration mithilfe des Parameters name an.

Java

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Java in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Java API.

Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.GetTransferConfigRequest;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import java.io.IOException;

// Sample to get config info.
public class GetTransferConfigInfo {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    // i.e projects/{project_id}/transferConfigs/{config_id}` or
    // `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`
    getTransferConfigInfo(configId);
  }

  public static void getTransferConfigInfo(String configId) throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      GetTransferConfigRequest request =
          GetTransferConfigRequest.newBuilder().setName(configId).build();
      TransferConfig info = dataTransferServiceClient.getTransferConfig(request);
      System.out.print("Config info retrieved successfully." + info.getName() + "\n");
    } catch (ApiException ex) {
      System.out.print("config not found." + ex.toString());
    }
  }
}

Übertragungskonfigurationen auflisten

So listen Sie alle vorhandenen Übertragungskonfigurationen in einem Projekt auf:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Datenübertragungen auf.

    Zu „Datenübertragungen”

  2. Wenn im Projekt Übertragungskonfigurationen vorhanden sind, wird auf der Seite Datenübertragungen eine Liste der Übertragungskonfigurationen angezeigt.

bq

Geben Sie den Befehl bq ls ein und fügen Sie die Flags --transfer_location und --transfer_config hinzu, um alle Übertragungskonfigurationen für ein Projekt nach dem Standort anzeigen zu lassen. Sie können auch das Flag --project_id bereitstellen, um ein bestimmtes Projekt anzugeben. Wenn --project_id nicht angegeben ist, wird das Standardprojekt verwendet. Mit dem Flag --format können Sie das Ausgabeformat festlegen.

Geben Sie das Flag --filter an, um Übertragungskonfigurationen für bestimmte Datenquellen aufzulisten.

Wenn eine bestimmte Anzahl von Übertragungskonfigurationen auf einer Seite angezeigt werden soll, geben Sie das Flag --max_results an, um die Anzahl von Übertragungen festzulegen. Durch diesen Befehl wird ein Seitentoken zurückgegeben, das Sie mit dem Flag --page_token angeben, um die nächsten n Konfigurationen aufzurufen. Es gibt ein Limit von 1.000 Konfigurationen, die zurückgegeben werden, wenn --max_results weggelassen wird. --max_results akzeptiert keine Werte, die größer als 1.000 sind. Wenn Ihr Projekt mehr als 1.000 Konfigurationen hat, können Sie mit --max_results und --page_token alle iterieren.

bq ls \
--transfer_config \
--transfer_location=location \
--project_id=project_id \
--max_results=integer \
--filter=dataSourceIds:data_sources

Ersetzen Sie Folgendes:

Beispiele:

Geben Sie den folgenden Befehl ein, um für Ihr Standardprojekt alle Übertragungskonfigurationen in den USA aufzurufen. Mit dem Flag --format können Sie das Ausgabeformat festlegen.

bq ls \
--format=prettyjson \
--transfer_config \
--transfer_location=us

Geben Sie den folgenden Befehl ein, um für die Projekt-ID myproject alle Übertragungskonfigurationen in den USA aufzurufen.

bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject

Geben Sie den folgenden Befehl ein, um die letzten drei Übertragungskonfigurationen aufzulisten.

bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject \
--max_results=3

Durch diesen Befehl wird ein Token für die nächste Seite zurückgegeben. Kopieren Sie das Seitentoken und geben Sie es im Befehl bq ls an, um die nächsten drei Ergebnisse anzeigen zu lassen.

bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject \
--max_results=3 \
--page_token=AB1CdEfg_hIJKL

Geben Sie den folgenden Befehl ein, um die Übertragungskonfigurationen für Google Ads und Campaign Manager für die Projekt-ID myproject aufzulisten.

bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject \
--filter=dataSourceIds:dcm_dt,google_ads

API

Verwenden Sie die Methode projects.locations.transferConfigs.list und geben Sie die Projekt-ID mithilfe des Parameters parent an.

Java

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Java in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Java API.

Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.ListTransferConfigsRequest;
import com.google.cloud.bigquery.datatransfer.v1.ProjectName;
import java.io.IOException;

// Sample to get list of transfer config
public class ListTransferConfigs {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    final String projectId = "MY_PROJECT_ID";
    listTransferConfigs(projectId);
  }

  public static void listTransferConfigs(String projectId) throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      ProjectName parent = ProjectName.of(projectId);
      ListTransferConfigsRequest request =
          ListTransferConfigsRequest.newBuilder().setParent(parent.toString()).build();
      dataTransferServiceClient
          .listTransferConfigs(request)
          .iterateAll()
          .forEach(config -> System.out.print("Success! Config ID :" + config.getName() + "\n"));
    } catch (ApiException ex) {
      System.out.println("Config list not found due to error." + ex.toString());
    }
  }
}

Python

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Python in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Python API.

Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

from google.cloud import bigquery_datatransfer

transfer_client = bigquery_datatransfer.DataTransferServiceClient()

project_id = "my-project"
parent = transfer_client.common_project_path(project_id)

configs = transfer_client.list_transfer_configs(parent=parent)
print("Got the following configs:")
for config in configs:
    print(f"\tID: {config.name}, Schedule: {config.schedule}")

Verlauf der Übertragungsausführung abrufen

Beim Ausführen der geplanten Übertragungen wird für alle Übertragungskonfigurationen ein Ausführungsverlauf erstellt, der u. a. die erfolgreichen Übertragungen und fehlgeschlagenen Übertragungen enthält. Übertragungen, die älter als 90 Tage sind, werden automatisch aus dem Ausführungsverlauf gelöscht.

So zeigen Sie den Ausführungsverlauf für eine Übertragungskonfiguration an:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Datenübertragungen auf.

    Zu „Datenübertragungen”

  2. Klicken Sie in der Liste der Datenübertragungen auf die Übertragung.

  3. Sie werden dann zur Seite Ausführungsverlauf für die ausgewählte Übertragung weitergeleitet.

bq

Geben Sie den Befehl bq ls mit dem Flag --transfer_run ein, um Übertragungsausführungen für eine bestimmte Übertragungskonfiguration aufzulisten. Sie können auch das Flag --project_id bereitstellen, um ein bestimmtes Projekt anzugeben. Wenn resource_name keine Projektinformationen enthält, wird der Wert --project_id verwendet. Wenn --project_id nicht angegeben ist, wird das Standardprojekt verwendet. Mit dem Flag --format können Sie das Ausgabeformat festlegen.

Geben Sie das Flag --max_results an, um eine bestimmte Anzahl von Übertragungsaufführungen anzeigen zu lassen. Durch diesen Befehl wird ein Seitentoken zurückgegeben, das Sie mit dem Flag --page_token angeben, um die nächsten n Konfigurationen aufzurufen.

Geben Sie das Flag --filter an, um Übertragungsausführungen basierend auf dem Ausführungsstatus aufzulisten.

bq ls \
--transfer_run \
--max_results=integer \
--transfer_location=location \
--project_id=project_id \
--filter=states:state, ... \
resource_name

Ersetzen Sie Folgendes:

  • integer ist die Anzahl der zurückzugebenden Ergebnisse.
  • location ist der Speicherort der Übertragungskonfigurationen. Der Speicherort wird beim Erstellen einer Übertragung angegeben.
  • project_id ist die Projekt-ID.
  • state, ... ist einer der folgenden Werte oder eine durch Kommas getrennte Liste:
    • SUCCEEDED
    • FAILED
    • PENDING
    • RUNNING
    • CANCELLED
  • resource_name ist der Ressourcenname der Übertragung (auch als Übertragungskonfiguration bezeichnet). Wenn Sie den Ressourcennamen der Übertragung nicht kennen, suchen Sie den Ressourcennamen mit bq ls --transfer_config --transfer_location=location.

Beispiele:

Geben Sie den folgenden Befehl ein, um die letzten drei Ausführungen für die Übertragungskonfiguration projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7 aufzurufen. Mit dem Flag --format können Sie das Ausgabeformat festlegen.

bq ls \
--format=prettyjson \
--transfer_run \
--max_results=3 \
--transfer_location=us \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

Durch diesen Befehl wird ein Token für die nächste Seite zurückgegeben. Kopieren Sie das Seitentoken und geben Sie es im Befehl bq ls an, um die nächsten drei Ergebnisse anzeigen zu lassen.

bq ls \
--format=prettyjson \
--transfer_run \
--max_results=3 \
--page_token=AB1CdEfg_hIJKL \
--transfer_location=us \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

Geben Sie den folgenden Befehl ein, um alle fehlgeschlagenen Ausführungen für die Übertragungskonfiguration projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7 aufzurufen.

bq ls \
--format=prettyjson \
--transfer_run \
--filter=states:FAILED \
--transfer_location=us \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

Verwenden Sie die Methode projects.locations.transferConfigs.runs.list und geben Sie die Projekt-ID mithilfe des Parameters parent an.

Java

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Java in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Java API.

Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.ListTransferRunsRequest;
import java.io.IOException;

// Sample to get run history from transfer config.
public class RunHistory {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    // i.e projects/{project_id}/transferConfigs/{config_id}` or
    // `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`
    runHistory(configId);
  }

  public static void runHistory(String configId) throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      ListTransferRunsRequest request =
          ListTransferRunsRequest.newBuilder().setParent(configId).build();
      dataTransferServiceClient
          .listTransferRuns(request)
          .iterateAll()
          .forEach(run -> System.out.print("Success! Run ID :" + run.getName() + "\n"));
    } catch (ApiException ex) {
      System.out.println("Run history not found due to error." + ex.toString());
    }
  }
}

Details zur Übertragungsausführung und Logmeldungen aufrufen

Ist eine Übertragungsausführung im Verlauf aufgeführt, können Sie die Übertragungsdetails anzeigen, einschließlich Protokollmeldungen, Warnungen und Fehler, Name sowie Start- und Endzeit.

So zeigen Sie die Details von Übertragungsausführungen an:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Datenübertragungen auf.

    Zu „Datenübertragungen”

  2. Klicken Sie in der Liste der Datenübertragungen auf die Übertragung.

  3. Sie werden dann zur Seite Ausführungsverlauf für die ausgewählte Übertragung weitergeleitet.

  4. Klicken Sie auf eine einzelne Übertragungsausführung, um das Feld Ausführungsdetails für diese Übertragungsausführung zu öffnen.

  5. Sehen Sie sich unter Ausführungsdetails alle Fehlermeldungen an. Sie benötigen diese Informationen, wenn Sie sich an den Cloud Customer Care wenden. Die Ausführungsdetails enthalten auch Logmeldungen und Warnungen.

    Grafik: Ausführungsdetails in der Console

bq

Geben Sie den Befehl bq show ein und fügen Sie mit dem Flag --transfer_run den Namen der Übertragungsausführung hinzu, um die Details von Übertragungsausführungen anzeigen zu lassen. Mit dem Flag --format können Sie das Ausgabeformat festlegen.

bq show \
--format=prettyjson \
--transfer_run run_name

Ersetzen Sie run_name durch den Namen der Übertragungsausführung. Sie können den Ausführungsnamen mit dem Befehl bq ls abrufen.

Beispiel:

Geben Sie den folgenden Befehl ein, um Details für die Übertragungsausführung projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g aufzurufen.

bq show \
--format=prettyjson \
--transfer_run \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g

Geben Sie den Befehl bq ls mit dem Flag --transfer_log ein, um Übertragungslogmeldungen für eine Übertragungsausführung anzeigen zu lassen. Mit dem Flag --message_type können Sie Logmeldungen nach Typ filtern.

Geben Sie das Flag --max_results an, um eine bestimmte Anzahl von Logmeldungen anzeigen zu lassen. Bei diesem Befehl wird ein Seitentoken zurückgegeben, das Sie mit dem Flag --page_token angeben, um die nächsten n Meldungen aufzurufen.

bq ls \
--transfer_log \
--max_results=integer \
--message_type=messageTypes:message_type \
run_name

Ersetzen Sie Folgendes:

  • integer die Anzahl der zurückzugebenden Protokollmeldungen ist.
  • message_type der Typ der Protokollmeldungen ist, die angezeigt werden sollen (ein einzelner Wert oder eine durch Kommas getrennte Liste):
    • INFO
    • WARNING
    • ERROR
  • run_name ist der Name der Übertragungsausführung. Sie können den Ausführungsnamen mit dem Befehl bq ls abrufen.

Beispiele:

Geben Sie den folgenden Befehl ein, um die ersten zwei Logmeldungen für die Übertragungsausführung projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g aufzurufen.

bq ls \
--transfer_log \
--max_results=2 \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g

Durch diesen Befehl wird ein Token für die nächste Seite zurückgegeben. Kopieren Sie das Seitentoken und geben Sie es im Befehl bq ls an, um die nächsten zwei Ergebnisse anzeigen zu lassen.

bq ls \
--transfer_log \
--max_results=2 \
--page_token=AB1CdEfg_hIJKL \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g

Geben Sie den folgenden Befehl ein, um nur Fehlermeldungen für die Übertragungsausführung projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g anzeigen zu lassen.

bq ls \
--transfer_log \
--message_type=messageTypes:ERROR \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g

API

Verwenden Sie die Methode projects.transferConfigs.runs.transferLogs.list und geben Sie den Ausführungsnamen der Übertragungsausführung mithilfe des Parameters parent an.

Java

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Java in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Java API.

Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.GetTransferRunRequest;
import com.google.cloud.bigquery.datatransfer.v1.TransferRun;
import java.io.IOException;

// Sample to get run details from transfer config.
public class RunDetails {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    // runId examples:
    // `projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}` or
    // `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}/runs/{run_id}`
    String runId = "MY_RUN_ID";
    runDetails(runId);
  }

  public static void runDetails(String runId) throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      GetTransferRunRequest request = GetTransferRunRequest.newBuilder().setName(runId).build();
      TransferRun run = dataTransferServiceClient.getTransferRun(request);
      System.out.print("Run details retrieved successfully :" + run.getName() + "\n");
    } catch (ApiException ex) {
      System.out.print("Run details not found." + ex.toString());
    }
  }
}

Übertragungen ändern

Sie können vorhandene Übertragungen ändern. Dazu bearbeiten Sie die Informationen in der Übertragungskonfiguration, aktualisieren die Anmeldedaten eines Nutzers, die mit einer Übertragungskonfiguration verknüpft sind, und deaktivieren oder löschen eine Übertragung.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle BigQuery-Administrator (roles/bigquery.admin) für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Ändern von Übertragungen benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Übertragung aktualisieren

Nachdem Sie eine Übertragungskonfiguration erstellt haben, können Sie die folgenden Felder bearbeiten:

  • Ziel-Dataset
  • Anzeigename
  • Alle Parameter, die für den spezifischen Übertragungstyp angegeben wurden
  • Benachrichtigungseinstellungen ausführen
  • Dienstkonto

Sie können die Quelle einer Übertragung nicht mehr bearbeiten, nachdem eine Übertragung erstellt wurde.

So aktualisieren Sie eine Übertragung:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Datenübertragungen auf.

    Zu „Datenübertragungen”

  2. Klicken Sie in der Liste der Datenübertragungen auf die Übertragung.

  3. Klicken Sie auf Bearbeiten, um die Übertragungskonfiguration zu aktualisieren.

bq

Geben Sie den Befehl bq update ein, fügen Sie den Ressourcennamen der Übertragungskonfiguration mit dem Flag --transfer_config hinzu und geben Sie das Flag --display_name, --params, --refresh_window_days, --schedule oder --target_dataset an. Optional können Sie ein --destination_kms_key-Flag für geplante Abfragen oder Cloud Storage-Übertragungen angeben.

bq update \
--display_name='NAME' \
--params='PARAMETERS' \
--refresh_window_days=INTEGER \
--schedule='SCHEDULE'
--target_dataset=DATASET_ID \
--destination_kms_key="DESTINATION_KEY" \
--transfer_config \
--service_account_name=SERVICE_ACCOUNT \
RESOURCE_NAME

Ersetzen Sie Folgendes:

  • NAME: Der Anzeigename für die Übertragungskonfiguration.
  • PARAMETERS: Die Parameter für die Übertragungskonfiguration im JSON-Format:. Beispiel: --params='{"param1":"param_value1"}' Die folgenden Parameter können bearbeitet werden:
    • Campaign Manager: bucket und network_id
    • Google Ad Manager: bucket und network_code
    • Google Ads: customer_id
    • Google Merchant Center: merchant_id
    • Google Play: bucket und table_suffix
    • Geplante Abfrage: destination_table_kms_key, destination_table_name_template, partitioning_field, partitioning_type, query und write_disposition
    • Search Ads 360: advertiser_id, agency_id, custom_floodlight_variables, include_removed_entities und table_filter
    • YouTube-Kanal: table_suffix
    • YouTube-Rechteinhaber: content_owner_id und table_suffix
  • INTEGER: ein Wert zwischen 0 und 30. Informationen zum Festlegen des Aktualisierungsfensters finden Sie in der Dokumentation für den jeweiligen Übertragungstyp.
  • SCHEDULE: Wiederkehrender Zeitplan, z. B. --schedule="every 3 hours". Eine Beschreibung der schedule-Syntax finden Sie unter schedule formatieren.
  • DATASET_ID: Das Ziel-Dataset für die Übertragungskonfiguration.
  • DESTINATION_KEY: Die Cloud KMS-Schlüsselressourcen-ID, z. B. projects/project_name/locations/us/keyRings/key_ring_name/cryptoKeys/key_name. CMEK ist nur für geplante Abfragen oder Cloud Storage-Übertragungen verfügbar.
  • SERVICE_ACCOUNT: Geben Sie ein Dienstkonto an, das für diese Übertragung verwendet werden soll.
  • RESOURCE_NAME: Der Ressourcenname der Übertragung (auch als Übertragungskonfiguration bezeichnet). Wenn Sie den Ressourcennamen der Übertragung nicht kennen, suchen Sie den Ressourcennamen mit bq ls --transfer_config --transfer_location=location.

Beispiele:

Mit dem folgenden Befehl werden der Anzeigename, das Ziel-Dataset, das Aktualisierungsfenster und die Parameter für die Google Ads-Übertragung projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7 aktualisiert:

bq update \
--display_name='My changed transfer' \
--params='{"customer_id":"123-123-5678"}' \
--refresh_window_days=3 \
--target_dataset=mydataset2 \
--transfer_config \
 projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

Mit dem folgenden Befehl werden die Parameter und der Zeitplan für die Übertragung der geplanten Abfrage projects/myproject/locations/us/transferConfigs/5678z567-5678-5z67-5yx9-56zy3c866vw9 aktualisiert:

bq update \
--params='{"destination_table_name_template":"test", "write_disposition":"APPEND"}' \
--schedule="every 24 hours" \
--transfer_config \
projects/myproject/locations/us/transferConfigs/5678z567-5678-5z67-5yx9-56zy3c866vw9

API

Verwenden Sie die Methode projects.transferConfigs.patch und geben Sie den Ressourcennamen der Übertragung mithilfe des Parameters transferConfig.name an. Wenn Sie den Ressourcennamen der Übertragung nicht kennen, suchen Sie den Ressourcennamen mit bq ls --transfer_config --transfer_location=location. Sie können auch die folgende Methode aufrufen und die Projekt-ID mithilfe des Parameters parent angeben, um alle Übertragungen aufzulisten: projects.locations.transferConfigs.list.

Java

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Java in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Java API.

Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import com.google.cloud.bigquery.datatransfer.v1.UpdateTransferConfigRequest;
import com.google.protobuf.FieldMask;
import com.google.protobuf.util.FieldMaskUtil;
import java.io.IOException;

// Sample to update transfer config.
public class UpdateTransferConfig {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    TransferConfig transferConfig =
        TransferConfig.newBuilder()
            .setName(configId)
            .setDisplayName("UPDATED_DISPLAY_NAME")
            .build();
    FieldMask updateMask = FieldMaskUtil.fromString("display_name");
    updateTransferConfig(transferConfig, updateMask);
  }

  public static void updateTransferConfig(TransferConfig transferConfig, FieldMask updateMask)
      throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      UpdateTransferConfigRequest request =
          UpdateTransferConfigRequest.newBuilder()
              .setTransferConfig(transferConfig)
              .setUpdateMask(updateMask)
              .build();
      TransferConfig updateConfig = dataTransferServiceClient.updateTransferConfig(request);
      System.out.println("Transfer config updated successfully :" + updateConfig.getDisplayName());
    } catch (ApiException ex) {
      System.out.print("Transfer config was not updated." + ex.toString());
    }
  }
}

Python

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Python in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Python API.

Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

from google.cloud import bigquery_datatransfer
from google.protobuf import field_mask_pb2

transfer_client = bigquery_datatransfer.DataTransferServiceClient()

transfer_config_name = "projects/1234/locations/us/transferConfigs/abcd"
new_display_name = "My Transfer Config"

transfer_config = bigquery_datatransfer.TransferConfig(name=transfer_config_name)
transfer_config.display_name = new_display_name

transfer_config = transfer_client.update_transfer_config(
    {
        "transfer_config": transfer_config,
        "update_mask": field_mask_pb2.FieldMask(paths=["display_name"]),
    }
)

print(f"Updated config: '{transfer_config.name}'")
print(f"New display name: '{transfer_config.display_name}'")

Anmeldedaten aktualisieren

Bei einer Übertragung werden die Anmeldedaten des Nutzers, der sie erstellt hat, verwendet. Wenn Sie den einer Übertragung zugeordneten Nutzer ändern müssen, können Sie die Anmeldedaten der Übertragung aktualisieren. Dies ist hilfreich, wenn der Nutzer, der die Übertragung erstellt hat, der Organisation nicht mehr angehört.

So aktualisieren Sie die Anmeldedaten für eine Übertragung:

Console

  1. Melden Sie sich in der Google Cloud Console als der Nutzer an, an den Sie die Inhaberschaft übertragen möchten.

  2. Gehen Sie zur Seite Datenübertragungen.

    Zu "Datenübertragungen"

  3. Klicken Sie in der Liste der Datenübertragungen auf die Übertragung.

  4. Klicken Sie auf das Menü Mehr und wählen Sie Refresh credentials aus.

  5. Klicken Sie auf Zulassen, um BigQuery Data Transfer Service die Berechtigung zum Anzeigen Ihrer Berichtsdaten und zum Zugriff auf und zur Verwaltung von Daten in BigQuery zu erteilen.

bq

Geben Sie den Befehl bq update ein, fügen Sie den Ressourcennamen der Übertragungskonfiguration mit dem Flag --transfer_config hinzu und geben Sie das Flag --update_credentials an.

bq update \
--update_credentials=boolean \
--transfer_config \
resource_name

Ersetzen Sie Folgendes:

  • boolean ist ein boolescher Wert, mit dem angegeben wird, ob die Anmeldedaten für die Übertragungskonfiguration aktualisiert werden sollen.
  • resource_name ist der Ressourcenname der Übertragung (auch als Übertragungskonfiguration bezeichnet). Wenn Sie den Ressourcennamen der Übertragung nicht kennen, suchen Sie den Ressourcennamen mit bq ls --transfer_config --transfer_location=location.

Beispiele:

Geben Sie den folgenden Befehl ein, um die Anmeldedaten für die Google Ads-Übertragung projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7 zu aktualisieren.

bq update \
--update_credentials=true \
--transfer_config \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

Verwenden Sie die Methode projects.transferConfigs.patch und geben Sie die Parameter authorizationCode und updateMask an.

Java

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Java in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Java API.

Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import com.google.cloud.bigquery.datatransfer.v1.UpdateTransferConfigRequest;
import com.google.protobuf.FieldMask;
import com.google.protobuf.util.FieldMaskUtil;
import java.io.IOException;

// Sample to update credentials in transfer config.
public class UpdateCredentials {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    String serviceAccount = "MY_SERVICE_ACCOUNT";
    TransferConfig transferConfig = TransferConfig.newBuilder().setName(configId).build();
    FieldMask updateMask = FieldMaskUtil.fromString("service_account_name");
    updateCredentials(transferConfig, serviceAccount, updateMask);
  }

  public static void updateCredentials(
      TransferConfig transferConfig, String serviceAccount, FieldMask updateMask)
      throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      UpdateTransferConfigRequest request =
          UpdateTransferConfigRequest.newBuilder()
              .setTransferConfig(transferConfig)
              .setUpdateMask(updateMask)
              .setServiceAccountName(serviceAccount)
              .build();
      dataTransferServiceClient.updateTransferConfig(request);
      System.out.println("Credentials updated successfully");
    } catch (ApiException ex) {
      System.out.print("Credentials was not updated." + ex.toString());
    }
  }
}

Python

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Python in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Python API.

Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

from google.cloud import bigquery_datatransfer
from google.protobuf import field_mask_pb2

transfer_client = bigquery_datatransfer.DataTransferServiceClient()

service_account_name = "abcdef-test-sa@abcdef-test.iam.gserviceaccount.com"
transfer_config_name = "projects/1234/locations/us/transferConfigs/abcd"

transfer_config = bigquery_datatransfer.TransferConfig(name=transfer_config_name)

transfer_config = transfer_client.update_transfer_config(
    {
        "transfer_config": transfer_config,
        "update_mask": field_mask_pb2.FieldMask(paths=["service_account_name"]),
        "service_account_name": service_account_name,
    }
)

print("Updated config: '{}'".format(transfer_config.name))

Übertragung deaktivieren

Wenn Sie eine Übertragung deaktivieren, wird dem Übertragungsnamen disabled hinzugefügt. Sobald die Übertragung deaktiviert ist, werden keine neuen Übertragungsausführungen geplant und keine neuen Backfills zugelassen. Alle laufenden Übertragungen werden abgeschlossen.

Bei der Deaktivierung einer Übertragung werden Daten, die bereits in BigQuery übertragen wurden, nicht entfernt. Für zuvor übertragene Daten werden die standardmäßigen Speicherkosten für BigQuery berechnet, bis Sie das Dataset löschen oder die Tabellen löschen.

So deaktivieren Sie eine Übertragung:

Console

  1. Rufen Sie in der Google Cloud Console die Seite „BigQuery“ auf.

    BigQuery aufrufen

  2. Klicken Sie auf Übertragungen.

  3. Klicken Sie auf der Seite Übertragungen in der Liste auf die Übertragung, die Sie deaktivieren möchten.

  4. Klicken Sie auf Deaktivieren. Klicken Sie auf Aktivieren, um die Übertragung wieder zu aktivieren.

bq

Das Deaktivieren einer Übertragung wird von der Befehlszeile nicht unterstützt.

API

Verwenden Sie die Methode projects.locations.transferConfigs.patch und setzen Sie in der Ressource projects.locations.transferConfig die Option disabled auf true.

Java

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Java in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Java API.

Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import com.google.cloud.bigquery.datatransfer.v1.UpdateTransferConfigRequest;
import com.google.protobuf.FieldMask;
import com.google.protobuf.util.FieldMaskUtil;
import java.io.IOException;

// Sample to disable transfer config.
public class DisableTransferConfig {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    TransferConfig transferConfig =
        TransferConfig.newBuilder().setName(configId).setDisabled(true).build();
    FieldMask updateMask = FieldMaskUtil.fromString("disabled");
    disableTransferConfig(transferConfig, updateMask);
  }

  public static void disableTransferConfig(TransferConfig transferConfig, FieldMask updateMask)
      throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      UpdateTransferConfigRequest request =
          UpdateTransferConfigRequest.newBuilder()
              .setTransferConfig(transferConfig)
              .setUpdateMask(updateMask)
              .build();
      TransferConfig updateConfig = dataTransferServiceClient.updateTransferConfig(request);
      System.out.println("Transfer config disabled successfully :" + updateConfig.getDisplayName());
    } catch (ApiException ex) {
      System.out.print("Transfer config was not disabled." + ex.toString());
    }
  }
}

So aktivieren Sie die Übertragung wieder:

Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Java-Einrichtungsanleitung in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Java API.

Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

/*
 * Copyright 2020 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.example.bigquerydatatransfer;

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import com.google.cloud.bigquery.datatransfer.v1.UpdateTransferConfigRequest;
import com.google.protobuf.FieldMask;
import com.google.protobuf.util.FieldMaskUtil;
import java.io.IOException;

// Sample to disable transfer config.
public class DisableTransferConfig {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    TransferConfig transferConfig =
        TransferConfig.newBuilder().setName(configId).setDisabled(true).build();
    FieldMask updateMask = FieldMaskUtil.fromString("disabled");
    disableTransferConfig(transferConfig, updateMask);
  }

  public static void disableTransferConfig(TransferConfig transferConfig, FieldMask updateMask)
      throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      UpdateTransferConfigRequest request =
          UpdateTransferConfigRequest.newBuilder()
              .setTransferConfig(transferConfig)
              .setUpdateMask(updateMask)
              .build();
      TransferConfig updateConfig = dataTransferServiceClient.updateTransferConfig(request);
      System.out.println("Transfer config disabled successfully :" + updateConfig.getDisplayName());
    } catch (ApiException ex) {
      System.out.print("Transfer config was not disabled." + ex.toString());
    }
  }
}

Übertragung löschen

Wenn eine Übertragung gelöscht wird, werden keine neuen Übertragungsausführungen geplant. Laufende Übertragungen werden beendet.

Beim Löschen einer Übertragung werden Daten, die bereits in BigQuery übertragen wurden, nicht entfernt. Für zuvor übertragene Daten werden die standardmäßigen Speicherkosten für BigQuery berechnet, bis Sie das Dataset löschen oder die Tabellen löschen.

So löschen Sie Ihre Übertragung:

Console

  1. Rufen Sie in der Google Cloud Console die Seite „BigQuery“ auf.

    BigQuery aufrufen

  2. Klicken Sie auf Übertragungen.

  3. Klicken Sie auf der Seite Übertragungen in der Liste auf die Übertragung, die Sie löschen möchten.

  4. Klicken Sie auf Löschen. Aus Sicherheitsgründen müssen Sie das Wort „delete“ in ein Feld eingeben, um Ihre Absicht zu bestätigen.

bq

Geben Sie den Befehl bq rm ein und fügen Sie den Ressourcennamen der Übertragungskonfiguration hinzu. Mit dem Flag -f können Sie eine Übertragungskonfiguration ohne Bestätigung löschen.

bq rm \
-f \
--transfer_config \
resource_name

Dabei gilt:

  • resource_name ist der Ressourcenname der Übertragung (auch als Übertragungskonfiguration bezeichnet). Wenn Sie den Ressourcennamen der Übertragung nicht kennen, führen Sie den Befehl bq ls --transfer_config --transfer_location=location aus, um alle Übertragungen aufzulisten.

Geben Sie beispielsweise den folgenden Befehl ein, um die Übertragungskonfiguration projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7 zu löschen.

bq rm \
--transfer_config \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

Verwenden Sie die Methode projects.locations.transferConfigs.delete und geben Sie die zu löschende Ressource mithilfe des Parameters name an.

Java

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Java in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Java API.

Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.DeleteTransferConfigRequest;
import java.io.IOException;

// Sample to delete a transfer config
public class DeleteTransferConfig {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    // i.e projects/{project_id}/transferConfigs/{config_id}` or
    // `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`
    String configId = "MY_CONFIG_ID";
    deleteTransferConfig(configId);
  }

  public static void deleteTransferConfig(String configId) throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      DeleteTransferConfigRequest request =
          DeleteTransferConfigRequest.newBuilder().setName(configId).build();
      dataTransferServiceClient.deleteTransferConfig(request);
      System.out.println("Transfer config deleted successfully");
    } catch (ApiException ex) {
      System.out.println("Transfer config was not deleted." + ex.toString());
    }
  }
}

Python

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Python in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Python API.

Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

import google.api_core.exceptions
from google.cloud import bigquery_datatransfer

transfer_client = bigquery_datatransfer.DataTransferServiceClient()

transfer_config_name = "projects/1234/locations/us/transferConfigs/abcd"
try:
    transfer_client.delete_transfer_config(name=transfer_config_name)
except google.api_core.exceptions.NotFound:
    print("Transfer config not found.")
else:
    print(f"Deleted transfer config: {transfer_config_name}")

Übertragung manuell auslösen

Sie können manuell eine Übertragung (auch als Backfill-Ausführung bezeichnet) auslösen, um zusätzliche Datendateien außerhalb Ihrer automatisch geplanten Übertragungen zu laden. Mit Datenquellen, die Laufzeitparameter unterstützen, können Sie auch manuell eine Übertragung auslösen. Geben Sie dazu ein Datum oder einen Zeitraum an, aus dem frühere Daten geladen werden sollen.

Daten-Backfills können Sie jederzeit manuell initiieren. Zusätzlich zu den Quelllimits unterstützt BigQuery Data Transfer Service Zeiträume von maximal 180 Tagen pro Backfill-Anfrage. Gleichzeitige Backfill-Anfragen werden nicht unterstützt.

Informationen darüber, wie viele Daten für Backfills verfügbar sind, finden Sie im Übertragungsleitfaden für Ihre Datenquelle.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle BigQuery-Administrator (roles/bigquery.admin) für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Ändern von Übertragungen benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Übertragung oder Backfill manuell auslösen

Mit den folgenden Methoden können Sie eine Übertragung oder einen Backfill manuell auslösen:

  • Wählen Sie Ihre Übertragungsausführung mit der Google Cloud Console aus und klicken Sie dann auf Übertragung jetzt ausführen oder Backfill planen.
  • Den Befehl bq mk –transfer run des bq-Befehlszeilentools verwenden
  • API-Methode projects.locations.transferConfigs.startManualRuns method aufrufen

Wählen Sie den entsprechenden Tab aus, um eine detaillierte Anleitung zu den einzelnen Methoden aufzurufen:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Datenübertragungen auf.

    Zu „Datenübertragungen”

  2. Wählen Sie die Übertragung aus der Liste aus.

  3. Klicken Sie auf Übertragung jetzt ausführen oder Backfill planen. Abhängig von der Art der Übertragungskonfiguration ist nur eine Option verfügbar.

    • Wenn Sie auf Übertragung jetzt ausführen geklickt haben, wählen Sie Einmalige Übertragung ausführen oder Für bestimmtes Datum ausführen aus. Wenn Sie Für ein bestimmtes Datum ausführen ausgewählt haben, wählen Sie ein bestimmtes Datum und eine bestimmte Uhrzeit aus:

      Übertragung jetzt ausführen

    • Wenn Sie auf Backfill planen geklickt haben, wählen Sie entweder Einmalige Übertragung ausführen oder Für einen Zeitraum ausführen aus. Wenn Sie Für einen Zeitraum ausführen ausgewählt haben, wählen Sie ein Start- und ein Enddatum sowie eine Uhrzeit aus:

      Backfill planen

  4. Klicken Sie auf OK.

bq

Geben Sie den Befehl bq mk mit dem Flag --transfer_run ein, um eine Übertragungsausführung manuell zu starten:

bq mk \
--transfer_run \
--run_time='RUN_TIME' \
RESOURCE_NAME

Ersetzen Sie Folgendes:

  • RUN_TIME ist ein Zeitstempel, der das Datum einer früheren Übertragung angibt. Verwenden Sie Zeitstempel, die mit Z enden oder einen gültigen Zeitzonenversatz haben, z. B. 2022-08-19T12:11:35.00Z oder 2022-05-25T00:00:00+00:00.
    • Wenn Ihre Übertragung keinen Laufzeitparameter hat oder Sie jetzt nur eine Übertragung auslösen möchten, ohne eine frühere Übertragung anzugeben, geben Sie Ihre aktuelle Zeit in dieses Feld ein.
  • RESOURCE_NAME ist der Ressourcenname, der in der Übertragungskonfiguration aufgeführt ist, z. B. projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7.

Um manuell eine Übertragungsausführung für einen Zeitraum zu starten, geben Sie den Befehl bq mk mit dem Flag --transfer_run zusammen mit einem Datumsbereich ein:

bq mk \
--transfer_run \
--start_time='START_TIME' \
--end_time='END_TIME' \
RESOURCE_NAME

Ersetzen Sie Folgendes:

  • START_TIME und END_TIME sind Zeitstempel, die mit Z enden oder einen gültigen Zeitzonen-Offset enthalten. Diese Werte geben den Zeitraum mit den vorherigen Übertragungsausführungen an, aus denen Sie einen Backfill ausführen möchten, z. B. 2022-08-19T12:11:35.00Z oder 2022-05-25T00:00:00+00:00.
  • RESOURCE_NAME ist der in Ihrer Übertragungskonfiguration aufgeführte Ressourcenname, z. B. projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

Verwenden Sie die Methode projects.locations.transferConfigs.startManualRuns und geben Sie den Ressourcennamen der Übertragungskonfiguration mithilfe des übergeordneten Parameters an, um eine Übertragungsausführung manuell zu starten. Informationen zum Ermitteln des Ressourcennamens einer Übertragungskonfiguration finden Sie unter Informationen zu Übertragungen abrufen.

  "requestedRunTime": "RUN_TIME"

Ersetzen Sie Folgendes:

  • RUN_TIME ist ein Zeitstempel, der das Datum einer früheren Übertragung angibt. Verwenden Sie Zeitstempel, die mit Z enden oder einen gültigen Zeitzonenversatz haben, z. B. 2022-08-19T12:11:35.00Z oder 2022-05-25T00:00:00+00:00.
    • Wenn Ihre Übertragung keinen Laufzeitparameter hat oder Sie jetzt nur eine Übertragung auslösen möchten, ohne eine frühere Übertragung anzugeben, geben Sie Ihre aktuelle Zeit in dieses Feld ein.

Geben Sie einen Zeitraum an, um eine Übertragungsausführung für einen Zeitraum manuell zu starten:

"requestedTimeRange": {
  "startTime": "START_TIME",
  "endTime": "END_TIME"
}

Ersetzen Sie Folgendes:

  • START_TIME und END_TIME sind Zeitstempel, die mit Z enden oder einen gültigen Zeitzonen-Offset enthalten. Diese Werte geben den Zeitraum mit den vorherigen Übertragungsausführungen an, aus denen Sie einen Backfill ausführen möchten, z. B. 2022-08-19T12:11:35.00Z oder 2022-05-25T00:00:00+00:00.

Java

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Java in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Java API.

Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.ScheduleTransferRunsRequest;
import com.google.cloud.bigquery.datatransfer.v1.ScheduleTransferRunsResponse;
import com.google.protobuf.Timestamp;
import java.io.IOException;
import org.threeten.bp.Clock;
import org.threeten.bp.Instant;
import org.threeten.bp.temporal.ChronoUnit;

// Sample to run schedule back fill for transfer config
public class ScheduleBackFill {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    Clock clock = Clock.systemDefaultZone();
    Instant instant = clock.instant();
    Timestamp startTime =
        Timestamp.newBuilder()
            .setSeconds(instant.minus(5, ChronoUnit.DAYS).getEpochSecond())
            .setNanos(instant.minus(5, ChronoUnit.DAYS).getNano())
            .build();
    Timestamp endTime =
        Timestamp.newBuilder()
            .setSeconds(instant.minus(2, ChronoUnit.DAYS).getEpochSecond())
            .setNanos(instant.minus(2, ChronoUnit.DAYS).getNano())
            .build();
    scheduleBackFill(configId, startTime, endTime);
  }

  public static void scheduleBackFill(String configId, Timestamp startTime, Timestamp endTime)
      throws IOException {
    try (DataTransferServiceClient client = DataTransferServiceClient.create()) {
      ScheduleTransferRunsRequest request =
          ScheduleTransferRunsRequest.newBuilder()
              .setParent(configId)
              .setStartTime(startTime)
              .setEndTime(endTime)
              .build();
      ScheduleTransferRunsResponse response = client.scheduleTransferRuns(request);
      System.out.println("Schedule backfill run successfully :" + response.getRunsCount());
    } catch (ApiException ex) {
      System.out.print("Schedule backfill was not run." + ex.toString());
    }
  }
}

Python

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Python in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Python API.

Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

import datetime

from google.cloud.bigquery_datatransfer_v1 import (
    DataTransferServiceClient,
    StartManualTransferRunsRequest,
)

# Create a client object
client = DataTransferServiceClient()

# Replace with your transfer configuration name
transfer_config_name = "projects/1234/locations/us/transferConfigs/abcd"
now = datetime.datetime.now(datetime.timezone.utc)
start_time = now - datetime.timedelta(days=5)
end_time = now - datetime.timedelta(days=2)

# Some data sources, such as scheduled_query only support daily run.
# Truncate start_time and end_time to midnight time (00:00AM UTC).
start_time = datetime.datetime(
    start_time.year, start_time.month, start_time.day, tzinfo=datetime.timezone.utc
)
end_time = datetime.datetime(
    end_time.year, end_time.month, end_time.day, tzinfo=datetime.timezone.utc
)

requested_time_range = StartManualTransferRunsRequest.TimeRange(
    start_time=start_time,
    end_time=end_time,
)

# Initialize request argument(s)
request = StartManualTransferRunsRequest(
    parent=transfer_config_name,
    requested_time_range=requested_time_range,
)

# Make the request
response = client.start_manual_transfer_runs(request=request)

# Handle the response
print("Started manual transfer runs:")
for run in response.runs:
    print(f"backfill: {run.run_time} run: {run.name}")

Logging und Monitoring

Der BigQuery Data Transfer Service exportiert Logs und Messwerte nach Cloud Monitoring und Cloud Logging, die Beobachtbarkeit für Ihre Übertragungen ermöglichen. Mit Monitoring können Sie Dashboards einrichten, um Übertragungen zu überwachen, die Leistung von Übertragungsausführungen zu bewerten und Fehlermeldungen zur Fehlerbehebung bei Übertragungsfehlern anzuzeigen. Mit Logging können Sie Logs aufrufen, die sich auf eine Übertragungsausführung oder eine Übertragungskonfiguration beziehen.

Sie können auch Audit-Logs aufrufen, die dem BigQuery Data Transfer Service für Übertragungsaktivitäts- und Datenzugriffslogs zur Verfügung stehen.