Mit dem Cloud Storage-Batchquellen-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 Daten aus verschiedenen Dateiformaten laden, darunter:
- Strukturiert: CSV, Avro, Parquet, ORC
- Halbstrukturiert: JSON, XML
- Sonstiges: Text, Binär
Hinweis
Cloud Data Fusion hat in der Regel zwei Dienstkonten:
- Dienstkonto für die Designzeit: Cloud Data Fusion API Service Agent
- Dienstkonto für die Ausführungszeit: Compute Engine-Dienstkonto
Bevor Sie das Cloud Storage-Batchquellen-Plug-in verwenden, müssen Sie jedem Dienstkonto die folgende Rolle oder die folgenden Berechtigungen zuweisen.
Cloud Data Fusion API-Dienst-Agent
Dieses Dienstkonto hat bereits alle erforderlichen Berechtigungen. Sie müssen keine zusätzlichen Berechtigungen hinzufügen.
Compute Engine-Dienstkonto
Weisen Sie dem Compute Engine-Dienstkonto in Ihrem Google Cloud -Projekt die folgenden IAM-Rollen oder Berechtigungen zu:
- Leser von Legacy-Storage-Buckets (
roles/storage.legacyBucketReader). Diese vordefinierte Rolle enthält die erforderliche Berechtigungstorage.buckets.get. Storage-Objekt-Betrachter (
roles/storage.legacyBucketReader): Diese vordefinierte Rolle enthält die folgenden erforderlichen Berechtigungen:storage.objects.getstorage.objects.list
Plug-in konfigurieren
- Rufen Sie die Cloud Data Fusion-Web-UI auf und klicken Sie auf Studio.
- Prüfen Sie, ob Datenpipeline – Batch (nicht Echtzeit) ausgewählt ist.
- Klicken Sie im Menü Quelle auf GCS. Der Cloud Storage-Knoten wird in Ihrer Pipeline angezeigt.
- Wenn Sie die Quelle konfigurieren möchten, rufen Sie den Cloud Storage-Knoten auf und klicken Sie auf Attribute.
Geben Sie die folgenden Eigenschaften ein. Eine vollständige Liste finden Sie unter Properties.
- 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 Einmalverbindung oder eine vorhandene, wiederverwendbare Verbindung einrichten.
Neue Verbindung
So fügen Sie eine einmalige Verbindung zu Cloud Storage hinzu:
- Lassen Sie Verbindung verwenden deaktiviert.
- Lassen Sie im Feld Project ID (Projekt-ID) den Wert „auto-detect“ (automatisch erkennen) stehen.
Behalten Sie im Feld Dienstkontotyp den Wert Dateipfad bei und lassen Sie den Dienstkontodateipfad automatisch erkennen.
Wiederverwendbare Verbindung
So verwenden Sie eine vorhandene Verbindung wieder:
- Aktivieren Sie Verbindung verwenden.
- Klicken Sie auf Verbindungen durchsuchen.
Klicken Sie auf den Verbindungsnamen, z. B. Cloud Storage Default.
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 (für das Blob-Format ist ein Schema erforderlich, das ein Feld mit dem Namen „body“ vom Typ „bytes“ enthält)
- csv
- delimited
- json
- parquet
- text (für das Textformat ist ein Schema erforderlich, das ein Feld mit dem Namen „body“ vom Typ „string“ enthält)
- tsv
- Der Name eines beliebigen Format-Plug-ins, das Sie in Ihrer Umgebung bereitgestellt haben.
Optional: Wenn Sie die Verbindung testen möchten, klicken Sie auf Schema abrufen.
Optional: Geben Sie im Feld Stichprobengröße die maximale Anzahl der Zeilen ein, die für 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 Attribute ein, z. B. eine Mindestgröße für Splits oder einen regulären Ausdruck für den Pfadfilter (siehe Attribute).
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 Ihre Datenpipeline im Cloud Data Fusion Studio weiter erstellen.
Eigenschaften
| 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 der 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 wiederverwendbaren Verbindung angezeigt, die Sie auswählen. |
| 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. |
| 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 für „Service account type“ (Dienstkontotyp) File path (Dateipfad) ist. Der Pfad im lokalen Dateisystem des Dienstkontoschlüssels, der für die Autorisierung verwendet wird. Wenn Jobs in Managed Service for Apache Spark-Clustern ausgeführt werden, legen Sie den Wert auf „auto-detect“ 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 für „Service account type“ (Dienstkontotyp) JSON ist. Der Inhalt der JSON-Datei des Dienstkontos. |
| Referenzname | Nein | Ja | Name, der diese Quelle für andere Dienste wie Datenverlaufskontrolle und Annotieren von Metadaten eindeutig identifiziert. |
| Pfad | Ja | Ja | Pfad zu den zu lesenden Dateien. Wenn ein Verzeichnis angegeben wird, beenden Sie den Pfad mit einem umgekehrten Schrägstrich (/), z. B. gs://bucket/path/to/directory/. Wenn Sie ein Dateinamenmuster abgleichen 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 | Das Format der zu lesenden Daten. Das Format muss eines der folgenden sein:
|
| Stichprobengröße | Ja | Nein | Die maximale Anzahl von Zeilen, die für die automatische Erkennung des Datentyps untersucht werden. Der Standardwert ist 1000. |
| Überschreiben | Ja | Nein | Eine Liste von Spalten mit den entsprechenden Daten, für die die automatische Erkennung des Datentyps übersprungen wird. |
| Trennzeichen | Ja | Nein | Trennzeichen, das verwendet werden soll, wenn das Format delimited ist. Diese Property wird bei anderen Formaten ignoriert. |
| Werte in Anführungszeichen aktivieren | Ja | Nein | Gibt an, ob Inhalte zwischen Anführungszeichen als Wert behandelt werden sollen. Diese Property wird nur für die Formate csv, tsv oder delimited verwendet. Wenn diese Eigenschaft beispielsweise auf „true“ gesetzt ist, werden mit dem folgenden Befehl zwei Felder ausgegeben: 1, "a, b, c".
Das erste Feld hat den Wert 1. Die zweite hat
a, b, c. Die Anführungszeichen werden entfernt. Das Neue-Zeile-Trennzeichen 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 Sie ein Anführungszeichen ("a,b,c,) nicht schließen, wird ein Fehler ausgegeben.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 delimited. Der Standardwert ist False. |
| Mindestgröße für Splits | Ja | Nein | Die Mindestgröße jeder Eingabepartition in Byte. Kleinere Partitionen erhöhen den Parallelitätsgrad, erfordern aber mehr Ressourcen und Overhead.
Wenn der Wert für Format blob ist, können Sie die Daten nicht aufteilen. |
| Maximale Aufteilungsgröße | Ja | Nein | Maximale Größe jeder Eingabepartition in Byte. Kleinere Partitionen erhöhen den Parallelitätsgrad, erfordern aber mehr Ressourcen und Overhead.
Wenn der Wert für Format blob ist, können Sie die Daten nicht aufteilen.Der Standardwert ist 128 MB. |
| Regex-Pfadfilter | Ja | Nein | Regulärer Ausdruck, mit dem Dateipfade übereinstimmen müssen, damit sie in die Eingabe aufgenommen 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 regulärer Ausdrücke finden Sie unter Pattern. |
| Pfadfeld | Ja | Nein | Ausgabefeld für den Pfad der Datei, aus der der Datensatz gelesen wurde. Wenn er nicht angegeben ist, wird der Pfad nicht in die Ausgabedatensätze aufgenommen. Falls angegeben, muss das Feld im Ausgabeschema als String vorhanden sein. |
| Nur Pfad-Dateiname | Ja | Nein | Wenn die Eigenschaft Path field 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 der Wert 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 Verschlüsselung von Datendateien. Der Standardwert ist False. |
| Suffix der Verschlüsselungsmetadatendatei | Ja | Nein | Das Dateinamesuffix für die Datei mit den Verschlüsselungsmetadaten. Der Standardwert ist metadata. |
| Dateisystemeigenschaften | Ja | Nein | Zusätzliche Attribute, die mit „InputFormat“ beim Lesen der Daten verwendet werden sollen. |
| Dateicodierung | Ja | Nein | Die Zeichencodierung für die zu lesenden Dateien. Der Standardwert ist UTF-8. |
| Ausgabeschema | Ja | Nein | Wenn die Property Pfadfeld festgelegt ist, muss sie im Schema als String vorhanden sein. |
Verschlüsselung von Datendateien
In diesem Abschnitt wird die Property Verschlüsselung von Datendateien beschrieben. Wenn Sie den Wert auf true setzen, werden Dateien mit dem Streaming-AEAD entschlüsselt, das von der Tink-Bibliothek bereitgestellt wird. Jeder Datendatei muss eine Metadatendatei mit den Chiffrierinformationen beigefügt werden. Eine verschlüsselte Datendatei unter gs://BUCKET/PATH_TO_DIRECTORY/file1.csv.enc
muss beispielsweise 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 wurden. |
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" } }