Cloud Storage-Batchquelle

Auf dieser Seite finden Sie eine Anleitung zum Konfigurieren des Cloud Storage-Batch-Quell-Plug-ins in Cloud Data Fusion.

Mit dem Cloud Storage-Batch-Quell-Plug-in können Sie Daten aus Cloud Storage-Buckets lesen und zur weiteren Verarbeitung und Transformation in Cloud Data Fusion einfügen. Sie können damit Daten aus mehreren Dateiformaten laden, darunter:

  • Strukturiert: CSV, Avro, Parquet, ORC
  • Semistrukturiert: JSON, XML
  • Sonstiges: Text, Binärcode

Hinweis

Cloud Data Fusion hat in der Regel zwei Dienstkonten:

Bevor Sie das Cloud Storage-Batch-Quell-Plug-in verwenden, müssen Sie jedem Dienstkonto die folgende Rolle oder die folgenden Berechtigungen gewähren.

Cloud Data Fusion API-Dienst-Agent

Dieses Dienstkonto hat bereits alle erforderlichen Berechtigungen und Sie müssen keine zusätzlichen Berechtigungen hinzufügen.

Compute Engine-Dienstkonto

Weisen Sie in Ihrem Google Cloud Projekt dem Compute Engine-Dienstkonto die folgenden IAM-Rollen oder Berechtigungen zu:

  • Leser alter Storage-Buckets (roles/storage.legacyBucketReader): Diese vordefinierte Rolle enthält die erforderliche Berechtigung storage.buckets.get.
  • Storage-Objekt-Betrachter (roles/storage.legacyBucketReader): Diese vordefinierte Rolle enthält die folgenden erforderlichen Berechtigungen:

    • storage.objects.get
    • storage.objects.list

Plug-in konfigurieren

  1. Rufen Sie die Cloud Data Fusion-Weboberfläche auf und klicken Sie auf Studio.
  2. Achten Sie darauf, dass Datenpipeline – Batch ausgewählt ist (nicht Echtzeit).
  3. Klicken Sie im Menü Quelle auf GCS. Der Cloud Storage-Knoten wird in Ihrer Pipeline angezeigt.
  4. Klicken Sie zum Konfigurieren der Quelle auf den Cloud Storage-Knoten und dann auf Attribute.
  5. Geben Sie die folgenden Properties ein. Eine vollständige Liste finden Sie unter Properties.

    1. Geben Sie ein Label für den Cloud Storage-Knoten ein, z. B. Cloud Storage tables.
    2. Geben Sie die Verbindungsdetails ein. Sie können eine neue einmalige Verbindung oder eine vorhandene wiederverwendbare Verbindung einrichten.

      Neue Verbindung

      So fügen Sie eine einmalige Verbindung zu Cloud Storage hinzu:

      1. Lassen Sie die Option Verbindung verwenden deaktiviert.
      2. Lassen Sie im Feld Project ID (Projekt-ID) den Wert „auto-detect“ (automatisch erkennen) beibehalten.
      3. Lassen Sie im Feld Dienstkontotyp den Wert Dateipfad und für Dateipfad des Dienstkontos die automatische Erkennung beibehalten.

      Wiederverwendbare Verbindung

      So verwenden Sie eine vorhandene Verbindung wieder:

      1. Aktivieren Sie Verbindung verwenden.
      2. Klicken Sie auf Verbindungen durchsuchen.
      3. Klicken Sie auf den Verbindungsnamen, z. B. Cloud Storage Standard.

      4. Optional: Wenn noch keine Verbindung vorhanden ist und Sie eine neue wiederverwendbare Verbindung erstellen möchten, klicken Sie auf Verbindung hinzufügen und folgen Sie der Anleitung auf dem Tab Neue Verbindung.

    3. Geben Sie im Feld Referenzname einen Namen für die Linie ein, z. B. data-fusion-gcs-campaign.

    4. Geben Sie im Feld Pfad den Pfad ein, aus dem gelesen werden soll, z. B. gs://BUCKET_PATH.

    5. Wählen Sie im Feld Format eines der folgenden Dateiformate für die gelesenen Daten aus:

      • avro
      • blob (für das Blob-Format ist ein Schema mit einem Feld namens „body“ vom Typ „bytes“ erforderlich)
      • csv
      • getrennt
      • json
      • parquet
      • text (für das Textformat ist ein Schema mit einem Feld namens „body“ vom Typ „string“ erforderlich)
      • TSV
      • Der Name eines Format-Plug-ins, das du in deiner Umgebung bereitgestellt hast
    6. Optional: Klicken Sie auf Schema abrufen, um die Verbindung zu testen.

    7. Optional: Geben Sie im Feld Stichprobengröße die maximale Anzahl von Zeilen ein, die für den ausgewählten Datentyp geprüft werden sollen, z. B. 1000.

    8. Optional: Geben Sie im Feld Überschreiben die Spaltennamen und die entsprechenden Datentypen ein, die übersprungen werden sollen.

    9. Optional: Geben Sie erweiterte Eigenschaften ein, z. B. eine Mindestaufteilungsgröße oder einen Pfadfilter mit regulären Ausdrücken (siehe Eigenschaften).

    10. Optional: Geben Sie im Feld Name des temporären Buckets einen Namen für den Cloud Storage-Bucket ein.

  6. Optional: Klicken Sie auf Validieren und beheben Sie alle gefundenen Fehler.

  7. Klicken Sie auf Schließen. Die Properties werden gespeichert und Sie können Ihre Datenpipeline in Cloud Data Fusion Studio weiter erstellen.

