Plantilla de Cloud Storage a BigQuery

Usa la plantilla de Dataproc Serverless Cloud Storage a BigQuery para extraer datos de Cloud Storage a BigQuery.

Usa la plantilla

Ejecuta la plantilla con gcloud CLI o la API de Dataproc.

gcloud

Antes de usar cualquiera de los datos de comando a continuación, haz los siguientes reemplazos:

  • PROJECT_ID: Obligatorio. El ID del proyecto de Google Cloud que aparece en la configuración de IAM.
  • REGION: Obligatorio. Región de Compute Engine.
  • TEMPLATE_VERSION: Obligatorio. Especifica latest para obtener la versión más reciente de la plantilla o la fecha de una versión específica, por ejemplo, 2023-03-17_v0.1.0-beta (visita gs://dataproc-templates-binaries o ejecuta gsutil ls gs://dataproc-templates-binaries para ver las versiones de plantilla disponibles).
  • CLOUD_STORAGE_PATH: Obligatorio. Ruta de acceso de origen de Cloud Storage.

    Ejemplo: gs://dataproc-templates/hive_to_cloud_storage_output"

  • FORMAT: Obligatorio. Formato de datos de entrada Opciones: avro, parquet, csv o json. Nota: Si es avro, debes agregar “file:///usr/lib/spark/external/spark-avro.jar” a la marca jars de gcloud CLI o al campo de la API.

    Ejemplo (el prefijo file:// hace referencia a un archivo jar de Dataproc Serverless):

    --jars=file:///usr/lib/spark/external/spark-avro.jar, [, ... otros frascos]
  • DATASET: Obligatorio. Conjunto de datos de BigQuery de destino.
  • TABLE: Obligatorio. Tabla de BigQuery de destino.
  • TEMP_BUCKET: Obligatorio. Bucket temporal de Cloud Storage usado para almacenar datos en etapa de pruebas antes de cargarlos en BigQuery.
  • SUBNET: Opcional Si no se especifica una subred, se selecciona la subred en la REGION especificada en la red default.

    Ejemplo: projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME

  • TEMPVIEW y SQL_QUERY: opcional. Puedes usar estos dos parámetros opcionales para aplicar una transformación Spark SQL mientras cargas datos en BigQuery. TEMPVIEW es el nombre de la vista temporal y SQL_QUERY es la instrucción de la consulta. TEMPVIEW y el nombre de la tabla en SQL_QUERY deben coincidir.
  • SERVICE_ACCOUNT: Opcional Si no se proporciona, se usa la cuenta de servicio predeterminada de Compute Engine.
  • PROPERTY y PROPERTY_VALUE: Opcionales. Lista separada por comas de pares de propiedad de Spark=value.
  • LABEL y LABEL_VALUE: Opcionales. Lista separada por comas de pares label=value.
  • LOG_LEVEL: Opcional Nivel de registro. Puede ser ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE o WARN. Predeterminado: INFO.
  • KMS_KEY: Opcional La clave de Cloud Key Management Service que se usará en la encriptación. Si no se especifica una clave, los datos se encriptan en reposo con una clave de propiedad de Google y una administrada por Google.

    Ejemplo: projects/PROJECT_ID/regions/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME

Ejecuta el siguiente comando:

Linux, macOS o Cloud Shell

gcloud dataproc batches submit spark \
    --class=com.google.cloud.dataproc.templates.main.DataProcTemplate \
    --version="1.1" \
    --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.1" `
    --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.1" ^
    --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

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: Obligatorio. El ID del proyecto de Google Cloud que aparece en la configuración de IAM.
  • REGION: Obligatorio. Región de Compute Engine.
  • TEMPLATE_VERSION: Obligatorio. Especifica latest para obtener la versión más reciente de la plantilla o la fecha de una versión específica, por ejemplo, 2023-03-17_v0.1.0-beta (visita gs://dataproc-templates-binaries o ejecuta gsutil ls gs://dataproc-templates-binaries para ver las versiones de plantilla disponibles).
  • CLOUD_STORAGE_PATH: Obligatorio. Ruta de acceso de origen de Cloud Storage.

    Ejemplo: gs://dataproc-templates/hive_to_cloud_storage_output"

  • FORMAT: Obligatorio. Formato de datos de entrada Opciones: avro, parquet, csv o json. Nota: Si es avro, debes agregar “file:///usr/lib/spark/external/spark-avro.jar” a la marca jars de gcloud CLI o al campo de la API.

    Ejemplo (el prefijo file:// hace referencia a un archivo jar de Dataproc Serverless):

    --jars=file:///usr/lib/spark/external/spark-avro.jar, [, ... otros frascos]
  • DATASET: Obligatorio. Conjunto de datos de BigQuery de destino.
  • TABLE: Obligatorio. Tabla de BigQuery de destino.
  • TEMP_BUCKET: Obligatorio. Bucket temporal de Cloud Storage usado para almacenar datos en etapa de pruebas antes de cargarlos en BigQuery.
  • SUBNET: Opcional Si no se especifica una subred, se selecciona la subred en la REGION especificada en la red default.

    Ejemplo: projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME

  • TEMPVIEW y SQL_QUERY: opcional. Puedes usar estos dos parámetros opcionales para aplicar una transformación Spark SQL mientras cargas datos en BigQuery. TEMPVIEW es el nombre de la vista temporal y SQL_QUERY es la instrucción de la consulta. TEMPVIEW y el nombre de la tabla en SQL_QUERY deben coincidir.
  • SERVICE_ACCOUNT: Opcional Si no se proporciona, se usa la cuenta de servicio predeterminada de Compute Engine.
  • PROPERTY y PROPERTY_VALUE: Opcionales. Lista separada por comas de pares de propiedad de Spark=value.
  • LABEL y LABEL_VALUE: Opcionales. Lista separada por comas de pares label=value.
  • LOG_LEVEL: Opcional Nivel de registro. Puede ser ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE o WARN. Predeterminado: INFO.
  • KMS_KEY: Opcional La clave de Cloud Key Management Service que se usará en la encriptación. Si no se especifica una clave, los datos se encriptan en reposo con una clave de propiedad de Google y una administrada por Google.

    Ejemplo: projects/PROJECT_ID/regions/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME

Método HTTP y URL:

POST https://dataproc.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/batches

Cuerpo JSON de la solicitud:


{
  "environmentConfig":{
    "executionConfig":{
      "subnetworkUri":"SUBNET",
      "kmsKey": "KMS_KEY",
      "serviceAccount": "SERVICE_ACCOUNT"
    }
  },
  "labels": {
    "LABEL": "LABEL_VALUE"
  },
  "runtimeConfig": {
    "version": "1.1",
    "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/external/spark-avro.jar", "gs://dataproc-templates-binaries/TEMPLATE_VERSION/java/dataproc-templates.jar"
    ]
  }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:


{
  "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"
  }
}