Mit dem Batch-Quell-Plug-in von Cloud Storage können Sie Daten aus Cloud Storage-Buckets lesen und zur weiteren Verarbeitung und Transformation in Cloud Data Fusion importieren. Sie können damit Daten aus verschiedenen Dateiformaten laden, darunter:
- Strukturiert: CSV, Avro, Parquet, ORC
- Semistrukturiert: JSON, XML
- Sonstiges: Text, Binär
Hinweise
Cloud Data Fusion hat in der Regel zwei Dienstkonten:
- Dienstkonto während der Entwicklung: Cloud Data Fusion API-Dienst-Agent
- Dienstkonto zur Ausführungszeit: Compute Engine-Dienstkonto
Gewähren Sie jedem Dienstkonto die folgende Rolle oder die folgenden Berechtigungen, bevor Sie das Batch-Quell-Plug-in von Cloud Storage verwenden.
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
Erteilen Sie in Ihrem Google Cloud-Projekt dem Compute Engine-Dienstkonto die folgenden IAM-Rollen oder -Berechtigungen:
- Leser alter Storage-Buckets (
roles/storage.legacyBucketReader
). Diese vordefinierte Rolle enthält die erforderliche Berechtigungstorage.buckets.get
. Storage Object Viewer (
roles/storage.legacyBucketReader
). Diese vordefinierte Rolle enthält die folgenden erforderlichen Berechtigungen:storage.objects.get
storage.objects.list
Plug-in konfigurieren
- Rufen Sie die Cloud Data Fusion-Weboberfläche auf und klicken Sie auf Studio.
- Prüfen Sie, ob Data Pipeline – Batch (Datenpipeline – Batch) ausgewählt ist (nicht Realtime).
- Klicken Sie im Menü Source (Quelle) auf GCS. Der Cloud Storage-Knoten wird in Ihrer Pipeline angezeigt.
- Rufen Sie den Cloud Storage-Knoten auf und klicken Sie auf Eigenschaften, um die Quelle zu konfigurieren.
Geben Sie die folgenden Eigenschaften ein. Eine vollständige Liste finden Sie unter Eigenschaften.
- Geben Sie ein Label für den Cloud Storage-Knoten ein, z. B.
Cloud Storage tables
. 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:
- Die Option Verbindung verwenden bleibt deaktiviert.
- Übernehmen Sie im Feld Projekt-ID den Wert „Automatisch erkennen“.
Übernehmen Sie im Feld Dienstkontotyp den Wert Dateipfad und den Dateipfad des Dienstkontos automatisch.
Wiederverwendbare Verbindung
So verwenden Sie eine vorhandene Verbindung wieder:
- Aktivieren Sie Verbindung verwenden.
- Klicken Sie auf Verbindungen durchsuchen.
Klicken Sie auf den Namen der Verbindung, z. B. Cloud Storage-Standard.
Optional: Wenn 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 auf dieser Seite.
Geben Sie im Feld Referenzname einen Namen für die Herkunft ein, z. B.
data-fusion-gcs-campaign
.Geben Sie im Feld Pfad den Pfad ein, aus dem gelesen werden soll, z. B.
gs://BUCKET_PATH
.Wählen Sie im Feld Format eines der folgenden Dateiformate für die gelesenen Daten aus:
- avro
- blob (Das Blob-Format erfordert ein Schema, das einen Feldnamen mit dem Typ "bytes" enthält)
- csv
- Trennzeichen
- json
- parquet
- text: Für das Textformat ist ein Schema erforderlich, das ein Feld mit dem Textkörper vom Typ "string" enthält.
- TSV
- Der Name eines beliebigen Format-Plug-ins, das Sie in Ihrer Umgebung bereitgestellt haben
Optional: Klicken Sie auf Schema abrufen, um die Verbindung zu testen.
Optional: Geben Sie im Feld Stichprobengröße die maximale Anzahl von Zeilen ein, die auf den ausgewählten Datentyp geprüft werden sollen, z. B.
1000
.Optional: Geben Sie im Feld Überschreiben die Spaltennamen und die entsprechenden Datentypen ein, die übersprungen werden sollen.
Optional: Geben Sie Erweiterte Eigenschaften ein, z. B. eine minimale Split-Größe oder einen Pfadfilter mit regulären Ausdrücken (siehe Eigenschaften).
Optional: Geben Sie im Feld Name des temporären Buckets einen Namen für den Cloud Storage-Bucket ein.
- Geben Sie ein Label für den Cloud Storage-Knoten ein, z. B.
Optional: Klicken Sie auf Validieren und beheben Sie alle gefundenen Fehler.
Klicken Sie auf Schließen. Die Eigenschaften werden gespeichert und Sie können die Datenpipeline in Cloud Data Fusion Studio weiter erstellen.
Attribute
Attribut | Makro aktiviert | Erforderliches Attribut | 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 der Verbindungen, die beim Durchsuchen von Verbindungen angezeigt werden, finden Sie unter Verbindungen verwalten. |
Verbindung | Ja | Ja | Wenn Verbindung verwenden aktiviert ist, wird der Name der von Ihnen ausgewählten wiederverwendbaren Verbindung in diesem Feld angezeigt. |
Projekt-ID | Ja | Nein | Wird nur verwendet, wenn Verbindung verwenden deaktiviert ist. Eine global eindeutige Kennzeichnung für das Projekt. Der Standardwert ist auto-detect . |
Dienstkontotyp | Ja | Nein | Wählen Sie eine der folgenden Optionen aus:
|
Service account file path (Dateipfad des Dienstkontos) | Ja | Nein | Wird nur verwendet, wenn der Wert des Dienstkontotyps 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, setzen Sie den Wert auf „Automatisch erkennen“. Wenn Jobs in anderen Clustertypen ausgeführt werden, muss die Datei auf jedem Knoten im Cluster vorhanden sein. Der Standardwert ist auto-detect . |
Dienstkonto-JSON-Datei | Ja | Nein | Wird nur verwendet, wenn der Wert des Dienstkontotyps JSON ist. Der Inhalt der JSON-Datei des Dienstkontos. |
Referenzname | Nein | Ja | Name, der diese Quelle für andere Dienste eindeutig identifiziert, z. B. die Herkunft 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 (/ ). Beispiel: gs://bucket/path/to/directory/ . Wenn Sie einem Dateinamenmuster entsprechen möchten, 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. Folgende Formate sind zulässig:
|
Stichprobengröße | Ja | Nein | Die maximale Anzahl der Zeilen, die für die automatische Datentyperkennung untersucht werden. Der Standardwert ist 1000. |
Überschreiben | Ja | Nein | Eine Liste von Spalten mit den entsprechenden Daten, aus denen die automatische Datentyperkennung übersprungen wird. |
Trennzeichen | Ja | Nein | Trennzeichen, das verwendet werden soll, wenn das Format mit Trennzeichen verwendet wird. Bei anderen Formaten wird diese Eigenschaft ignoriert. |
Werte in Anführungszeichen aktivieren | Ja | Nein | Gibt an, ob der Inhalt in Anführungszeichen als Wert behandelt werden soll. Diese Eigenschaft wird nur für die Formate csv, csv oder csv verwendet. Wenn dieses Attribut beispielsweise auf „true“ gesetzt ist, werden zwei Felder ausgegeben: 1, "a, b, c" .
Das erste Feld hat 1 als Wert. Die zweite hat a, b, c . Die Anführungszeichen werden abgeschnitten. Das Trennzeichen für den Zeilenumbruch darf nicht in Anführungszeichen gesetzt werden.Das Plug-in geht davon aus, dass die Anführungszeichen korrekt eingeschlossen sind, z. B. "a, b, c" . Wenn ein Angebot nicht geschlossen wird ("a,b,c, ), tritt ein Fehler auf.Der Standardwert ist False. |
Erste Zeile als Kopfzeile verwenden | Ja | Nein | Gibt an, ob die erste Zeile jeder Datei als Spaltenüberschrift verwendet werden soll. Unterstützte Formate sind Text, CSV, TSV und Trennzeichen. Der Standardwert ist False. |
Minimale Split-Größe | Ja | Nein | Mindestgröße in Byte für jede Eingabepartition. Kleinere Partitionen erhöhen den Grad der Parallelität, erfordern aber mehr Ressourcen und Aufwand.
Wenn der Wert für Format blob ist, können die Daten nicht aufgeteilt werden. |
Maximale Split-Größe | Ja | Nein | Maximale Größe in Byte für jede Eingabepartition. Kleinere Partitionen erhöhen den Grad der Parallelität, erfordern aber mehr Ressourcen und Aufwand.
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, nach 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 für reguläre Ausdrücke finden Sie unter Muster. |
Pfad-Feld | Ja | Nein | Ausgabefeld für den Pfad der Datei, aus der der Datensatz gelesen wurde. Wenn nicht angegeben, ist der Pfad nicht in den Ausgabeeinträgen enthalten. Wenn das Feld angegeben wird, muss es im Ausgabeschema als String vorhanden sein. |
Nur Pfad-Dateiname | Ja | Nein | Wenn eine Eigenschaft Pfadfeld 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 | Gibt an, ob ein Eingabepfad ohne Daten zulässig ist. Wenn dieser Wert auf False gesetzt ist, gibt das Plug-in einen Fehler aus, wenn keine Daten zum Lesen vorhanden sind. Wenn True festgelegt ist, wird kein Fehler ausgegeben und es werden keine Datensätze gelesen. Der Standardwert ist False. |
Datendatei verschlüsselt | Ja | Nein | Gibt an, ob Dateien verschlüsselt sind. Weitere Informationen finden Sie unter Datendateiverschlüsselung. Der Standardwert ist False. |
Suffix der Verschlüsselungsmetadaten | Ja | Nein | Das Dateinamensuffix für die Verschlüsselungsmetadatendatei. Der Standardwert ist metadata. |
Dateisystemeigenschaften | Ja | Nein | Zusätzliche Attribute, die beim Lesen der Daten mit dem InputFormat verwendet werden. |
Dateicodierung | Ja | Nein | Die Zeichencodierung für die zu lesenden Dateien. Der Standardwert ist UTF-8. |
Ausgabeschema | Ja | Nein | Wenn eine Eigenschaft Pfad-Feld festgelegt ist, muss sie im Schema als String vorhanden sein. |
Datendateiverschlüsselung
In diesem Abschnitt wird das Attribut Datendateiverschlüsselung beschrieben. Wenn Sie true festlegen, werden Dateien mit dem von der Tink-Bibliothek bereitgestellten Streaming AEAD entschlüsselt. Jeder Datendatei muss eine Metadatendatei mit den Chiffreinformationen beigefügt sein. Beispielsweise muss eine verschlüsselte Datendatei unter gs://BUCKET/PATH_TO_DIRECTORY/file1.csv.enc
eine Metadatendatei unter gs://BUCKET/
PATH_TO_DIRECTORY/file1.csv.enc.metadata
haben. Die Metadatendatei enthält ein JSON-Objekt mit den folgenden Attributen:
Attribut | Beschreibung |
---|---|
kms |
Der URI des Cloud Key Management Service, der zum Verschlüsseln des Datenverschlüsselungsschlüssels verwendet wurde. |
aad |
Die für die Verschlüsselung verwendeten Base64-codierten zusätzlichen authentifizierten Daten. |
key set |
Ein JSON-Objekt, das die seriellen Keyset-Informationen 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" } }