Cloud Storage-Übertragungen

Mit dem BigQuery Data Transfer Service für Cloud Storage können Sie wiederkehrende Datenübertragungen von Cloud Storage zu BigQuery planen.

Hinweise

Führen Sie vor dem Erstellen einer Cloud Storage-Übertragung die folgenden Schritte aus:

Beschränkungen

Für wiederkehrende Übertragungen von Cloud Storage nach BigQuery gelten die folgenden Beschränkungen:

  • Alle Dateien, die entweder durch einen Platzhalter oder durch Laufzeitparameter für Ihre Übertragung definiert wurden, müssen dasselbe Schema verwenden, das Sie für die Zieltabelle definiert haben. Sonst schlägt die Übertragung fehl. Wenn das Tabellenschema zwischen zwei Ausführungen geändert wird, schlägt die Übertragung ebenfalls fehl.
  • Cloud Storage-Objekte können versioniert werden. Deshalb ist zu beachten, dass archivierte Cloud Storage-Objekte für BigQuery-Übertragungen nicht unterstützt werden. Objekte müssen für die Übertragung live sein.
  • Im Gegensatz zu einzelnen Datenlasten von Cloud Storage zu BigQuery müssen Sie für fortlaufende Übertragungen die Zieltabelle erstellen, bevor Sie die Übertragung einrichten. Für CSV- und JSON-Dateien müssen Sie auch das Tabellenschema im Voraus definieren. BigQuery kann die Tabelle nicht als Teil des wiederkehrenden Datenübertragungsprozesses erstellen.
  • Bei Übertragungen aus Cloud Storage ist der Parameter Schreibeinstellung standardmäßig auf APPEND gesetzt. In diesem Modus kann eine unveränderte Datei nur einmal in BigQuery geladen werden. Wenn das Attribut last modification time der Datei aktualisiert wird, wird die Datei neu geladen.
  • BigQuery Data Transfer Service garantiert nicht, dass alle Dateien übertragen oder nur einmal übertragen werden, wenn während der Übertragung auf die Cloud Storage-Dateien zugegriffen wird. Beim Laden von Daten aus einem Cloud Storage-Bucket in BigQuery gelten die folgenden Beschränkungen:

  • Wenn für den Speicherort Ihres Datasets ein anderer Wert als der multiregionale Wert US festgelegt ist, muss sich der Cloud Storage-Bucket in derselben Region befinden oder in derselben Multiregion enthalten sein wie das Dataset.

  • BigQuery übernimmt bei externen Datenquellen keine Garantie für die Datenkonsistenz. Werden die zugrunde liegenden Daten während der Ausführung der Abfrage geändert, kann dies zu einem unerwarteten Verhalten führen.

  • BigQuery unterstützt nicht die Cloud Storage-Objektversionierung. Wenn Sie dem Cloud Storage-URI eine Generierungsnummer hinzufügen, schlägt der Ladejob fehl.

  • Je nach dem Format Ihrer Cloud Storage-Quelldaten sind weitere Beschränkungen möglich. Weitere Informationen finden Sie unter:

  • Ihr Cloud Storage-Bucket muss sich an einem Standort befinden, der mit der Region oder dem multiregionalen Standort des Ziel-Datasets in BigQuery kompatibel ist. Dies wird als Colocation bezeichnet. Ausführliche Informationen zur Cloud Storage-Übertragung finden Sie unter Datenspeicherorte.

Mindestintervalle

  • Quelldateien werden ohne Mindestalter sofort zur Übertragung aufgenommen.
  • Das Mindestintervall zwischen wiederkehrenden Übertragungen beträgt 15 Minuten. Das Standardintervall für wiederkehrende Übertragungen beträgt 24 Stunden.

Erforderliche Berechtigungen

