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:
- Dienstkonto zur Laufzeit: Cloud Data Fusion API-Dienst-Agent
- Dienstkonto für die Ausführungszeit: Compute Engine-Dienstkonto
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 Berechtigungstorage.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
- Rufen Sie die Cloud Data Fusion-Weboberfläche auf und klicken Sie auf Studio.
- Achten Sie darauf, dass Datenpipeline – Batch ausgewählt ist (nicht Echtzeit).
- Klicken Sie im Menü Quelle auf GCS. Der Cloud Storage-Knoten wird in Ihrer Pipeline angezeigt.
- Klicken Sie zum Konfigurieren der Quelle auf den Cloud Storage-Knoten und dann auf Attribute.
Geben Sie die folgenden Properties 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 einmalige Verbindung oder eine vorhandene wiederverwendbare Verbindung einrichten.
Neue Verbindung
So fügen Sie eine einmalige Verbindung zu Cloud Storage hinzu:
- Lassen Sie die Option Verbindung verwenden deaktiviert.
- Lassen Sie im Feld Project ID (Projekt-ID) den Wert „auto-detect“ (automatisch erkennen) beibehalten.
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:
- Aktivieren Sie Verbindung verwenden.
- Klicken Sie auf Verbindungen durchsuchen.
Klicken Sie auf den Verbindungsnamen, z. B. Cloud Storage Standard.
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.
Geben Sie im Feld Referenzname einen Namen für die Linie 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 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
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 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 Eigenschaften ein, z. B. eine Mindestaufteilungsgröß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 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 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:
|
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" } }