Procesa datos con plantillas

Knowledge Catalog (antes Dataplex Universal Catalog) 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 Knowledge Catalog funcionan con Dataflow. Antes de usar las plantillas, habilita las APIs de Dataflow.

Habilita las APIs de Dataflow

Ten en cuenta lo siguiente:

  • Todas las plantillas admiten opciones comunes de canalización de Dataflow.

  • Knowledge Catalog usa canalizaciones de datos para programar las tareas definidas por las plantillas.

  • Solo puedes ver las tareas que programas a través de Knowledge Catalog en la Google Cloud consola en la página Knowledge Catalog.

Plantilla: Convierte datos sin procesar en datos seleccionados

La plantilla de conversión de formato de archivo de Knowledge Catalog convierte datos en un recurso de Knowledge Catalog Cloud Storage o una lista de entidades de Knowledge Catalog almacenadas en formatos CSV o JSON a datos en formato Parquet o Avro en otro recurso de Knowledge Catalog. El diseño de la 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 de Knowledge Catalog o las entidades de Knowledge Catalog que contienen los archivos de entrada. Este parámetro debe seguir el 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 del archivo de salida en Cloud Storage. Este parámetro debe seguir el formato: PARQUET o AVRO.
outputAsset El nombre del recurso de Knowledge Catalog que contiene el bucket de Cloud Storage en el que se almacenarán los archivos de salida. Este parámetro debe seguir el formato: projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name>. Puedes encontrar el outputAsset en la Google Cloud consola, en la pestaña Details del recurso de Knowledge Catalog.
outputFileCompression Opcional: La compresión del archivo de salida. El valor predeterminado para este parámetro es SNAPPY. Otros valores para el parámetro pueden ser UNCOMPRESSED, SNAPPY, GZIP o BZIP2. BZIP2 no es compatible con los archivos PARQUET.
writeDisposition Opcional: Especifica la acción que ocurre si ya existe un archivo de destino. El valor predeterminado para este parámetro es SKIP, que indica que se procesen solo los 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 al menos un archivo de destino ).
updateDataplexMetadata

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

Si está habilitado, la canalización copiará automáticamente el esquema de la fuente a las entidades de Knowledge Catalog de destino, y Knowledge Catalog Discovery automatizado no se ejecutará para ellas. Usa esta marca si el esquema de los datos fuente (sin procesar) administra Knowledge Catalog.

Ejecuta la plantilla

Console

  1. En la Google Cloud consola, ve a la página Process de Knowledge Catalog.

    Ir a Process

  2. Haz clic en Crear tarea.

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

  4. Elige un lake de Knowledge Catalog.

  5. Proporciona un nombre de tarea.

  6. Elige una región para la ejecución de la tarea.

  7. Completa los parámetros obligatorios.

  8. Haz clic en Continuar.

gcloud

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

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 Knowledge Catalog output asset ID

REST

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

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 Knowledge Catalog output asset ID

Plantilla: Ordena los datos de un recurso de BigQuery a un recurso de Cloud Storage

La plantilla de Knowledge Catalog BigQuery a Cloud Storage copia datos de un recurso de Knowledge Catalog BigQuery a un recurso de Knowledge Catalog Cloud Storage en un diseño y formato compatibles con Knowledge Catalog. Puedes especificar un conjunto de datos de BigQuery o una lista de tablas de BigQuery para copiar. Para mayor flexibilidad, la plantilla permite copiar datos anteriores a una fecha de modificación especificada y permite borrar datos de BigQuery de forma opcional después de una copia exitosa.

Cuando copias tablas particionadas de BigQuery a Cloud Storage, sucede lo siguiente:

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