Wenn Sie Daten in BigQuery laden, benötigen Sie Berechtigungen zum Laden von Daten in neue oder vorhandene BigQuery-Tabellen und -Partitionen. Wenn Sie Daten aus Cloud Storage laden, benötigen Sie auch Zugriff auf den Bucket, der Ihre Daten enthält. Prüfen Sie, ob Sie die folgenden erforderlichen Berechtigungen haben:

  • BigQuery: Achten Sie darauf, dass die Person oder das Dienstkonto, die die Übertragung erstellt, die folgenden Berechtigungen in BigQuery hat:

    • bigquery.transfers.update Berechtigungen zum Erstellen der Übertragung
    • Die Berechtigungen bigquery.datasets.get und bigquery.datasets.update für das Ziel-Dataset

    Die vordefinierte IAM-Rolle bigquery.admin enthält die Berechtigungen bigquery.transfers.update, bigquery.datasets.update und bigquery.datasets.get. Weitere Informationen zu IAM-Rollen im BigQuery Data Transfer Service finden Sie in der Zugriffssteuerung.

  • Cloud Storage: storage.objects.get Es sind Berechtigungen für die einzelnen Buckets oder höhere Berechtigungen erforderlich. Wenn Sie einen URI-Platzhalter verwenden, benötigen Sie außerdem Berechtigungen des Typs storage.objects.list. Wenn Sie die Quelldateien nach jeder erfolgreichen Übertragung löschen möchten, benötigen Sie außerdem Berechtigungen vom Typ storage.objects.delete. Die vordefinierte Cloud IAM-Rolle storage.objectAdmin enthält alle diese Berechtigungen.

Cloud Storage-Übertragung einrichten

So erstellen Sie eine Cloud Storage-Übertragung im BigQuery Data Transfer Service:

