Procesa datos con plantillas

Dataplex proporciona plantillas con tecnología de Dataflow para realizar tareas comunes de procesamiento de datos, como la transferencia, el procesamiento y la administración del ciclo de vida de los datos. En esta guía, se describe cómo configurar y ejecutar plantillas de procesamiento de datos.

Antes de comenzar

Las plantillas de Dataplex funcionan con Dataflow. Antes de usar plantillas, habilita las API de Dataflow.

Habilita las API de Dataflow

Notas

Plantilla: Convertir datos sin procesar en datos seleccionados

La plantilla de conversión de formato de archivo de Dataplex convierte los datos en un recurso de Cloud Storage de Dataplex, o una lista de entidades de Dataplex almacenadas en formatos CSV o JSON, en datos de formato Parquet o Avro en otro recurso de Dataplex. El diseño de partición se conserva en la conversión. También admite la compresión de los archivos de salida.

Parámetros de la plantilla

Parámetro Descripción
inputAssetOrEntitiesList El recurso o las entidades de Dataplex que contienen los archivos de entrada. Este parámetro debe tener el siguiente formato: projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name> o projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/entities/<entity1-name>,projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/entities/<entity 2 name>...
outputFileFormat El formato de archivo de salida en Cloud Storage. Este parámetro debe seguir el formato PARQUET o AVRO.
outputAsset El nombre del recurso de Dataplex que contiene el bucket de Cloud Storage en el que se almacenarán los archivos de salida. Este parámetro debe tener el siguiente formato: projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name>. Puedes encontrar el outputAsset en la consola de Google Cloud, en la pestaña Details del recurso de Dataplex.
outputFileCompression Opcional: La compresión del archivo de salida. El valor predeterminado de este parámetro es SNAPPY. Otros valores para el parámetro pueden ser UNCOMPRESSED, SNAPPY, GZIP o BZIP2. BZIP2 no es compatible con archivos PARQUET.
writeDisposition Opcional: Especifica la acción que se produce si ya existe un archivo de destino. El valor predeterminado de este parámetro es SKIP, que indica que se deben procesar solo aquellos archivos que no existen en el directorio de destino. Otros valores para el parámetro pueden ser OVERWRITE (reemplazar cualquier archivo existente) o FAIL (no procesar nada y producir un error si ya existe un archivo de destino como mínimo).
updateDataplexMetadata

Opcional: Indica si se deben actualizar los metadatos de Dataplex para las entidades recién creadas. El valor predeterminado de este parámetro es false.

Si se habilita, la canalización copiará automáticamente el esquema de la fuente a las entidades de Dataplex de destino, y no se ejecutará Dataplex Discovery de forma automática. Usa esta marca si Dataplex administra el esquema de los datos de origen (sin procesar).

Ejecuta la plantilla

Consola

  1. En la consola de Google Cloud, ve a la página Dataplex:

    Ir a Dataplex

  2. Navega a la vista Process.

  3. Haz clic en Crear tarea.

  4. En Convertir a formatos seleccionados, haz clic en Crear tarea.

  5. Elige un lake de Dataplex.

  6. Proporciona un nombre de tarea.

  7. Elige una región para ejecutar la tarea.

  8. Complete los parámetros obligatorios.

  9. Haz clic en Continuar.

gcloud

Reemplaza lo siguiente:

JOB_NAME: a job name of your choice
PROJECT_ID: your template project ID
REGION_NAME: region in which to run the job
INPUT_ASSET_OR_ENTITIES_LIST: path to your JDBC drivers
OUTPUT_FILE_FORMAT: your output file format in Cloud Storage
OUTPUT_ASSET: your Dataplex output asset ID

En tu shell o terminal, ejecuta la plantilla:

gcloud beta dataflow flex-template run JOB_NAME \
--project=PROJECT_ID \
--region=REGION_NAME \
--template-file-gcs-location=gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_File_Format_Conversion_Preview \
--parameters \
inputAssetOrEntitiesList=INPUT_ASSET_OR_ENTITIES_LIST,\
outputFileFormat=OUTPUT_FILE_FORMAT,\
outputAsset=OUTPUT_ASSET

API de REST

Reemplaza lo siguiente:

PROJECT_ID: your template project ID
REGION_NAME: region in which to run the job
JOB_NAME: a job name of your choice
INPUT_ASSET_OR_ENTITIES_LIST: path to your JDBC drivers
OUTPUT_FILE_FORMAT: your output file format in Cloud Storage
OUTPUT_ASSET: your Dataplex output asset ID

Envía una solicitud HTTP POST:

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/REGION_NAME/flexTemplates:launch
{
  "launch_parameter": {
    "jobName": "JOB_NAME",
    "parameters": {
        "inputAssetOrEntitiesList": "INPUT_ASSET_OR_ENTITIES_LIST",
        "outputFileFormat": "OUTPUT_FILE_FORMAT",
        "outputAsset": "OUTPUT_ASSET",
    },
    "containerSpecGcsPath": "gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_File_Format_Conversion_Preview",
 }
}