Attribute

Attribut Makro aktiviert Erforderliche Property Beschreibung
Label Nein Ja Der Name des Knotens in Ihrer Datenpipeline.
Verbindung verwenden Nein Nein Suchen Sie nach einer wiederverwendbaren Verbindung zur Quelle. Weitere Informationen zum Hinzufügen, Importieren und Bearbeiten von Verbindungen, die beim Durchsuchen von Verbindungen angezeigt werden, finden Sie unter Verbindungen verwalten.
Verbindung Ja Ja Wenn Verbindung verwenden aktiviert ist, wird in diesem Feld der Name der ausgewählten wiederverwendbaren Verbindung angezeigt.
Projekt-ID Ja Nein Wird nur verwendet, wenn Verbindung verwenden deaktiviert ist. Eine weltweit eindeutige Kennung für das Projekt.
Der Standardwert ist auto-detect.
Typ des Dienstkontos Ja Nein Wählen Sie eine der folgenden Optionen aus:
  • Dateipfad: Der Pfad, in dem sich das Dienstkonto befindet.
  • JSON: JSON-Inhalt des Dienstkontos.
Dateipfad des Dienstkontos Ja Nein Wird nur verwendet, wenn der Wert für den Dienstkontotyp Dateipfad ist. Der Pfad im lokalen Dateisystem des Dienstkontoschlüssels, der für die Autorisierung verwendet wird. Wenn Jobs in Dataproc-Clustern ausgeführt werden, legen Sie den Wert auf „Automatische Erkennung“ fest. Wenn Jobs in anderen Clustertypen ausgeführt werden, muss die Datei auf jedem Knoten im Cluster vorhanden sein.
Der Standardwert ist auto-detect.
JSON-Dienstkonto Ja Nein Wird nur verwendet, wenn der Wert „Typ des Dienstkontos“ JSON ist. Der Inhalt der JSON-Datei des Dienstkontos.
Referenzname Nein Ja Name, der diese Quelle eindeutig für andere Dienste identifiziert, z. B. für die Datenverlaufskontrolle und das Annotieren von Metadaten.
Pfad Ja Ja Pfad zu den zu lesenden Dateien. Wenn ein Verzeichnis angegeben ist, beenden Sie den Pfad mit einem umgekehrten Schrägstrich (/), z. B. gs://bucket/path/to/directory/. Um ein Dateinamenmuster abzugleichen, können Sie ein Sternchen (*) als Platzhalter verwenden. Wenn keine Dateien gefunden oder abgeglichen werden, schlägt die Pipeline fehl.
Format Nein Ja Format der zu lesenden Daten. Das Format muss eines der folgenden sein:
  • avro
  • blob (für das Blob-Format ist ein Schema mit einem Feld namens „body“ vom Typ „bytes“ erforderlich)
  • csv
  • getrennt
  • json
  • parquet
  • text (für das Textformat ist ein Schema mit einem Feld namens „body“ vom Typ „string“ erforderlich)
  • TSV
  • Der Name eines Format-Plug-ins, das Sie in Ihrer Umgebung bereitgestellt haben
  • Wenn das Format ein Makro ist, können nur die vorkonfigurierten Formate verwendet werden.