Console

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

    Zur Seite „BigQuery“

  2. Klicken Sie auf Datenübertragungen.

  3. Klicken Sie auf Übertragung erstellen.

  4. Wählen Sie im Abschnitt Quelltyp für Quelle die Option Google Cloud Storage aus.

    Übertragungsquelle

  5. Geben Sie im Abschnitt Transfer config name (Konfigurationsname für Übertragung) für Display name (Anzeigename) einen Namen wie My Transfer für die Übertragung ein. Der Übertragungsname kann ein beliebiger Wert sein, mit dem Sie die Übertragung identifizieren können, wenn Sie sie später ändern müssen.

    Name der Übertragung

  6. Im Abschnitt Zeitplanoptionen:

    • Wählen Sie eine Wiederholungshäufigkeit aus. Wenn Sie Stunden, Tage, Wochen oder Monate auswählen, müssen Sie auch eine Häufigkeit angeben. Sie können auch Benutzerdefiniert auswählen, um eine benutzerdefinierte Wiederholungshäufigkeit anzugeben. Wenn Sie On-Demand auswählen, wird diese Übertragung ausgeführt, wenn Sie die Übertragung manuell auslösen.

    • Wählen Sie gegebenenfalls Jetzt starten oder Zu festgelegter Zeit starten aus und geben Sie ein Startdatum und eine Laufzeit an.

  7. Wählen Sie im Abschnitt Destination settings (Zieleinstellungen) für Destination dataset (Ziel-Dataset) das Dataset aus, das Sie zum Speichern Ihrer Daten erstellt haben.

    Dataset übertragen

  8. Führen Sie im Abschnitt Details zur Datenquelle Folgendes aus:

    1. Geben Sie für Destination table (Zieltabelle) den Namen Ihrer Zieltabelle ein. Die Zieltabelle muss den Regeln für die Tabellenbenennung folgen. Als Namen von Zieltabellen sind auch Parameter möglich.
    2. Geben Sie bei Cloud Storage URI den Cloud Storage-URI ein. Platzhalter und Parameter werden dafür unterstützt.
    3. Wählen Sie unter Schreibeinstellung eine der folgenden Optionen aus:
      • APPEND, um neue Daten an die vorhandene Zieltabelle inkrementell anzuhängen. APPEND ist der Standardwert für APPEND.
      • MIRROR, um bei jeder Übertragungsausführung Daten in der Zieltabelle zu überschreiben.

    Weitere Informationen dazu, wie BigQuery Data Transfer Service Daten mit APPEND oder APPEND aufnimmt, finden Sie unter Datenaufnahme für Cloud Storage-Übertragungen. Weitere Informationen zum Feld writeDisposition finden Sie unter JobConfigurationLoad.

    1. Klicken Sie auf das Kästchen Quelldateien nach Übertragung löschen, wenn Sie die Quelldateien nach jeder erfolgreichen Übertragung löschen möchten. Für Löschjobs besteht keine Erfolgsgarantie. Löschjobs werden nicht noch einmal versucht, wenn der erste Versuch zum Löschen der Quelldateien fehlschlägt.
    2. Im Abschnitt Transfer Options (Übertragungsoptionen):

      1. Unter All Formats (Alle Formate):
        1. Geben Sie unter Number of errors allowed (Anzahl zulässiger Fehler) die maximale Anzahl fehlerhafter Datensätze ein, die BigQuery beim Ausführen des Jobs ignorieren kann. Wenn die Anzahl fehlerhafter Datensätze diesen Wert überschreitet, wird im Jobergebnis "ungültig" zurückgegeben und der Job schlägt fehl. Der Standardwert ist 0.
        2. (Optional) Geben Sie unter Dezimalzieltypen eine durch Kommas getrennte Liste möglicher SQL-Datentypen ein, in die Quelldezimalwerte konvertiert werden können. Welcher SQL-Datentyp für die Konvertierung ausgewählt wird, hängt von folgenden Bedingungen ab:
          • Der für die Konvertierung ausgewählte Datentyp ist der erste Datentyp in der folgenden Liste, der die Genauigkeit und die Skalierung der Quelldaten in dieser Reihenfolge unterstützt: NUMERIC, BIGNUMERIC und STRING.
          • Wenn keiner der aufgelisteten Datentypen die Genauigkeit und die Skalierung unterstützt, wird der Datentyp ausgewählt, der den in der angegebenen Liste breitesten Bereich unterstützt. Geht ein Wert beim Lesen der Quelldaten über den unterstützten Wert hinaus, wird ein Fehler ausgegeben.
          • Der Datentyp STRING unterstützt alle Genauigkeits- und Skalierungswerte.
          • Wenn dieses Feld leer bleibt, wird der Datentyp standardmäßig auf „NUMERIC,STRING“ für ORC und „NUMERIC“ für die anderen Dateiformate gesetzt.
          • Dieses Feld darf keine doppelten Datentypen enthalten.
          • Die Reihenfolge der Datentypen, die Sie in diesem Feld auflisten, wird ignoriert.
      2. Unter JSON, CSV:
        • Klicken Sie das Kästchen Ignore unknown values (Unbekannte Werte ignorieren) an, wenn bei der Übertragung Daten ignoriert werden sollen, die nicht in das Schema der Zieltabelle passen.
      3. Unter AVRO:
        • Klicken Sie das Kästchen Logische Avro-Typen verwenden an, wenn bei der Übertragung logische Avro-Typen in die entsprechenden BigQuery-Datentypen konvertiert werden sollen. Standardmäßig wird das Attribut logicalType für die meisten Typen ignoriert und stattdessen der zugrunde liegende Avro-Typ verwendet.
      4. Unter CSV:

        1. Geben Sie unter Field delimiter (Feldtrennzeichen) das Zeichen ein, das die Felder trennt. Der Standardwert ist ein Komma.
        2. Geben Sie unter Anführungszeichen das Zeichen ein, das zum Kennzeichnen von Datenabschnitten in einer CSV-Datei verwendet wird. Der Standardwert ist ein doppeltes Anführungszeichen (").
        3. Geben Sie unter Header rows to skip (Zu überspringende Kopfzeilen) die Anzahl der Kopfzeilen in den Quelldateien ein, wenn Sie diese nicht importieren möchten. Der Standardwert ist 0.
        4. Klicken Sie das Kästchen Allow quoted newlines (Zeilenumbrüche in Abschnitten in Anführungszeichen zulassen) an, wenn Sie Zeilenumbrüche innerhalb von Feldern in Anführungszeichen zulassen möchten.
        5. Klicken Sie auf das Kästchen Unvollständige Zeilen zulassen, wenn Sie die Übertragung von Zeilen mit fehlenden NULLABLE-Spalten erlauben möchten.
  9. Wählen Sie im Menü Dienstkonto ein Dienstkonto aus den Dienstkonten aus, die mit Ihrem Google Cloud-Projekt verknüpft sind. Sie können Ihre Übertragung mit einem Dienstkonto verknüpfen, anstatt Ihre Nutzeranmeldedaten zu verwenden. Weitere Informationen zur Verwendung von Dienstkonten mit Datenübertragungen finden Sie unter Dienstkonten verwenden.

    • Wenn Sie sich mit einer föderierten Identität angemeldet haben, ist ein Dienstkonto zum Erstellen einer Übertragung erforderlich. Wenn Sie sich mit einem Google-Konto angemeldet haben, ist ein Dienstkonto für die Übertragung optional.
    • Das Dienstkonto muss die erforderlichen Berechtigungen für BigQuery und Cloud Storage haben.
  10. Optional: Im Abschnitt Benachrichtigungsoptionen:

    1. Klicken Sie auf den Umschalter, um E-Mail-Benachrichtigungen zu aktivieren. Wenn Sie diese Option aktivieren, erhält der Inhaber der Übertragungskonfiguration eine E-Mail-Benachrichtigung, wenn eine Übertragung fehlschlägt.
    2. Wählen Sie unter Pub/Sub-Thema auswählen Ihr Thema aus oder klicken Sie auf Thema erstellen. Mit dieser Option werden Pub/Sub-Ausführungsbenachrichtigungen für Ihre Übertragung konfiguriert.
  11. Optional: Im Abschnitt Erweiterte Optionen:

    • Wenn Sie CMEKs verwenden, wählen Sie Vom Kunden verwalteter Schlüssel aus. Es wird eine Liste Ihrer verfügbaren CMEKs angezeigt, aus denen Sie wählen können.

    Informationen zur Funktionsweise von CMEKs mit dem BigQuery Data Transfer Service finden Sie unter Verschlüsselungsschlüssel mit Übertragungen angeben.

  12. Klicken Sie auf Speichern.

bq

Geben Sie den Befehl bq mk ein und geben Sie das Flag --transfer_config für die Übertragungserstellung an. Die folgenden Flags sind ebenfalls erforderlich:

  • --data_source
  • --display_name
  • --target_dataset
  • --params

Optionale Flags:

  • --destination_kms_key gibt die Schlüsselressourcen-ID für den Cloud KMS-Schlüssel an, wenn Sie für diese Übertragung einen vom Kunden verwalteten Verschlüsselungsschlüssel (CMEK) verwenden. Informationen zur Funktionsweise von CMEKs mit dem BigQuery Data Transfer Service finden Sie unter Verschlüsselungsschlüssel mit Übertragungen angeben.
  • --service_account_name: Gibt ein Dienstkonto an, das für die Cloud Storage-Übertragungsauthentifizierung anstelle Ihres Nutzerkontos verwendet werden soll.
bq mk \
--transfer_config \
--project_id=PROJECT_ID \
--data_source=DATA_SOURCE \
--display_name=NAME \
--target_dataset=DATASET \
--destination_kms_key="DESTINATION_KEY" \
--params='PARAMETERS' \
--service_account_name=SERVICE_ACCOUNT_NAME

Wobei:

  • PROJECT_ID ist die Projekt-ID. Wenn --project_id nicht bereitgestellt wird, um ein bestimmtes Projekt anzugeben, wird das Standardprojekt verwendet.
  • DATA_SOURCE ist die Datenquelle, z. B. google_cloud_storage.
  • NAME ist der Anzeigename für die Übertragungskonfiguration. Der Übertragungsname kann ein beliebiger Wert sein, mit dem Sie die Übertragung identifizieren können, wenn Sie sie später ändern müssen.
  • DATASET ist 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.
  • PARAMETERS enthält die Parameter für die erstellte Übertragungskonfiguration im JSON-Format. Beispiel: --params='{"param":"param_value"}'.
    • destination_table_name_template: der Name der BigQuery-Zieltabelle.
    • data_path_template: Der Cloud Storage-URI, der die zu übertragenden Dateien enthält, kann genau einen Platzhalter enthalten.
    • write_disposition: Legt fest, ob übereinstimmende Dateien an die Zieltabelle angehängt oder vollständig gespiegelt werden. Die unterstützten Werte sind APPEND oder MIRROR. Informationen dazu, wie BigQuery Data Transfer Service Daten an Cloud Storage-Übertragungen anhängt oder spiegelt, finden Sie unter Datenaufnahme für Cloud Storage-Übertragungen.
    • file_format: Das Format der Dateien, die Sie übertragen möchten. Das Format kann CSV, JSON, AVRO, PARQUET oder ORC sein. Der Standardwert ist CSV.
    • max_bad_records: Für jeden file_format-Wert die maximale Anzahl fehlerhafter Einträge, die ignoriert werden können. Der Standardwert ist 0.
    • decimal_target_types: Für jeden file_format-Wert eine durch Kommas getrennte Liste möglicher SQL-Datentypen, in die die Dezimalwerte der Quelle konvertiert werden können. Wenn dieses Feld nicht angegeben ist, wird der Datentyp standardmäßig auf "NUMERIC,STRING" für ORC und für die anderen Dateiformate auf "NUMERIC" gesetzt.
    • ignore_unknown_values: Legen Sie für jeden file_format-Wert den Wert TRUE fest, um Zeilen zu akzeptieren, die Werte enthalten, die nicht mit dem Schema übereinstimmen. Weitere Informationen finden Sie in den Details zum ignoreUnknownvalues-Feld in der JobConfigurationLoad-Referenztabelle.
    • use_avro_logical_types: Für AVRO file_format-Werte, die auf TRUE festgelegt sind, um logische Typen in die entsprechenden Typen zu interpretieren (z. B. TIMESTAMP), anstatt nur deren Rohtypen (z. B. INTEGER) zu verwenden.
    • parquet_enum_as_string: fürPARQUET-file_format-Werte, die auf TRUE festgelegt sind, um den logischen Typ PARQUET ENUM als STRING anstelle der Standardeinstellung BYTES festzulegen.
    • parquet_enable_list_inference: Legen Sie für PARQUETfile_format-Werte den Wert TRUE fest, um die Schemainferenz speziell für den logischen Typ PARQUET LIST zu verwenden.
    • reference_file_schema_uri: ein URI-Pfad zu einer Referenz mit dem Reader-Schema.
    • field_delimiter: bei CSV-file_format-Werten ein Zeichen, das Felder trennt. Der Standardwert ist ein Komma.
    • quote: für CSV-file_format-Werte ein Zeichen, das zum Kennzeichnen von Datenabschnitten in einer CSV-Datei verwendet wird. Der Standardwert ist ein doppeltes Anführungszeichen (").
    • skip_leading_rows: Geben Sie für CSV-file_format-Werte die Anzahl der führenden Headerzeilen an, die Sie nicht importieren möchten. Der Standardwert ist 0.
    • allow_quoted_newlines: Legen Sie für CSV-file_format-Werte den Wert TRUE fest, um Zeilenumbrüche in Feldern in Anführungszeichen zuzulassen.
    • allow_jagged_rows: Für CSV-file_format-Werte, die auf TRUE festgelegt sind, um Zeilen zu akzeptieren, bei denen optionale Spalten am Ende fehlen. Die fehlenden Werte werden mit NULL ausgefüllt.
    • preserve_ascii_control_characters: Für CSV-file_format-Werte, die auf TRUE festgelegt sind, um eingebettete ASCII-Steuerzeichen zu erhalten.
    • encoding: Geben Sie den Codierungstyp CSV an. Unterstützte Werte sind UTF8, ISO_8859_1, UTF16BE, UTF16LE, UTF32BE und UTF32LE.
    • delete_source_files: Legen Sie TRUE fest, um die Quelldateien nach jeder erfolgreichen Übertragung zu löschen. Löschjobs werden nicht noch einmal ausgeführt, wenn der erste Versuch, die Quelldatei zu löschen, fehlschlägt. Der Standardwert ist FALSE.
  • SERVICE_ACCOUNT_NAME ist der Name des Dienstkontos, der zur Authentifizierung der Übertragung verwendet wird. Das Dienstkonto sollte zum selben project_id gehören, das für die Erstellung der Übertragung verwendet wurde, und sollte alle erforderlichen Berechtigungen haben.

Mit dem folgenden Befehl wird beispielsweise eine Cloud Storage-Übertragung mit dem Namen My Transfer erstellt. Dabei wird für data_path_template der Wert gs://mybucket/myfile/*.csv, als Ziel-Dataset mydataset und für file_format der Wert CSV verwendet. Dieses Beispiel enthält nicht standardmäßige Werte für die optionalen Parameter, die dem CSV-Dateiformat zugeordnet sind.

Die Übertragung wird im Standardprojekt erstellt:

bq mk --transfer_config \
--target_dataset=mydataset \
--project_id=myProject \
--display_name='My Transfer' \
--destination_kms_key=projects/myproject/locations/mylocation/keyRings/myRing/cryptoKeys/myKey \
--params='{"data_path_template":"gs://mybucket/myfile/*.csv",
"destination_table_name_template":"MyTable",
"file_format":"CSV",
"max_bad_records":"1",
"ignore_unknown_values":"true",
"field_delimiter":"|",
"quote":";",
"skip_leading_rows":"1",
"allow_quoted_newlines":"true",
"allow_jagged_rows":"false",
"delete_source_files":"true"}' \
--data_source=google_cloud_storage \
--service_account_name=abcdef-test-sa@abcdef-test.iam.gserviceaccount.com projects/862514376110/locations/us/transferConfigs/ 5dd12f26-0000-262f-bc38-089e0820fe38

Nachdem Sie den Befehl ausgeführt haben, erhalten Sie eine Meldung wie die Folgende:

[URL omitted] Please copy and paste the above URL into your web browser and follow the instructions to retrieve an authentication code.

Folgen Sie der Anleitung und fügen Sie den Authentifizierungscode in die Befehlszeile ein.

API

Verwenden Sie die Methode projects.locations.transferConfigs.create und geben Sie eine Instanz der Ressource TransferConfig 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.CreateTransferConfigRequest;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.ProjectName;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import com.google.protobuf.Struct;
import com.google.protobuf.Value;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

// Sample to create google cloud storage transfer config
public class CreateCloudStorageTransfer {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    final String projectId = "MY_PROJECT_ID";
    String datasetId = "MY_DATASET_ID";
    String tableId = "MY_TABLE_ID";
    // GCS Uri
    String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.csv";
    String fileFormat = "CSV";
    String fieldDelimiter = ",";
    String skipLeadingRows = "1";
    Map<String, Value> params = new HashMap<>();
    params.put(
        "destination_table_name_template", Value.newBuilder().setStringValue(tableId).build());
    params.put("data_path_template", Value.newBuilder().setStringValue(sourceUri).build());
    params.put("write_disposition", Value.newBuilder().setStringValue("APPEND").build());
    params.put("file_format", Value.newBuilder().setStringValue(fileFormat).build());
    params.put("field_delimiter", Value.newBuilder().setStringValue(fieldDelimiter).build());
    params.put("skip_leading_rows", Value.newBuilder().setStringValue(skipLeadingRows).build());
    TransferConfig transferConfig =
        TransferConfig.newBuilder()
            .setDestinationDatasetId(datasetId)
            .setDisplayName("Your Google Cloud Storage Config Name")
            .setDataSourceId("google_cloud_storage")
            .setParams(Struct.newBuilder().putAllFields(params).build())
            .setSchedule("every 24 hours")
            .build();
    createCloudStorageTransfer(projectId, transferConfig);
  }

  public static void createCloudStorageTransfer(String projectId, TransferConfig transferConfig)
      throws IOException {
    try (DataTransferServiceClient client = DataTransferServiceClient.create()) {
      ProjectName parent = ProjectName.of(projectId);
      CreateTransferConfigRequest request =
          CreateTransferConfigRequest.newBuilder()
              .setParent(parent.toString())
              .setTransferConfig(transferConfig)
              .build();
      TransferConfig config = client.createTransferConfig(request);
      System.out.println("Cloud storage transfer created successfully :" + config.getName());
    } catch (ApiException ex) {
      System.out.print("Cloud storage transfer was not created." + ex.toString());
    }
  }
}