Plantilla: Niveles de datos de un recurso de BigQuery a un recurso de Cloud Storage

La plantilla de Dataplex de BigQuery a Cloud Storage copia datos de un recurso de BigQuery de Dataplex a un recurso de Cloud Storage de Dataplex en un diseño y formatos compatibles de Dataplex. Puedes especificar un conjunto de datos de BigQuery o una lista de tablas de BigQuery que se copiarán. Para obtener mayor flexibilidad, la plantilla permite copiar datos anteriores a una fecha de modificación especificada y, de manera opcional, borrar datos de BigQuery después de realizar una copia exitosa.

Cuando copias tablas particionadas de BigQuery a Cloud Storage, la plantilla crea particiones de estilo Hive en el bucket de Cloud Storage. Cuando escribes en Cloud Storage, la plantilla crea una clave de partición nueva agregando el sufijo _pid a la columna de partición existente. Esto es necesario para acceder a los datos en BigQuery como una tabla externa. En la actualidad, BigQuery no puede tener la clave de partición de estilo Hive que sea la misma que una columna existente. Como resultado, la tabla copiada, cuando se ve desde BigQuery como una tabla externa, tiene una columna adicional para la clave de partición. El resto de los datos se conservan tal como están.

Cuando copias tablas particionadas de BigQuery a Cloud Storage, ten en cuenta lo siguiente:

  • La plantilla crea particiones de estilo Hive en el bucket de Cloud Storage. En la actualidad, BigQuery no puede tener la clave de partición de estilo Hive como una columna existente. Puedes usar la opción enforceSamePartitionKey para crear una clave de partición nueva o conservar la misma clave de partición, pero cambiar el nombre de la columna existente.
  • Dataplex Discovery registra el tipo de partición como string cuando se crea una tabla de BigQuery (y una tabla en Dataproc Metastore). Esto puede afectar tus filtros de partición existentes.

Existe un límite para la cantidad de tablas y particiones que se pueden transformar en una sola ejecución de plantilla, que es alrededor de 300. La cantidad exacta depende de la longitud de los nombres de las tablas y otros factores.

Parámetros de la plantilla

Parámetro Descripción
sourceBigQueryDataset El conjunto de datos de BigQuery desde el que se organizarán los datos. Este parámetro debe contener un nombre de recurso de Dataplex en el formato projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name> o un ID de conjunto de datos de BigQuery en el formato projects/<name>/datasets/<dataset-id>.
destinationStorageBucketAssetName El nombre del recurso de Dataplex para el bucket de Cloud Storage en el que se organizarán los datos. Este parámetro debe seguir el formato projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name>.
tables Una lista separada por comas de las tablas de BigQuery por nivel. Si no se proporciona una lista, se organizarán todas las tablas. Las tablas se deben especificar solo por su nombre (sin prefijo del proyecto o conjunto de datos) y distinguen mayúsculas de minúsculas.
exportDataModifiedBeforeDateTime Opcional: Usa este parámetro para mover los datos anteriores a esta fecha (y una hora opcional). En las tablas particionadas de BigQuery, mueve las particiones que se modificaron por última vez antes de esta fecha/hora. En el caso de las tablas no particionadas, realiza un traslado si la tabla se modificó por última vez antes de esta fecha/hora. Si no se especifica, mueve todas las tablas y particiones. La fecha y la hora se analizan de forma predeterminada en la zona horaria predeterminada, pero se admiten los sufijos opcionales Z y +HH:mm. Este parámetro debe seguir el formato YYYY-MM-DD, YYYY-MM-DDTHH:mm:ss o YYYY-MM-DDTHH:mm:ss+03:00. También se admite la fecha y hora relativas, que deben seguir el formato -PnDTnHnMn.nS (debe comenzar con -P, que indica la hora en el pasado).
fileFormat El formato de archivo de salida en Cloud Storage (opcional). El valor predeterminado para este parámetro es PARQUET. Otro valor para el parámetro puede ser AVRO.
fileCompression Opcional: La compresión del archivo de salida. El valor predeterminado de este parámetro es SNAPPY. Otros valores para el parámetro pueden ser UNCOMPRESSED, SNAPPY, GZIP o BZIP2. BZIP2 no es compatible con archivos PARQUET.
deleteSourceData Opcional: Si quieres borrar datos de origen de BigQuery después de una exportación exitosa. Los valores pueden ser true o false. El valor predeterminado de este parámetro es false.
partitionIdRegExp Opcional: Procesa particiones con un ID de partición que coincida solo con esta expresión regular. Si no se proporciona ningún valor, este parámetro tiene el valor predeterminado para procesar todo.
writeDisposition Opcional: Especifica la acción que se produce si ya existe un archivo de destino, lo que significa que una o más tablas y particiones ya tienen un nivel previo. El valor predeterminado de este parámetro es SKIP, que indica que se deben procesar solo las tablas o particiones que no estaban ya establecidas. Otros valores para el parámetro pueden ser OVERWRITE (reemplazar cualquier archivo existente) o FAIL (no procesar nada y producir un error si ya existe un archivo de destino como mínimo).
enforceSamePartitionKey

