Modèle Cloud Storage vers Cloud Storage
Utilisez le modèle Dataproc sans serveur Cloud Storage vers Cloud Storage pour extraire des données de Cloud Storage vers Cloud Storage.
Utiliser le modèle
Exécutez le modèle à l'aide de la CLI gcloud ou de l'API Dataproc.
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
PROJECT_ID : valeur obligatoire. Votre ID de projet Google Cloud indiqué dans les paramètres IAM.REGION : valeur obligatoire. Région Compute EngineSUBNET : facultatif. Si aucun sous-réseau n'est spécifié, le sous-réseau de la RÉGION spécifiée dans le réseaudefault
est sélectionné.Exemple
projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
TEMPLATE_VERSION : valeur obligatoire. Spécifiezlatest
pour la dernière version du modèle ou la date d'une version spécifique, par exemple2023-03-17_v0.1.0-beta
(accédez à gs://dataproc-templates-binaries ou exécutezgcloud storage ls gs://dataproc-templates-binaries
pour afficher les versions de modèle disponibles).CLOUD_STORAGE_INPUT_PATH : valeur obligatoire. Chemin d'accès Cloud Storage à partir duquel les données d'entrée seront lues.Exemple
gs://example-bucket/example-folder/
FORMAT : valeur obligatoire. Format des données d'entrée. Options:avro
,parquet
ouorc
. Remarque:Si la valeur estavro
, vous devez ajouter "file:///usr/lib/spark/connector/spark-avro.jar
" au champ de l'indicateur ou de l'API de la CLI gcloudjars
.Exemple (le préfixe
file://
fait référence à un fichier JAR Dataproc sans serveur):--jars=file:///usr/lib/spark/connector/spark-avro.jar,
[ ... other jars]-
CLOUD_STORAGE_OUTPUT_PATH : obligatoire. Chemin d'accès Cloud Storage où la sortie sera stockée.Exemple
gs://example-bucket/example-folder/
-
OUTPUT_FILE_FORMAT : obligatoire. Format des données de sortie. Options:avro
,csv
,parquet
,json
ouorc
. Remarque:Si la valeur estavro
, vous devez ajouter "file:///usr/lib/spark/connector/spark-avro.jar
" au champ de l'indicateur ou de l'API de la CLI gcloudjars
.Exemple (le préfixe
file://
fait référence à un fichier JAR Dataproc sans serveur):--jars=file:///usr/lib/spark/connector/spark-avro.jar,
[ ... other jars] -
MODE : obligatoire. Mode d'écriture pour la sortie Cloud Storage. Options:Append
,Overwrite
,Ignore
ouErrorIfExists
. -
TEMP_TABLE etTEMP_QUERY : facultatifs. Vous pouvez utiliser ces deux paramètres facultatifs pour appliquer une transformation Spark SQL lors du chargement de données dans Cloud Storage. TEMP_TABLE est le nom de la vue temporaire, et TEMP_QUERY est l'instruction de requête. TEMP_TABLE et le nom de la table dans TEMP_QUERY doivent correspondre. SERVICE_ACCOUNT : facultatif. Si aucune valeur n'est fournie, le compte de service Compute Engine par défaut est utilisé.PROPERTY etPROPERTY_VALUE : facultatives. Liste de paires propriété Spark=value
séparées par une virgule.LABEL etLABEL_VALUE : facultatives. Liste de paireslabel
=value
séparées par une virgule.LOG_LEVEL : facultatif. Niveau de journalisation. Il peut s'agir deALL
,DEBUG
,ERROR
,FATAL
,INFO
,OFF
,TRACE
ouWARN
. Valeur par défaut:INFO
.-
KMS_KEY : facultatif. Clé Cloud Key Management Service à utiliser pour le chiffrement. Si aucune clé n'est spécifiée, les données sont chiffrées au repos à l'aide d'un Google-owned and Google-managed encryption key.Exemple
projects/PROJECT_ID/regions/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
gcloud dataproc batches submit spark \ --class=com.google.cloud.dataproc.templates.main.DataProcTemplate \ --version="1.2" \ --project="PROJECT_ID " \ --region="REGION " \ --jars="gs://dataproc-templates-binaries/TEMPLATE_VERSION /java/dataproc-templates.jar,file:///usr/lib/spark/connector/spark-avro.jar" \ --subnet="SUBNET " \ --kms-key="KMS_KEY " \ --service-account="SERVICE_ACCOUNT " \ --properties="PROPERTY =PROPERTY_VALUE " \ --labels="LABEL =LABEL_VALUE " \ -- --template=GCSTOGCS \ --templateProperty log.level="LOG_LEVEL " \ --templateProperty project.id="PROJECT_ID " \ --templateProperty gcs.gcs.input.location="CLOUD_STORAGE_INPUT_PATH " \ --templateProperty gcs.gcs.input.format="INPUT_FILE_FORMAT " \ --templateProperty gcs.gcs.output.location="CLOUD_STORAGE_OUTPUT_PATH " \ --templateProperty gcs.gcs.output.format="OUTPUT_FILE_FORMAT " \ --templateProperty gcs.gcs.write.mode="MODE " \ --templateProperty gcs.gcs.temp.table="TEMP_TABLE " \ --templateProperty gcs.gcs.temp.query="TEMP_QUERY "
Windows (PowerShell)
gcloud dataproc batches submit spark ` --class=com.google.cloud.dataproc.templates.main.DataProcTemplate ` --version="1.2" ` --project="PROJECT_ID " ` --region="REGION " ` --jars="gs://dataproc-templates-binaries/TEMPLATE_VERSION /java/dataproc-templates.jar,file:///usr/lib/spark/connector/spark-avro.jar" ` --subnet="SUBNET " ` --kms-key="KMS_KEY " ` --service-account="SERVICE_ACCOUNT " ` --properties="PROPERTY =PROPERTY_VALUE " ` --labels="LABEL =LABEL_VALUE " ` -- --template=GCSTOGCS ` --templateProperty log.level="LOG_LEVEL " ` --templateProperty project.id="PROJECT_ID " ` --templateProperty gcs.gcs.input.location="CLOUD_STORAGE_INPUT_PATH " ` --templateProperty gcs.gcs.input.format="INPUT_FILE_FORMAT " ` --templateProperty gcs.gcs.output.location="CLOUD_STORAGE_OUTPUT_PATH " ` --templateProperty gcs.gcs.output.format="OUTPUT_FILE_FORMAT " ` --templateProperty gcs.gcs.write.mode="MODE " ` --templateProperty gcs.gcs.temp.table="TEMP_TABLE " ` --templateProperty gcs.gcs.temp.query="TEMP_QUERY "
Windows (cmd.exe)
gcloud dataproc batches submit spark ^ --class=com.google.cloud.dataproc.templates.main.DataProcTemplate ^ --version="1.2" ^ --project="PROJECT_ID " ^ --region="REGION " ^ --jars="gs://dataproc-templates-binaries/TEMPLATE_VERSION /java/dataproc-templates.jar,file:///usr/lib/spark/connector/spark-avro.jar" ^ --subnet="SUBNET " ^ --kms-key="KMS_KEY " ^ --service-account="SERVICE_ACCOUNT " ^ --properties="PROPERTY =PROPERTY_VALUE " ^ --labels="LABEL =LABEL_VALUE " ^ -- --template=GCSTOGCS ^ --templateProperty log.level="LOG_LEVEL " ^ --templateProperty project.id="PROJECT_ID " ^ --templateProperty gcs.gcs.input.location="CLOUD_STORAGE_INPUT_PATH " ^ --templateProperty gcs.gcs.input.format="INPUT_FILE_FORMAT " ^ --templateProperty gcs.gcs.output.location="CLOUD_STORAGE_OUTPUT_PATH " ^ --templateProperty gcs.gcs.output.format="OUTPUT_FILE_FORMAT " ^ --templateProperty gcs.gcs.write.mode="MODE " ^ --templateProperty gcs.gcs.temp.table="TEMP_TABLE " ^ --templateProperty gcs.gcs.temp.query="TEMP_QUERY "
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
PROJECT_ID : valeur obligatoire. Votre ID de projet Google Cloud indiqué dans les paramètres IAM.REGION : valeur obligatoire. Région Compute EngineSUBNET : facultatif. Si aucun sous-réseau n'est spécifié, le sous-réseau de la RÉGION spécifiée dans le réseaudefault
est sélectionné.Exemple
projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
TEMPLATE_VERSION : valeur obligatoire. Spécifiezlatest
pour la dernière version du modèle ou la date d'une version spécifique, par exemple2023-03-17_v0.1.0-beta
(accédez à gs://dataproc-templates-binaries ou exécutezgcloud storage ls gs://dataproc-templates-binaries
pour afficher les versions de modèle disponibles).CLOUD_STORAGE_INPUT_PATH : valeur obligatoire. Chemin d'accès Cloud Storage à partir duquel les données d'entrée seront lues.Exemple
gs://example-bucket/example-folder/
FORMAT : valeur obligatoire. Format des données d'entrée. Options:avro
,parquet
ouorc
. Remarque:Si la valeur estavro
, vous devez ajouter "file:///usr/lib/spark/connector/spark-avro.jar
" au champ de l'indicateur ou de l'API de la CLI gcloudjars
.Exemple (le préfixe
file://
fait référence à un fichier JAR Dataproc sans serveur):--jars=file:///usr/lib/spark/connector/spark-avro.jar,
[ ... other jars]-
CLOUD_STORAGE_OUTPUT_PATH : obligatoire. Chemin d'accès Cloud Storage où la sortie sera stockée.Exemple
gs://example-bucket/example-folder/
-
OUTPUT_FILE_FORMAT : obligatoire. Format des données de sortie. Options:avro
,csv
,parquet
,json
ouorc
. Remarque:Si la valeur estavro
, vous devez ajouter "file:///usr/lib/spark/connector/spark-avro.jar
" au champ de l'indicateur ou de l'API de la CLI gcloudjars
.Exemple (le préfixe
file://
fait référence à un fichier JAR Dataproc sans serveur):--jars=file:///usr/lib/spark/connector/spark-avro.jar,
[ ... other jars] -
MODE : obligatoire. Mode d'écriture pour la sortie Cloud Storage. Options:Append
,Overwrite
,Ignore
ouErrorIfExists
. -
TEMP_TABLE etTEMP_QUERY : facultatifs. Vous pouvez utiliser ces deux paramètres facultatifs pour appliquer une transformation Spark SQL lors du chargement de données dans Cloud Storage. TEMP_TABLE est le nom de la vue temporaire, et TEMP_QUERY est l'instruction de requête. TEMP_TABLE et le nom de la table dans TEMP_QUERY doivent correspondre. SERVICE_ACCOUNT : facultatif. Si aucune valeur n'est fournie, le compte de service Compute Engine par défaut est utilisé.PROPERTY etPROPERTY_VALUE : facultatives. Liste de paires propriété Spark=value
séparées par une virgule.LABEL etLABEL_VALUE : facultatives. Liste de paireslabel
=value
séparées par une virgule.LOG_LEVEL : facultatif. Niveau de journalisation. Il peut s'agir deALL
,DEBUG
,ERROR
,FATAL
,INFO
,OFF
,TRACE
ouWARN
. Valeur par défaut:INFO
.-
KMS_KEY : facultatif. Clé Cloud Key Management Service à utiliser pour le chiffrement. Si aucune clé n'est spécifiée, les données sont chiffrées au repos à l'aide d'un Google-owned and Google-managed encryption key.Exemple
projects/PROJECT_ID/regions/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
Méthode HTTP et URL :
POST https://dataproc.googleapis.com/v1/projects/PROJECT_ID /locations/REGION /batches
Corps JSON de la requête :
{ "environmentConfig":{ "executionConfig":{ "subnetworkUri":"SUBNET ", "kmsKey": "KMS_KEY ", "serviceAccount": "SERVICE_ACCOUNT " } }, "labels": { "LABEL ": "LABEL_VALUE " }, "runtimeConfig": { "version": "1.2", "properties": { "PROPERTY ": "PROPERTY_VALUE " } }, "sparkBatch": { "mainClass": "com.google.cloud.dataproc.templates.main.DataProcTemplate", "args": [ "--template","GCSTOGCS", "--templateProperty","project.id=PROJECT_ID ", "--templateProperty","log.level=LOG_LEVEL ", "--templateProperty","gcs.gcs.input.location=CLOUD_STORAGE_INPUT_PATH ", "--templateProperty","gcs.gcs.input.format=INPUT_FILE_FORMAT ", "--templateProperty","gcs.gcs.output.location=CLOUD_STORAGE_OUTPUT_PATH ", "--templateProperty","gcs.gcs.output.format=OUTPUT_FILE_FORMAT ", "--templateProperty","gcs.gcs.write.mode=MODE ", "--templateProperty","gcs.gcs.temp.table=TEMP_TABLE ", "--templateProperty","gcs.gcs.temp.query=TEMP_QUERY " ], "jarFileUris":[ "gs://dataproc-templates-binaries/TEMPLATE_VERSION /java/dataproc-templates.jar", "file:///usr/lib/spark/connector/spark-avro.jar" ] } }
Pour envoyer votre requête, développez l'une des options suivantes :
curl (Linux, macOS ou Cloud Shell)
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://dataproc.googleapis.com/v1/projects/PROJECT_ID /locations/REGION /batches"
PowerShell (Windows)
Enregistrez le corps de la requête dans un fichier nommé request.json
, puis exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://dataproc.googleapis.com/v1/projects/PROJECT_ID /locations/REGION /batches" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_ID /regions/REGION /operations/OPERATION_ID ", "metadata": { "@type": "type.googleapis.com/google.cloud.dataproc.v1.BatchOperationMetadata", "batch": "projects/PROJECT_ID /locations/REGION /batches/BATCH_ID ", "batchUuid": "de8af8d4-3599-4a7c-915c-798201ed1583", "createTime": "2023-02-24T03:31:03.440329Z", "operationType": "BATCH", "description": "Batch" } }