Verschlüsselungsschlüssel mit Übertragungen angeben

Sie können vom Kunden verwaltete Verschlüsselungsschlüssel (CMEKs) angeben, um Daten für eine Übertragungsausführung zu verschlüsseln. Sie können einen CMEK verwenden, um Übertragungen von Cloud Storage zu unterstützen.

Wenn Sie einen CMEK mit einer Übertragung angeben, wendet der BigQuery Data Transfer Service den CMEK auf einen zwischengeschalteten Festplatten-Cache von aufgenommenen Daten an, sodass der gesamte Datenübertragungsworkflow CMEK-konform ist.

Sie können eine vorhandene Übertragung nicht aktualisieren, um einen CMEK hinzuzufügen, wenn die Übertragung nicht ursprünglich mit einem CMEK erstellt wurde. Sie können beispielsweise keine Zieltabelle ändern, die ursprünglich standardmäßig verschlüsselt wurde, um jetzt mit CMEK zu verschlüsseln. Umgekehrt können Sie eine CMEK-verschlüsselte Zieltabelle auch nicht auf einen anderen Verschlüsselungstyp ändern.

Sie können einen CMEK für eine Übertragung aktualisieren, wenn die Übertragungskonfiguration ursprünglich mit einer CMEK-Verschlüsselung erstellt wurde. Wenn Sie einen CMEK für eine Übertragungskonfiguration aktualisieren, leitet der BigQuery Data Transfer Service den CMEK bei der nächsten Ausführung der Übertragung an die Zieltabellen weiter, wobei der BigQuery Data Transfer Service während der Übertragungsausführung alle veralteten CMEKs durch den neuen CMEK ersetzt. Weitere Informationen finden Sie unter Übertragung aktualisieren.