Opcional: Indica si se debe aplicar la misma clave de partición. Debido a una limitación de BigQuery, no es posible que la clave de partición (en la ruta de acceso del archivo) en una tabla externa particionada tenga el mismo nombre que una de las columnas en el archivo. Si este parámetro es verdadero (que es el valor predeterminado), la clave de partición del archivo de destino se configura con el nombre de la columna de partición original y se cambia el nombre de la columna en el archivo. Si es falso, se cambia el nombre de la clave de partición.

Por ejemplo, si la tabla original está particionada en una columna llamada TS y enforceSamePartitionKey=true, la ruta del archivo de destino es gs://<bucket>/TS=<partition ID>/<file> y el nombre de la columna cambia a TS_pkey. Esto permite que las consultas existentes se ejecuten en las mismas particiones de la tabla anterior o de la nueva.

Si es enforceSamePartitionKey=false, la ruta del archivo de destino es gs://<bucket>/TS_pid=<partition ID>/<file>, pero el nombre de la columna se conserva como TS en el archivo.

updateDataplexMetadata

Opcional: Indica si se deben actualizar los metadatos de Dataplex para las entidades recién creadas. El valor predeterminado de este parámetro es false.

Si se habilita, la canalización copiará automáticamente el esquema de la fuente a las entidades de Dataplex de destino, y no se ejecutará Dataplex Discovery de forma automática. Usa esta marca si administras el esquema de las tablas de origen de BigQuery.

Ejecuta la plantilla

Consola

  1. En la consola de Google Cloud, ve a la página Dataplex:

    Ir a Dataplex

  2. Navega a la vista Process.

  3. Haz clic en Crear tarea.

  4. En Tier from BQ to GCS Assets, haz clic en Crear tarea.

  5. Elige un lake de Dataplex.

  6. Proporciona un nombre de tarea.

  7. Elige una región para ejecutar la tarea.

  8. Complete los parámetros obligatorios.

  9. Haz clic en Continuar.

gcloud

Reemplaza lo siguiente:

JOB_NAME: a job name of your choice
PROJECT_ID: your template project ID
REGION_NAME: region in which to run the job
SOURCE_ASSET_NAME_OR_DATASET_ID: your Dataplex asset
name for the source BigQuery dataset, or the dataset ID
DESTINATION_ASSET_NAME: your Dataplex asset name for
the destination Cloud Storage bucket

En tu shell o terminal, ejecuta la plantilla:

gcloud beta dataflow flex-template run JOB_NAME \
--project=PROJECT_ID \
--region=REGION_NAME \
--template-file-gcs-location=gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_BigQuery_to_GCS_Preview \
--parameters \
sourceBigQueryDataset=SOURCE_ASSET_NAME_OR_DATASET_ID,\
destinationStorageBucketAssetName=DESTINATION_ASSET_NAME

API de REST

Reemplaza lo siguiente:

PROJECT_ID: your template project ID
REGION_NAME: region in which to run the job
JOB_NAME: a job name of your choice
SOURCE_ASSET_NAME_OR_DATASET_ID: your Dataplex asset
name for the source BigQuery dataset, or the dataset ID
DESTINATION_ASSET_NAME: your Dataplex asset name for
the destination Cloud Storage bucket
REGION_NAME: region in which to run the job

Envía una solicitud HTTP POST:

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/REGION_NAME/flexTemplates:launch
{
 "launch_parameter": {
    "jobName": "JOB_NAME",
    "parameters": {
        "sourceBigQueryDataset": "SOURCE_ASSET_NAME_OR_DATASET_ID",
        "destinationStorageBucketAssetName": "DESTINATION_ASSET_NAME",
    },
    "containerSpecGcsPath": "gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_BigQuery_to_GCS_Preview",
 }
}

Programe otras plantillas de Dataflow personalizadas o proporcionadas por Google Cloud

Dataplex te permite programar y supervisar cualquiera de las plantillas de Dataflow que proporciona Google Cloud o tu plantilla de Dataflow personalizada en la consola.

Programa

Consola

  1. En la consola de Google Cloud, ve a la página Dataplex:

    Ir a Dataplex

  2. Navega a la vista Process.

  3. Haz clic en Crear tarea.

  4. En Cree una canalización de Dataflow, haga clic en Crear canalización de Dataflow.

  5. Elige un lake de Dataplex.

  6. Proporciona un nombre de tarea.

  7. Elige una región para ejecutar la tarea.

  8. Elija una plantilla de Dataflow.

  9. Complete los parámetros obligatorios.

  10. Haz clic en Continuar.

Supervisar

Consola

  1. En la consola de Google Cloud, ve a la página Dataplex:

    Ir a Dataplex

  2. Navega a la vista Process.

  3. Haga clic en Canalizaciones de Dataflow.

  4. Filtrar por nombre de lake o de canalización.