En este documento, se muestra cómo establecer la configuración de tablas adicionales en un archivo de definición de tablas. Con Dataform Core, puedes definir pre_operations
y post_operations
para ejecutar una instrucción de SQL antes o después de la creación de la tabla. También puedes anular la configuración de la tabla, como database
o schema
, e inhabilitar la creación de tablas.
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.
Roles obligatorios
Si deseas obtener los permisos que necesitas para establecer parámetros de configuración adicionales de la tabla,
solicita a tu administrador que te otorgue el
Es el rol de IAM de Editor de Dataform (roles/dataform.editor
) en los lugares de trabajo.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
Anular la configuración de la tabla
Puedes anular el esquema, la base de datos y el nombre de una tabla seleccionada.
De forma predeterminada, una tabla sigue el esquema y la configuración de la base de datos que estableciste en
dataform.json
El nombre de una tabla es el mismo que el nombre de la tabla
archivo SQLX de definición.
Para anular el esquema y el nombre de una tabla seleccionada, sigue estos pasos:
Ve a tu lugar de trabajo de desarrollo.
En el panel Files, expande
definitions/
.Abre un archivo de definición de tablas de SQLX.
En el bloque
config
, ingresa el siguiente fragmento de código:{ schema: "OVERRIDDEN_SCHEMA", database: "OVERRIDDEN_DATABASE", name: "OVERRIDDEN_NAME" }
Reemplaza lo siguiente:
OVERRIDDEN_SCHEMA
: BigQuery conjunto de datos en el que quieres crear la tablaOVERRIDDEN_DATABASE
: Es el ID del Proyecto de BigQuery en el que deseas crear la tablaOVERRIDDEN_NAME
: Es el nombre de la tabla, diferente del nombre de archivo de la definición de tabla de SQLX
Opcional: Haz clic en Formato.
Cómo hacer referencia a una tabla con un nombre de tabla anulado
- Para hacer referencia a una tabla con un nombre de tabla anulado, en la función
ref
, haz lo siguiente: ingresa el nombre de la tabla anulada que se estableció enname: ""
.
La siguiente muestra de código hace referencia a una tabla cuyo nombre se anuló como
overridden_name
SELECT * FROM ${ref("overridden_name")}
Definir una instrucción de SQL que se ejecutará antes de crear la tabla
Puedes configurar Dataform para ejecutar una o más instrucciones de SQL
antes de crear una tabla seleccionada en BigQuery. Para ejecutar un SQL
antes de que Dataform cree una tabla seleccionada, agrega tu
al bloque pre_operations
en el archivo SQLX de definición de tablas.
Para crear una instrucción de SQL personalizada que se ejecute antes de que Dataform cree una instancia específica sigue estos pasos:
Ve a tu lugar de trabajo de desarrollo.
En el panel Files, expande
definitions/
.Abre un archivo de definición de tablas de SQLX.
Fuera del bloque
config
, ingresapre_operations { ... }
.Dentro de
pre_operations { ... }
, agrega tu instrucción de SQL.Opcional: Para agregar varias sentencias, sepáralas con
---
.Opcional: Haz clic en Formato.
En la siguiente muestra de código, se muestran sentencias pre_operations
que crean 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);
}
Definir una instrucción de SQL que se ejecutará después de crear la tabla
Puedes configurar Dataform para ejecutar una o más instrucciones de SQL
Después de crear
una tabla seleccionada en BigQuery. Ejecutar una instrucción de SQL
luego de que Dataform cree una tabla seleccionada, agrega tu instrucción a
el bloque post_operations
del archivo SQLX de definición de tablas 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 instancia específica sigue estos pasos:
Ve a tu lugar de trabajo de desarrollo.
En el panel Files, expande
definitions/
.Abre un archivo de definición de tablas de 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 presentan sentencias post_operations
que otorgan grupos
acceso a la tabla creada:
post_operations {
GRANT `roles/bigquery.dataViewer`
ON
TABLE ${self()}
TO "group:allusers@example.com", "user:otheruser@example.com"
}
Inhabilitar la creación de tablas
Para impedir que Dataform cree una tabla seleccionada en En BigQuery, puedes inhabilitar la tabla en su archivo de definición de tablas de SQLX. Dataform mantiene una tabla inhabilitada en el gráfico de la dependencia, pero lo hace. no compilarla ni crearla. Esto puede ser útil, por ejemplo, si una tabla falla y y no querrás que todo el flujo de trabajo falle mientras solucionas el problema.
Para inhabilitar una tabla, sigue estos pasos:
Ve a tu lugar de trabajo de desarrollo.
En el panel Files, expande
definitions/
.Selecciona un archivo de definición de tablas de SQLX.
En el bloque
config
del archivo, ingresadisabled: true
.Opcional: Haz clic en Formato.
En la siguiente muestra de código, se puede ver una tabla inhabilitada:
config {
type: "table",
disabled: true
}
select * from ${ref("source_data")}
¿Qué sigue?
Si quieres aprender a configurar los parámetros de Dataform en
dataform.json
, haz lo siguiente: consulta Configura Dataform.Para aprender a probar los datos de la tabla con aserciones, consulta Cómo probar tablas con aserciones.
Si deseas aprender a reutilizar código con inclusiones, consulta Cómo reutilizar variables y funciones con inclusiones.
Para aprender a activar ejecuciones de forma manual, consulta Activa la ejecución.