Sie können auch Standardschlüssel für Projekte verwenden. Wenn Sie einen Projektstandardschlüssel für eine Übertragung angeben, verwendet der BigQuery Data Transfer Service den Standardschlüssel des Projekts als Standardschlüssel für neue Übertragungskonfigurationen.

Übertragung manuell auslösen

Zusätzlich zu den automatisch geplanten Übertragungen von Cloud Storage können Sie manuell eine Übertragung auslösen, um zusätzliche Datendateien zu laden.

Wenn die Übertragungskonfiguration laufzeitparametrisiert ist, müssen Sie einen Zeitraum angeben, für den zusätzliche Übertragungen gestartet werden.

So lösen Sie eine Übertragung aus:

Console

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

    Zur Seite „BigQuery“

  2. Klicken Sie auf Datenübertragungen.

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

  4. Klicken Sie auf Übertragung jetzt ausführen oder Backfill planen (für laufzeitparametrisierte Übertragungskonfigurationen).

    • 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

  5. Klicken Sie auf OK.

bq

Geben Sie den Befehl bq mk mit dem Flag --transfer_run ein. Sie können entweder das Flag --run_time oder die Flags --start_time und --end_time verwenden.

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

Wobei:

  • START_TIME und END_TIME sind Zeitstempel, die in Z enden oder einen gültigen Zeitzonen-Offset enthalten. Beispiele:

    • 2017-08-19T12:11:35.00Z
    • 2017-05-25T00:00:00+00:00
  • RUN_TIME ist ein Zeitstempel, der den Zeitpunkt für die Datenübertragungsausführung angibt. Wenn Sie eine einmalige Übertragung für die aktuelle Zeit ausführen möchten, können Sie das Flag --run_time verwenden.

  • RESOURCE_NAME ist der Ressourcenname der Übertragung (auch als Übertragungskonfiguration bezeichnet), z. B. projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7. Wenn Sie den Ressourcennamen der Übertragung nicht kennen, führen Sie den Befehl bq ls --transfer_config --transfer_location=LOCATION aus, um den Ressourcennamen zu ermitteln.

API

Verwenden Sie die Methode projects.locations.transferConfigs.startManualRuns und geben Sie die Übertragungskonfigurationsressource mithilfe des Parameters parent an.

Nächste Schritte