Modèle Cloud Storage vers BigQuery
Utilisez le modèle Managed Service pour Apache Spark Cloud Storage vers BigQuery pour extraire des données de Cloud Storage vers BigQuery.
Utiliser le modèle
Exécutez le modèle à l'aide de gcloud CLI ou de l'API Managed Service pour Apache Spark.
gcloud
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : valeur obligatoire. ID de votre Google Cloud projet indiqué dans les paramètres IAM.
- REGION : valeur obligatoire. Région Compute Engine.
- TEMPLATE_VERSION : valeur obligatoire. Spécifiez
latestpour 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-binariespour afficher la liste des versions de modèle disponibles). - CLOUD_STORAGE_PATH : valeur obligatoire. Chemin d'accès Cloud Storage
source.
Exemple :
gs://dataproc-templates/hive_to_cloud_storage_output" - FORMAT : valeur obligatoire. Format des données d'entrée. Options :
avro,parquet,csv, oujson. Remarque : Si vous utilisezavro, vous devez ajouter "file:///usr/lib/spark/connector/spark-avro.jar" à l'indicateurjarsde gcloud CLI ou au champ d'API.Exemple (le préfixe
file://fait référence à un fichier JAR Managed Service pour Apache Spark) :--jars=file:///usr/lib/spark/connector/spark-avro.jar,[, ... autres fichiers JAR] - DATASET : valeur obligatoire. Ensemble de données BigQuery de destination.
- TABLE : valeur obligatoire. Table BigQuery de destination.
- TEMP_BUCKET : valeur obligatoire. Bucket Cloud Storage temporaire utilisé pour la préproduction des données avant leur chargement dans BigQuery.
- SUBNET : facultatif. Si aucun sous-réseau n'est spécifié, le sous-réseau
de la REGION spécifiée dans le réseau
defaultest sélectionné.Exemple :
projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME - TEMPVIEW et SQL_QUERY : facultatifs. Vous pouvez utiliser ces deux paramètres facultatifs pour appliquer une transformation Spark SQL lors du chargement des données dans BigQuery. TEMPVIEW est le nom de la vue temporaire, et SQL_QUERY est l'instruction de requête. TEMPVIEW et le nom de la table dans SQL_QUERY doivent correspondre.
- SERVICE_ACCOUNT : facultatif. Si aucune valeur n'est fournie, le compte de service Compute Engine par défaut est utilisé.
- PROPERTY et PROPERTY_VALUE:
facultatifs. Liste de paires
Spark property=
valueséparées par une virgule. - LABEL et LABEL_VALUE :
facultatifs. Liste de paires
label=valueséparées par une virgule. - LOG_LEVEL : facultatif. Niveau de journalisation. Peut être l'un des éléments suivants :
ALL,DEBUG,ERROR,FATAL,INFO,OFF,TRACEouWARN. 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 au repos sont chiffrées à l'aide d'une 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" \ --subnet="SUBNET" \ --kms-key="KMS_KEY" \ --service-account="SERVICE_ACCOUNT" \ --properties="PROPERTY=PROPERTY_VALUE" \ --labels="LABEL=LABEL_VALUE" \ -- --template=GCSTOBIGQUERY \ --templateProperty log.level="LOG_LEVEL" \ --templateProperty project.id="PROJECT_ID" \ --templateProperty gcs.bigquery.input.location="CLOUD_STORAGE_PATH" \ --templateProperty gcs.bigquery.input.format="FORMAT" \ --templateProperty gcs.bigquery.output.dataset="DATASET" \ --templateProperty gcs.bigquery.output.table="TABLE" \ --templateProperty gcs.bigquery.temp.bucket.name="TEMP_BUCKET" \ --templateProperty gcs.bigquery.temp.table="TEMPVIEW" \ --templateProperty gcs.bigquery.temp.query="SQL_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" ` --subnet="SUBNET" ` --kms-key="KMS_KEY" ` --service-account="SERVICE_ACCOUNT" ` --properties="PROPERTY=PROPERTY_VALUE" ` --labels="LABEL=LABEL_VALUE" ` -- --template=GCSTOBIGQUERY ` --templateProperty log.level="LOG_LEVEL" ` --templateProperty project.id="PROJECT_ID" ` --templateProperty gcs.bigquery.input.location="CLOUD_STORAGE_PATH" ` --templateProperty gcs.bigquery.input.format="FORMAT" ` --templateProperty gcs.bigquery.output.dataset="DATASET" ` --templateProperty gcs.bigquery.output.table="TABLE" ` --templateProperty gcs.bigquery.temp.bucket.name="TEMP_BUCKET" ` --templateProperty gcs.bigquery.temp.table="TEMPVIEW" ` --templateProperty gcs.bigquery.temp.query="SQL_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" ^ --subnet="SUBNET" ^ --kms-key="KMS_KEY" ^ --service-account="SERVICE_ACCOUNT" ^ --properties="PROPERTY=PROPERTY_VALUE" ^ --labels="LABEL=LABEL_VALUE" ^ -- --template=GCSTOBIGQUERY ^ --templateProperty log.level="LOG_LEVEL" ^ --templateProperty project.id="PROJECT_ID" ^ --templateProperty gcs.bigquery.input.location="CLOUD_STORAGE_PATH" ^ --templateProperty gcs.bigquery.input.format="FORMAT" ^ --templateProperty gcs.bigquery.output.dataset="DATASET" ^ --templateProperty gcs.bigquery.output.table="TABLE" ^ --templateProperty gcs.bigquery.temp.bucket.name="TEMP_BUCKET" ^ --templateProperty gcs.bigquery.temp.table="TEMPVIEW" ^ --templateProperty gcs.bigquery.temp.query="SQL_QUERY"
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : valeur obligatoire. ID de votre Google Cloud projet indiqué dans les paramètres IAM.
- REGION : valeur obligatoire. Région Compute Engine.
- TEMPLATE_VERSION : valeur obligatoire. Spécifiez
latestpour 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-binariespour afficher la liste des versions de modèle disponibles). - CLOUD_STORAGE_PATH : valeur obligatoire. Chemin d'accès Cloud Storage
source.
Exemple :
gs://dataproc-templates/hive_to_cloud_storage_output" - FORMAT : valeur obligatoire. Format des données d'entrée. Options :
avro,parquet,csv, oujson. Remarque : Si vous utilisezavro, vous devez ajouter "file:///usr/lib/spark/connector/spark-avro.jar" à l'indicateurjarsde gcloud CLI ou au champ d'API.Exemple (le préfixe
file://fait référence à un fichier JAR Managed Service pour Apache Spark) :--jars=file:///usr/lib/spark/connector/spark-avro.jar,[, ... autres fichiers JAR] - DATASET : valeur obligatoire. Ensemble de données BigQuery de destination.
- TABLE : valeur obligatoire. Table BigQuery de destination.
- TEMP_BUCKET : valeur obligatoire. Bucket Cloud Storage temporaire utilisé pour la préproduction des données avant leur chargement dans BigQuery.
- SUBNET : facultatif. Si aucun sous-réseau n'est spécifié, le sous-réseau
de la REGION spécifiée dans le réseau
defaultest sélectionné.Exemple :
projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME - TEMPVIEW et SQL_QUERY : facultatifs. Vous pouvez utiliser ces deux paramètres facultatifs pour appliquer une transformation Spark SQL lors du chargement des données dans BigQuery. TEMPVIEW est le nom de la vue temporaire, et SQL_QUERY est l'instruction de requête. TEMPVIEW et le nom de la table dans SQL_QUERY doivent correspondre.
- SERVICE_ACCOUNT : facultatif. Si aucune valeur n'est fournie, le compte de service Compute Engine par défaut est utilisé.
- PROPERTY et PROPERTY_VALUE:
facultatifs. Liste de paires
Spark property=
valueséparées par une virgule. - LABEL et LABEL_VALUE :
facultatifs. Liste de paires
label=valueséparées par une virgule. - LOG_LEVEL : facultatif. Niveau de journalisation. Peut être l'un des éléments suivants :
ALL,DEBUG,ERROR,FATAL,INFO,OFF,TRACEouWARN. 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 au repos sont chiffrées à l'aide d'une 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", "GCSTOBIGQUERY",
"--templateProperty","log.level=LOG_LEVEL",
"--templateProperty","project.id=PROJECT_ID",
"--templateProperty","gcs.bigquery.input.location=CLOUD_STORAGE_PATH",
"--templateProperty","gcs.bigquery.input.format=FORMAT",
"--templateProperty","gcs.bigquery.output.dataset=DATASET",
"--templateProperty","gcs.bigquery.output.table=TABLE",
"--templateProperty","gcs.bigquery.temp.bucket.name=TEMP_BUCKET",
"--templateProperty","gcs.bigquery.temp.table=TEMPVIEW",
"--templateProperty","gcs.bigquery.temp.query=SQL_QUERY"
],
"jarFileUris":[
"file:///usr/lib/spark/connector/spark-avro.jar", "gs://dataproc-templates-binaries/TEMPLATE_VERSION/java/dataproc-templates.jar"
]
}
}
Pour envoyer votre requête, développez l'une des options suivantes :
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"
}
}