Die Vorlage zur Dateiformatkonvertierung ist eine Batchpipeline die im Cloud-Speicher gespeicherte Dateien von einem unterstützten Format in ein anderes konvertiert.
Die folgenden Formatkonvertierungen werden unterstützt:
- CSV zu Avro
- CSV zu Parquet
- Avro zu Parquet
- Parquet zu Avro
Pipelineanforderungen
- Der Cloud Storage-Ausgabe-Bucket muss vorhanden sein, bevor Sie die Pipeline ausführen.
Vorlagenparameter
Parameter | Beschreibung |
---|---|
inputFileFormat |
Das Eingabedateiformat. Dies muss einer der folgenden Werte sein: [csv, avro, parquet] . |
outputFileFormat |
Das Ausgabedateiformat. Dies muss einer der folgenden Werte sein: [avro, parquet] . |
inputFileSpec |
Das Cloud Storage-Pfadmuster für Eingabedateien. Beispiel: gs://bucket-name/path/*.csv |
outputBucket |
Der Cloud Storage-Ordner zum Schreiben von Ausgabedateien. Dieser Pfad muss mit einem Schrägstrich enden.
Beispiel: gs://bucket-name/output/ |
schema |
Der Cloud Storage-Pfad zur Avro-Schemadatei (z. B. gs://bucket-name/schema/my-schema.avsc ) |
containsHeaders |
(Optional) Die CSV-Eingabedateien enthalten eine Kopfzeile (true/false). Der Standardwert ist false . Nur erforderlich, wenn CSV-Dateien gelesen werden. |
csvFormat |
(Optional) Die CSV-Formatspezifikation zum Parsen von Einträgen. Der Standardwert ist Default .
Weitere Informationen finden Sie unter Apache Commons CSV-Format. |
delimiter |
(Optional) Das Feldtrennzeichen, das von den eingegebenen CSV-Dateien verwendet wird. |
outputFilePrefix |
(Optional) Das Präfix der Ausgabedatei. Der Standardwert ist output . |
numShards |
[Optional] Die Anzahl der Shards der Ausgabedatei. |
Führen Sie die Vorlage aus.
Console
- Rufen Sie die Dataflow-Seite Job aus Vorlage erstellen auf. Zur Seite "Job aus Vorlage erstellen“
- Geben Sie im Feld Jobname einen eindeutigen Jobnamen ein.
- Optional: Wählen Sie für Regionaler Endpunkt einen Wert aus dem Drop-down-Menü aus. Die Standardregion ist
us-central1
.Eine Liste der Regionen, in denen Sie einen Dataflow-Job ausführen können, finden Sie unter Dataflow-Standorte.
- Wählen Sie im Drop-down-Menü Dataflow-Vorlage die Option the Convert file formats templateaus.
- Geben Sie Ihre Parameterwerte in die Parameterfelder ein.
- Klicken Sie auf Job ausführen.
gcloud
Führen Sie die Vorlage in der Shell oder im Terminal aus:
gcloud dataflow flex-template run JOB_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/File_Format_Conversion \ --parameters \ inputFileFormat=INPUT_FORMAT,\ outputFileFormat=OUTPUT_FORMAT,\ inputFileSpec=INPUT_FILES,\ schema=SCHEMA,\ outputBucket=OUTPUT_FOLDER
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID des Google Cloud-Projekts, in dem Sie den Dataflow-Job ausführen möchtenJOB_NAME
: ein eindeutiger Jobname Ihrer WahlREGION_NAME
: die Region, in der Sie Ihren Dataflow-Job bereitstellen möchten, z. B.us-central1
VERSION
: Die Version der Vorlage, die Sie verwenden möchtenSie können die folgenden Werte verwenden:
latest
zur Verwendung der neuesten Version der Vorlage, die im nicht datierten übergeordneten Ordner im Bucket verfügbar ist: gs://dataflow-templates-REGION_NAME/latest/- Den Versionsnamen wie
2023-09-12-00_RC00
, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates-REGION_NAME/.
INPUT_FORMAT
: Das Dateiformat der Eingabedatei muss eines von[csv, avro, parquet]
seinOUTPUT_FORMAT
: Das Dateiformat der Ausgabedateien muss eines von[avro, parquet]
seinINPUT_FILES
: Das Pfadmuster für EingabedateienOUTPUT_FOLDER
: Ihr Cloud Storage-Ordner für AusgabedateienSCHEMA
: Der Pfad zur Avro-Schemadatei
API
Senden Sie eine HTTP-POST-Anfrage, um die Vorlage mithilfe der REST API auszuführen. Weitere Informationen zur API und ihren Autorisierungsbereichen finden Sie unter projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch { "launch_parameter": { "jobName": "JOB_NAME", "parameters": { "inputFileFormat": "INPUT_FORMAT", "outputFileFormat": "OUTPUT_FORMAT", "inputFileSpec": "INPUT_FILES", "schema": "SCHEMA", "outputBucket": "OUTPUT_FOLDER" }, "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/File_Format_Conversion", } }
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID des Google Cloud-Projekts, in dem Sie den Dataflow-Job ausführen möchtenJOB_NAME
: ein eindeutiger Jobname Ihrer WahlLOCATION
: die Region, in der Sie Ihren Dataflow-Job bereitstellen möchten, z. B.us-central1
VERSION
: Die Version der Vorlage, die Sie verwenden möchtenSie können die folgenden Werte verwenden:
latest
zur Verwendung der neuesten Version der Vorlage, die im nicht datierten übergeordneten Ordner im Bucket verfügbar ist: gs://dataflow-templates-REGION_NAME/latest/- Den Versionsnamen wie
2023-09-12-00_RC00
, um eine bestimmte Version der Vorlage zu verwenden. Diese ist verschachtelt im jeweiligen datierten übergeordneten Ordner im Bucket enthalten: gs://dataflow-templates-REGION_NAME/.
INPUT_FORMAT
: Das Dateiformat der Eingabedatei muss eines von[csv, avro, parquet]
seinOUTPUT_FORMAT
: Das Dateiformat der Ausgabedateien muss eines von[avro, parquet]
seinINPUT_FILES
: Das Pfadmuster für EingabedateienOUTPUT_FOLDER
: Ihr Cloud Storage-Ordner für AusgabedateienSCHEMA
: Der Pfad zur Avro-Schemadatei
Nächste Schritte
- Dataflow-Vorlagen
- Sehen Sie sich die Liste der von Google bereitgestellten Vorlagen an.