Stichprobengröße Ja Nein Die maximale Anzahl von Zeilen, die für die automatische Datentyperkennung untersucht werden. Der Standardwert ist 1.000.
Überschreiben Ja Nein Eine Liste von Spalten mit den entsprechenden Daten, bei denen die automatische Erkennung des Datentyps übersprungen wird.
Trennzeichen Ja Nein Trennzeichen, das verwendet werden soll, wenn das Format getrennt ist. Bei anderen Formaten wird sie ignoriert.
Werte in Anführungszeichen aktivieren Ja Nein Gibt an, ob Text in Anführungszeichen als Wert behandelt werden soll. Diese Property wird nur für die Formate csv, tsv oder getrennt verwendet. Wenn diese Eigenschaft beispielsweise auf „wahr“ gesetzt ist, werden zwei Felder ausgegeben: 1, "a, b, c". Das erste Feld hat den Wert 1. Der zweite hat a, b, c. Die Anführungszeichen werden abgeschnitten. Das Trennzeichen für neue Zeilen darf nicht in Anführungszeichen stehen.
Das Plug-in geht davon aus, dass die Anführungszeichen korrekt gesetzt sind, z. B. "a, b, c". Wenn ein Anführungszeichen ("a,b,c,) nicht geschlossen wird, führt das zu einem Fehler.
Der Standardwert ist False.
Erste Zeile als Kopfzeile verwenden Ja Nein Ob die erste Zeile jeder Datei als Spaltenüberschrift verwendet werden soll. Unterstützte Formate: Text, CSV, TSV und getrennt.
Standardwert ist False.
Mindestgröße der Teilung Ja Nein Mindestgröße in Byte für jede Eingabepartition. Kleinere Partitionen erhöhen den Parallelisierungsgrad, erfordern aber mehr Ressourcen und Overhead.
Wenn der Wert für Format blob ist, können die Daten nicht aufgeteilt werden.
Maximale Größe der Aufteilung Ja Nein Maximale Größe in Byte für jede Eingabepartition. Kleinere Partitionen erhöhen den Parallelisierungsgrad, erfordern aber mehr Ressourcen und Overhead.
Wenn der Wert für Format blob ist, können die Daten nicht aufgeteilt werden.
Der Standardwert ist 128 MB.
Regex-Pfadfilter Ja Nein Regulärer Ausdruck, mit dem Dateipfade übereinstimmen müssen, um in die Eingabe aufgenommen zu werden. Es wird der vollständige Pfad verglichen, nicht nur der Dateiname. Wenn keine Datei angegeben ist, wird keine Dateifilterung durchgeführt. Weitere Informationen zur Syntax von regulären Ausdrücken finden Sie unter Muster.
Pfadfeld Ja Nein Ausgabefeld für den Pfad der Datei, aus der der Datensatz gelesen wurde. Wenn Sie keinen Pfad angeben, wird er nicht in die Ausgabedatensätze aufgenommen. Wenn angegeben, muss das Feld im Ausgabeschema als String vorhanden sein.
Nur Pfaddateiname Ja Nein Wenn eine Pfadfeld-Eigenschaft festgelegt ist, verwenden Sie nur den Dateinamen und nicht den URI des Pfads.
Der Standardwert ist False.
Dateien rekursiv lesen Ja Nein Gibt an, ob Dateien rekursiv aus dem Pfad gelesen werden sollen.
Der Standardwert ist False.
Leere Eingabe zulassen Ja Nein Ob ein Eingabepfad ohne Daten zulässig ist. Wenn diese Option auf False gesetzt ist, gibt das Plug-in einen Fehler aus, wenn keine Daten zum Lesen vorhanden sind. Wenn dieser Wert auf True gesetzt ist, wird kein Fehler ausgegeben und es werden keine Datensätze gelesen.
Der Standardwert ist False.
Datendatei verschlüsselt Ja Nein Ob Dateien verschlüsselt sind. Weitere Informationen finden Sie unter Datei-Verschlüsselung.
Der Standardwert ist False.
Suffix der Verschlüsselungsmetadatendatei Ja Nein Das Dateinamensuffix für die Verschlüsselungsmetadatendatei.
Standardwert ist metadata.
Dateisystemeigenschaften Ja Nein Zusätzliche Properties, die beim Lesen der Daten mit dem Eingabeformat verwendet werden sollen.
Dateicodierung Ja Nein Die Zeichencodierung für die zu lesenden Dateien.
UTF-8 ist die Standardeinstellung.
Ausgabeschema Ja Nein Wenn eine Property vom Typ Pfadfeld festgelegt ist, muss sie im Schema als String vorhanden sein.

Datendateiverschlüsselung

In diesem Abschnitt wird die Property Dateidatenverschlüsselung beschrieben. Wenn Sie diese Option auf true festlegen, werden Dateien mithilfe des Streaming-AEAD-Verfahrens entschlüsselt, das von der Tink-Bibliothek bereitgestellt wird. Jede Datendatei muss mit einer Metadatendatei mit den Chiffreinformationen versehen sein. Beispiel: Eine verschlüsselte Datendatei unter gs://BUCKET/PATH_TO_DIRECTORY/file1.csv.enc muss eine Metadatendatei unter gs://BUCKET/ PATH_TO_DIRECTORY/file1.csv.enc.metadata haben. Die Metadatendatei enthält ein JSON-Objekt mit den folgenden Eigenschaften:

Attribut Beschreibung
kms Der Cloud Key Management Service-URI, der zum Verschlüsseln des Datenverschlüsselungsschlüssels verwendet wurde.
aad Die base64-codierten zusätzlichen authentifizierten Daten, die bei der Verschlüsselung verwendet werden.
key set Ein JSON-Objekt, das die serialisierten Schlüsselsatzinformationen aus der Tink-Bibliothek darstellt.

Beispiel

    /* Counting example */
    {

      "kms": "gcp-kms://projects/my-key-project/locations/us-west1/keyRings/my-key-ring/cryptoKeys/mykey",

      "aad": "73iT4SUJBM24umXecCCf3A==",

      "keyset": {

          "keysetInfo": {

              "primaryKeyId": 602257784,

              "keyInfo": [{

                  "typeUrl": "type.googleapis.com/google.crypto.tink.AesGcmHkdfStreamingKey",

                  "outputPrefixType": "RAW",

                  "keyId": 602257784,

                  "status": "ENABLED"

              }]

          },

          "encryptedKeyset": "CiQAz5HH+nUA0Zuqnz4LCnBEVTHS72s/zwjpcnAMIPGpW6kxLggSrAEAcJKHmXeg8kfJ3GD4GuFeWDZzgGn3tfolk6Yf5d7rxKxDEChIMWJWGhWlDHbBW5B9HqWfKx2nQWSC+zjM8FLefVtPYrdJ8n6Eg8ksAnSyXmhN5LoIj6az3XBugtXvCCotQHrBuyoDY+j5ZH9J4tm/bzrLEjCdWAc+oAlhsUAV77jZhowJr6EBiyVuRVfcwLwiscWkQ9J7jjHc7ih9HKfnqAZmQ6iWP36OMrEn"

      }

    }
    

Versionshinweise

Nächste Schritte