Este documento te muestra cómo hacer lo siguiente:
- Define una instrucción de SQL que se ejecutará antes de la creación de la tabla.
- Define una instrucción de SQL que se ejecutará 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 consola de Google Cloud , 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 el rol de IAM de editor de Dataform (roles/dataform.editor
) en los espacios de trabajo.
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 que se ejecutará antes de la creación de la tabla
Puedes configurar Dataform para que ejecute una o más sentencias SQL
antes de crear una tabla seleccionada en BigQuery. Para ejecutar una instrucción SQL antes de que Dataform cree una tabla seleccionada, agrega la instrucción al bloque pre_operations
en el archivo SQLX de definición de la 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 espacio de trabajo de desarrollo.
- En el panel Archivos, expande
definitions/
. - Abre un archivo de definición de tablas SQLX.
- 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 sentencia pre_operations
que crea una función temporal que se puede usar en la sentencia select:
pre_operations {
CREATE TEMP FUNCTION AddFourAndDivide(x INT64, y INT64)
RETURNS FLOAT64
AS ((x + 4) / y);
}
Define una instrucción de SQL que se ejecutará después de la creación de la tabla
Puedes configurar Dataform para que ejecute una o más instrucciones 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 la instrucción al
bloque post_operations
en el archivo SQLX de definición de la 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 espacio de trabajo de desarrollo.
- En el panel Archivos, expande
definitions/
. - Abre un archivo de definición de tablas SQLX.
- 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 sentencias post_operations
que otorgan a los grupos acceso a la tabla creada:
post_operations {
GRANT `roles/bigquery.dataViewer`
ON
TABLE ${self()}
TO "group:allusers@example.com", "user:otheruser@example.com"
}
Inhabilita la creación de tablas
Para evitar que Dataform cree una tabla seleccionada en BigQuery, puedes inhabilitarla en su archivo de definición de tablas SQLX. 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 una tabla falla y no quieres que falle todo el flujo de trabajo mientras solucionas el problema.
Para inhabilitar una tabla, sigue estos pasos:
- Ve a tu espacio de trabajo de desarrollo.
- En el panel Archivos, expande
definitions/
. - Selecciona un archivo de definición de tabla SQLX.
- En el bloque
config
del archivo, ingresadisabled: true
. - Opcional: Haz clic en Formato.
En el 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 del núcleo de Dataform para categorizar tu flujo de trabajo.
Para organizar los componentes de tu flujo de trabajo en colecciones, puedes agregar etiquetas personalizadas a los archivos SQLX de los siguientes tipos:
table
view
incremental
assertion
operations
Durante la ejecución del flujo de trabajo, puedes ejecutar solo archivos con una etiqueta seleccionada.
Con Cloud Composer o Workflows junto con Cloud Scheduler, puedes crear un programa 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 espacio 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_TAG
por 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?
- Si quieres obtener información para configurar Dataform en
workflow_settings.yaml
, consulta Configura la configuración del flujo de trabajo de Dataform. - Para aprender a probar datos de tablas con aserciones, consulta Cómo probar tablas con aserciones.
- Para obtener información sobre cómo volver a usar el código con incorporaciones, consulta Cómo volver a usar el código en un solo repositorio con incorporaciones.
- Para aprender a activar ejecuciones de forma manual, consulta Cómo activar ejecuciones.
- Para aprender a agregar etiquetas de políticas de BigQuery en Dataform, consulta Cómo agregar etiquetas de políticas de BigQuery.