Hay un límite en la cantidad de tablas y particiones que se pueden transformar en una sola ejecución de plantilla, que es de aproximadamente 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 ordenarán los datos. Este parámetro debe contener un nombre de recurso de Knowledge Catalog 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 Knowledge Catalog para el bucket de Cloud Storage al que se ordenarán los datos. Este parámetro debe seguir el formato projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name>.
tables Opcional: Una lista separada por comas de las tablas de BigQuery que se ordenarán. Si no se proporciona una lista, se ordenarán todas las tablas. Las tablas deben especificarse solo por su nombre (sin prefijo de proyecto o conjunto de datos) y distinguen entre mayúsculas y minúsculas.
exportDataModifiedBeforeDateTime Opcional: Usa este parámetro para mover datos anteriores a esta fecha (y hora opcional). Para las tablas particionadas de BigQuery, mueve las particiones modificadas por última vez antes de esta fecha y hora. Para las tablas no particionadas mueve si la tabla se modificó por última vez antes de esta fecha y hora. Si no se especifica, mueve todas las tablas o particiones. La fecha y hora se analizan en la zona horaria predeterminada de forma predeterminada, pero se admiten los sufijos opcionales Z y +HH:mm. Este parámetro debe seguir el formato YYYY-MM-DD o YYYY-MM-DDTHH:mm:ss o YYYY-MM-DDTHH:mm:ss+03:00. También se admite la fecha y hora relativas, y debe seguir el formato -PnDTnHnMn.nS (debe comenzar con -P, que indica la hora en el pasado).
fileFormat Opcional: El formato del archivo de salida en Cloud Storage. El valor predeterminado valor 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 para este parámetro es SNAPPY. Otros valores para el parámetro pueden ser UNCOMPRESSED, SNAPPY, GZIP o BZIP2. BZIP2 no es compatible con los archivos PARQUET.
deleteSourceData Opcional: Indica si se deben borrar los datos fuente de BigQuery después de una exportación exitosa. Los valores pueden ser true o false. El valor predeterminado para este parámetro es false.
partitionIdRegExp Opcional: Procesa solo las particiones con un ID de partición que coincida con esta expresión regular. Si no se proporciona un valor, este parámetro se establece de forma predeterminada para procesar todo.
writeDisposition Opcional: Especifica la acción que ocurre si ya existe un archivo de destino, lo que significa que ya se ordenaron previamente una o más tablas o particiones. El valor predeterminado para este parámetro es SKIP, que indica que se procesen solo las tablas o particiones que aún no se ordenaron previamente. 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 al menos un archivo de destino ).
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 del archivo. Si este parámetro es verdadero (que es el valor predeterminado), la clave de partición del archivo de destino se establece en 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 de acceso del archivo de destino es gs://<bucket>/TS=<partition ID>/<file> y se cambia el nombre de la columna a TS_pkey en el archivo. Esto permite que las consultas existentes se ejecuten en las mismas particiones de la tabla anterior o la nueva.

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

updateDataplexMetadata

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

Si está habilitado, la canalización copiará automáticamente el esquema de la fuente a las entidades de Dataplex de destino, y Knowledge Catalog Discovery automatizado no se ejecutará para ellas. Usa esta marca si administras el esquema de las tablas de BigQuery fuente.

Ejecuta la plantilla

Console

  1. En la Google Cloud consola, ve a la página Process de Knowledge Catalog.

    Ir a Process

  2. Haz clic en Crear tarea.

  3. En Ordenar en niveles de elementos de BQ a GCS, haz clic en Crear tarea.

  4. Elige un lake de Knowledge Catalog.

  5. Proporciona un nombre de tarea.

  6. Elige una región para la ejecución de la tarea.

  7. Completa los parámetros obligatorios.

  8. Haz clic en Continuar.

gcloud

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

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 Knowledge Catalog asset
name for the source BigQuery dataset, or the dataset ID
DESTINATION_ASSET_NAME: your Knowledge Catalog asset name for
the destination Cloud Storage bucket

REST

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

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 Knowledge Catalog asset
name for the source BigQuery dataset, or the dataset ID
DESTINATION_ASSET_NAME: your Knowledge Catalog asset name for
the destination Cloud Storage bucket
REGION_NAME: region in which to run the job

Programa otras Google Cloudplantillas de Dataflow proporcionadas o personalizadas

Knowledge Catalog te permite programar y supervisar cualquiera de las Google Cloud-plantillas de Dataflow proporcionadas o tu plantilla de Dataflow personalizada en la consola.

Programar

Console

  1. En la Google Cloud consola, ve a la página Process de Knowledge Catalog.

    Ir a Process

  2. Haz clic en Crear tarea.

  3. En Crear una canalización de Dataflow, haz clic en Crear canalización de Dataflow.

  4. Elige un lake de Knowledge Catalog.

  5. Proporciona un nombre de tarea.

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

  7. Elige una plantilla de Dataflow.

  8. Completa los parámetros obligatorios.

  9. Haz clic en Continuar.

Supervisar

Console

  1. En la Google Cloud consola, ve a la página Process de Knowledge Catalog.

    Ir a Process

  2. Haz clic en Canalizaciones de Dataflow.

  3. Filtra por lake o nombre de canalización.