En esta página, se muestra cómo editar la configuración de procesamiento del flujo de trabajo de SQL de Dataform para un repositorio específico.
Es posible que quieras editar el archivo de configuración para cambiar el nombre de los esquemas o agregar variables de compilación personalizadas a tu repositorio.
Acerca de la configuración del repositorio
Cada repositorio de Dataform contiene un archivo de configuración de flujo de trabajo único. El archivo contiene el ID del proyecto de Google Cloud y el esquema en el que Dataform publica elementos en BigQuery. Dataform usa una configuración predeterminada que puedes anular para adaptarla mejor a tus necesidades editando el archivo de configuración.
A partir de Dataform Core 3.0,
de forma predeterminada, la configuración del flujo de trabajo se almacena
en el archivo workflow_settings.yaml
. En versiones anteriores del núcleo de Dataform, la configuración del flujo de trabajo se almacena en el archivo dataform.json
.
El archivo workflow_settings.yaml
principal de Dataform 3.0 es retrocompatible con dataform.json
. Puedes seguir usando
dataform.json
para configurar los parámetros de Dataform.
Acerca de workflow_settings.yaml
El archivo workflow_settings.yaml
, que se introdujo en Dataform Core 3.0, almacena la configuración del flujo de trabajo de Dataform en formato YAML
.
En la siguiente muestra de código, puedes ver un archivo workflow_settings.yaml
de muestra:
defaultProject: my-gcp-project-id
defaultDataset: dataform
defaultLocation: australia-southeast2
defaultAssertionDataset: dataform_assertions
En la muestra de código anterior, los pares clave-valor se describen de la siguiente manera:
defaultProject
: Es el ID del proyecto de Google Cloud de BigQuery.defaultDataset
: Es el conjunto de datos de BigQuery en el que Dataform crea los recursos, llamadodataform
de forma predeterminada.defaultLocation
: Es la región predeterminada del conjunto de datos de BigQuery. Para obtener más información sobre las ubicaciones de los conjuntos de datos de BigQuery, consulta Ubicaciones de los conjuntos de datos. En esta ubicación, Dataform procesa tu código y almacena los datos ejecutados. Esta región de procesamiento debe coincidir con la ubicación de tus conjuntos de datos de BigQuery, pero no es necesario que coincida con la región del repositorio de Dataform.defaultAssertionDataset
: Es el conjunto de datos de BigQuery en el que Dataform crea vistas con resultados de aserción, llamadodataform_assertions
de forma predeterminada.
Si quieres obtener más información sobre las propiedades de workflow_settings.yaml
, consulta la referencia de la configuración para la configuración del flujo de trabajo en GitHub.
Puedes acceder a las propiedades definidas en workflow_settings.yaml
en el código de Dataform como propiedades del objeto dataform.projectConfig
.
Se aplican las siguientes asignaciones de las opciones workflow_settings.yaml
al código al que se puede acceder con las opciones dataform.projectConfig
:
defaultProject
=>defaultDatabase
.defaultDataset
=>defaultSchema
.defaultAssertionDataset
=>assertionSchema
.projectSuffix
=>databaseSuffix
.datasetSuffix
=>schemaSuffix
.namePrefix
=>tablePrefix
.
En la siguiente muestra de código, se observa el objeto dataform.projectConfig
al que se llama en una sentencia SELECT
en una vista:
config { type: "view" }
SELECT ${when(
!dataform.projectConfig.tablePrefix,
"table prefix is set!",
"table prefix is not set!"
)}
Acerca de dataform.json
El archivo dataform.json
almacena la configuración del flujo de trabajo de Dataform en formato JSON
.
En la siguiente muestra de código, puedes ver un archivo dataform.json
de muestra:
{
"warehouse": "bigquery",
"defaultDatabase": "my-gcp-project-id",
"defaultSchema": "dataform",
"defaultLocation": "australia-southeast2",
"assertionSchema": "dataform_assertions"
}
En la muestra de código anterior, los pares clave-valor se describen de la siguiente manera:
warehouse
: Es el puntero a BigQuery, en el que Dataform crea elementos.defaultDatabase
: Es el ID del proyecto de Google Cloud de BigQuery.defaultSchema
: Es el conjunto de datos de BigQuery en el que Dataform crea los recursos, llamadodataform
de forma predeterminada.defaultLocation
: Es la región predeterminada del conjunto de datos de BigQuery. Para obtener más información sobre las ubicaciones de los conjuntos de datos de BigQuery, consulta Ubicaciones de los conjuntos de datos. En esta ubicación, Dataform procesa tu código y almacena los datos ejecutados. Esta región de procesamiento debe coincidir con la ubicación de tus conjuntos de datos de BigQuery, pero no es necesario que coincida con la región del repositorio de Dataform.assertionSchema
: Es el conjunto de datos de BigQuery en el que Dataform crea vistas con resultados de aserción, llamadodataform_assertions
de forma predeterminada.
Puedes acceder a las propiedades definidas en dataform.json
en el código de tu proyecto como propiedades del objeto dataform.projectConfig
.
Antes de comenzar
Funciones obligatorias
Si quieres obtener los permisos que necesitas para establecer la configuración de Dataform,
pídele a tu administrador que te otorgue el
rol de IAM de Administrador de Dataform (roles/dataform.admin
) en los repositorios.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.
Es posible que también puedas obtener los permisos necesarios a través de funciones personalizadas o, también, otras funciones predefinidas.
Configura nombres de esquemas
Para configurar los nombres de esquemas, debes editar las propiedades defaultDataset
y defaultAssertionSchema
en el archivo workflow_settings.yaml
, o las propiedades defaultSchema
y assertionSchema
en el archivo dataform.json
.
Para configurar el nombre de un esquema, sigue estos pasos:
workflow_settings.yaml
En el lugar de trabajo de desarrollo, en el panel Files, haz clic en el archivo
workflow_settings.yaml
.Edita el valor de
defaultDataset
,defaultAssertionSchema
o ambos.
En la siguiente muestra de código, aparece un nombre defaultDataset
personalizado definido en el archivo workflow_settings.yaml
:
...
defaultDataset: mytables
...
dataform.json
En el lugar de trabajo de desarrollo, en el panel Files, haz clic en el archivo
dataform.json
.Edita el valor de
defaultSchema
,assertionSchema
o ambos.
En la siguiente muestra de código, aparece un nombre defaultSchema
personalizado definido en el archivo dataform.json
:
{
...
"defaultSchema": "mytables",
...
}
Crea variables de compilación personalizadas
Las variables de compilación contienen valores que puedes modificar con anulaciones de compilación en una configuración de lanzamiento o en una solicitud a la API de Dataform.
Después de definir una variable de compilación en workflow_settings.yaml
y agregarla a las tablas seleccionadas, puedes modificar su valor en una configuración de lanzamiento o anulaciones de compilación de la API de Dataform para ejecutar tablas de forma condicional.
Para obtener más información sobre la ejecución de tablas de forma condicional mediante variables de compilación, consulta Introducción al ciclo de vida del código en Dataform.
Para crear una variable de compilación que puedas usar en un repositorio, sigue estos pasos:
workflow_settings.yaml
- Ve a tu lugar de trabajo de desarrollo de Dataform.
- En el panel Files, selecciona el archivo
workflow_settings.yaml
. Ingresa el siguiente fragmento de código:
"vars": { "YOUR_VARIABLE":"VALUE" }
Reemplaza lo siguiente:
- YOUR_VARIABLE por un nombre para la variable
- VALUE por el valor predeterminado de la variable de compilación
En la siguiente muestra de código, se observa la variable de compilación myVariableName
configurada como myVariableValue
en el archivo workflow_settings.yaml
:
...
vars:
myVariableName: myVariableValue
...
En la siguiente muestra de código, se observa el archivo workflow_settings.yaml
con la variable de compilación executionSetting
configurada en dev
:
defaultProject: default_bigquery_database
defaultLocation: us-west1
defaultDataset: dataform_data,
vars:
executionSetting: dev
dataform.json
- Ve a tu lugar de trabajo de desarrollo de Dataform.
- En el panel Files, selecciona el archivo
dataform.json
. Ingresa el siguiente fragmento de código:
"vars": { "YOUR_VARIABLE":"VALUE" }
Reemplaza lo siguiente:
- YOUR_VARIABLE por un nombre para la variable
- VALUE por el valor predeterminado de la variable de compilación
En la siguiente muestra de código, se observa la variable de compilación myVariableName
configurada como myVariableValue
en el archivo dataform.json
:
{
...
"vars": {
"myVariableName": "myVariableValue"
},
...
}
En la siguiente muestra de código, se observa el archivo dataform.json
con la variable de compilación executionSetting
configurada en dev
:
{
"warehouse": "bigquery",
"defaultSchema": "dataform_data",
"defaultDatabase": "default_bigquery_database".
"defaultLocation":"us-west-1",
"vars": {
"executionSetting":"dev"
}
}
Cómo agregar una variable de compilación a una tabla
Para agregar una variable de compilación a un archivo de definición de tablas de SQLX, sigue estos pasos:
- Ve a tu lugar de trabajo de desarrollo de Dataform.
- En el panel Files, selecciona un archivo de definición de tablas de SQLX.
En el archivo, ingresa una cláusula
when
en el siguiente formato:${when(dataform.projectConfig.vars.YOUR_VARIABLE === "SET_VALUE", "CONDITION")}
Reemplaza lo siguiente:
- YOUR_VARIABLE por el nombre de la variable, por ejemplo,
executionSetting
- SET_VALUE por un valor para la variable, por ejemplo,
staging
- CONDITION por una condición para la ejecución de la tabla
- YOUR_VARIABLE por el nombre de la variable, por ejemplo,
En la siguiente muestra de código, se observa un archivo SQLX de definición de tablas con una cláusula when
y la variable executionSetting
que ejecuta el 10% de los datos en la configuración de ejecución de la etapa de pruebas:
select
*
from ${ref("data")}
${when(
dataform.projectConfig.vars.executionSetting === "staging",
"where mod(farm_fingerprint(id) / 10) = 0",
)}
En la siguiente muestra de código, se observa un archivo SQLX de definición de vistas con una cláusula when
y la variable myVariableName
:
config { type: "view" }
SELECT ${when(
dataform.projectConfig.vars.myVariableName === "myVariableValue",
"myVariableName is set to myVariableValue!",
"myVariableName is not set to myVariableValue!"
)}
¿Qué sigue?
Para obtener más información sobre la configuración de proyectos de Dataform, consulta la referencia de
IProjectConfig
.Si quieres aprender a control de versión del código en Dataform, consulta Controla la versión de tu código.
Si deseas aprender a definir una tabla, consulta Cómo crear una tabla.