Este documento te muestra cómo hacer lo siguiente:
- Define una instrucción de SQL para que se ejecute antes de la creación de la tabla.
- Define una instrucción de SQL para que se ejecute después de la creación de la tabla.
- Inhabilita la creación de tablas.
- Agrega etiquetas de ejecución.
Antes de comenzar
En la Google Cloud consola de, ve a la página Dataform.
Selecciona o crea un repositorio.
Selecciona o crea un lugar de trabajo de desarrollo.
Define un archivo SQLX de cualquiera de los siguientes tipos:
Roles obligatorios
Para obtener los permisos que necesitas para completar las tareas de este documento, pídele a tu administrador que te otorgue los siguientes roles de IAM:
- Editor de Dataform (
roles/dataform.editor) en el espacio de trabajo -
Para sincronizar metadatos con Knowledge Catalog:
Editor de Catalog de Dataplex (
roles/dataplex.catalogEditor) en el proyecto o el grupo de entradas@bigquery
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
Define una instrucción de SQL para que se ejecute antes de la creación de la tabla
Puedes configurar Dataform para que ejecute una o más instrucciones de SQL antes de crear una tabla seleccionada en BigQuery. Para ejecutar una instrucción de SQL antes de que Dataform cree una tabla seleccionada, agrega tu instrucción al bloque pre_operations en el archivo SQLX de definición de tabla.
Para crear una instrucción de SQL personalizada que se ejecute antes de que Dataform cree una tabla específica, sigue estos pasos:
- Ve a tu lugar de trabajo de desarrollo.
- En el panel Archivos, expande
definitions/. - Abre un archivo SQLX de definición de tabla.
- Fuera del bloque
config, ingresapre_operations { ... }. - Dentro de
pre_operations { ... }, agrega tu instrucción de SQL. - Opcional: Para agregar varias instrucciones, sepáralas con
---. - Opcional: Haz clic en Formato.
En la siguiente muestra de código, se muestra una instrucción pre_operations que crea una función temporal que se puede usar en la instrucción select:
pre_operations {
CREATE TEMP FUNCTION AddFourAndDivide(x INT64, y INT64)
RETURNS FLOAT64
AS ((x + 4) / y);
}
Define una instrucción de SQL para que se ejecute después de la creación de la tabla
Puedes configurar Dataform para que ejecute una o más instrucciones de SQL después de crear una tabla seleccionada en BigQuery. Para ejecutar una instrucción de SQL después de que Dataform cree una tabla seleccionada, agrega tu sentencia al bloque post_operations en el archivo SQLX de definición de tabla. Puedes agregar varias instrucciones de SQL al bloque post_operations.
Para crear una instrucción de SQL personalizada que se ejecute después de que Dataform cree una tabla específica, sigue estos pasos:
- Ve a tu lugar de trabajo de desarrollo.
- En el panel Archivos, expande
definitions/. - Abre un archivo SQLX de definición de tabla.
- Fuera del bloque
config, ingresapost_operations { ... }. - Dentro de
post_operations { ... }, agrega tu instrucción de SQL. - Opcional: Haz clic en Formato.
En la siguiente muestra de código, se muestran instrucciones post_operations que otorgan acceso a grupos a la tabla creada:
post_operations {
GRANT `roles/bigquery.dataViewer`
ON
TABLE ${self()}
TO "group:allusers@example.com", "user:otheruser@example.com"
}
Enriquecimiento automatizado de metadatos
Dataform admite el enriquecimiento automatizado de metadatos para tablas y vistas de BigQuery creadas con flujos de trabajo de SQLX. Cuando se completa correctamente una acción de tabla, Dataform intenta escribir los metadatos definidos en la entrada correspondiente de Knowledge Catalog. Este proceso se desacopla de la ejecución de SQL de las siguientes maneras:
- Latencia: La sincronización es asíncrona, lo que significa que tus trabajos de BigQuery no esperan a que finalice la actualización de Knowledge Catalog.
- Confiabilidad: Si falla la sincronización (por ejemplo, debido a límites de frecuencia de la API), Dataform vuelve a intentar la actualización automáticamente. Una actualización de metadatos fallida no hace que falle tu acción o flujo de trabajo de Dataform.
En la siguiente muestra de código, se muestra cómo definir metadatos para Knowledge Catalog en el bloque de configuración de un archivo SQLX:
config {
type: "table",
metadata: {
overview: "This table provides standardized trip data.",
extraProperties: {
generic: {
system: "BigQuery",
type: "table"
}
}
}
}
Para verificar el estado de una actualización de metadatos, sigue las instrucciones que se indican en Inspecciona los registros de ejecución del espacio de trabajo.
Para ver los metadatos enriquecidos, puedes buscar tus tablas y vistas de BigQuery en Knowledge Catalog. Para obtener más información, consulta Busca recursos.
Inhabilita la creación de tablas
Para evitar que Dataform cree una tabla seleccionada en BigQuery, puedes inhabilitar la tabla en su archivo SQLX de definición de tabla. Dataform mantiene una tabla inhabilitada en el gráfico de dependencias, pero no la compila ni la crea. Esto puede ser útil, por ejemplo, si falla una tabla y no quieres que falle todo el flujo de trabajo mientras solucionas el problema.
Para inhabilitar una tabla, sigue estos pasos:
- Ve a tu lugar de trabajo de desarrollo.
- En el panel Archivos, expande
definitions/. - Selecciona un archivo SQLX de definición de tabla.
- En el bloque
configdel archivo, ingresadisabled: true. - Opcional: Haz clic en Formato.
En la siguiente muestra de código, se muestra una tabla inhabilitada:
config {
type: "table",
disabled: true
}
select * from ${ref("source_data")}
Agrega etiquetas de ejecución
En esta sección, se muestra cómo agregar etiquetas a los archivos SQLX principales de Dataform para categorizar tu flujo de trabajo.
Para organizar los componentes de tu flujo de trabajo en colecciones, puedes agregar etiquetas personalizadas a archivos SQLX de los siguientes tipos:
tableviewincrementalassertionoperations
Durante una ejecución de flujo de trabajo, puedes ejecutar solo archivos con una etiqueta seleccionada.
Con Managed Service para Apache Airflow o Workflows junto con Cloud Scheduler, puedes crear una programación que ejecute un flujo de trabajo de Dataform con una etiqueta seleccionada en un intervalo específico.
Agregar una etiqueta
Puedes agregar varias etiquetas a un archivo SQLX.
Para agregar una etiqueta a un archivo SQLX, sigue estos pasos:
- Ve a tu lugar de trabajo de desarrollo.
- En el panel Archivos, expande
definitions/. - Selecciona un archivo SQLX.
En el bloque
config, agrega una etiqueta con el siguiente formato:tags: ["CUSTOM_TAG"]Reemplaza
CUSTOM_TAGpor tu etiqueta.Opcional: Para agregar varias etiquetas, sepáralas con una coma (
,).Opcional: Haz clic en Formato.
En la siguiente muestra de código, se muestra la vista user_counts con las etiquetas daily y hourly:
config {
type: "view",
name: "user_counts",
tags: ["daily", "hourly"]
}
¿Qué sigue?
- Para obtener información sobre cómo configurar los parámetros de Dataform en
workflow_settings.yaml, consulta Configura los parámetros de flujo de trabajo de Dataform. - Para obtener información sobre cómo probar datos de tablas con aserciones, consulta Prueba la calidad de los datos.
- Para obtener información sobre cómo reutilizar código con includes, consulta Reutiliza código en un solo repositorio con includes.
- Para obtener información sobre cómo activar ejecuciones de forma manual, consulta Activa ejecuciones de forma manual.
- Para obtener información sobre cómo agregar etiquetas de política de BigQuery en Dataform, consulta Controla el acceso a las columnas.