Define la configuración de Dataform

En esta página, se muestra cómo editar la configuración de procesamiento de Dataform para un repositorio específico.

Es posible que desees editar el archivo de configuración para cambiar el nombre de los esquemas o agregar variables de compilación personalizadas a tu repositorio.

Información acerca de la configuración del repositorio

Cada repositorio de Dataform contiene un archivo de configuración workflow_settings.yaml ú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 que se adapte mejor a tus necesidades editando el archivo workflow_settings.yaml.

En la siguiente muestra de código, se ve un archivo workflow_settings.yaml de muestra:

  defaultProject: my-gcp-project-id
  defaultDataset: dataform
  defaultLocation: australia-southeast2
  defaultAssertionDataset: dataform_assertions

En el código de muestra, los pares clave-valor y todas las demás opciones de configuración del flujo de trabajo se describen en la referencia de configuración para la configuración del flujo de trabajo.

Puedes acceder a las propiedades definidas en workflow_settings.yaml en el código de tu proyecto como propiedades del objeto dataform.projectConfig. Se aplican las siguientes asignaciones de las opciones de workflow_settings.yaml a las opciones de dataform.projectConfig al que se puede acceder desde el código:

  • defaultProject => defaultDatabase.
  • defaultDataset => defaultSchema.
  • defaultAssertionDataset => assertionSchema.
  • projectSuffix => databaseSuffix.
  • datasetSuffix => schemaSuffix.
  • namePrefix => tablePrefix.

Para obtener más información sobre el objeto dataform.projectConfig, consulta la Referencia principal de Dataform IProjectConfig.

En la siguiente muestra de código, se ve 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!"
  )}

Antes de comenzar

  1. Crea un repositorio.

  2. Crea y, luego, inicializa un lugar de trabajo de desarrollo en tu repositorio.

Funciones obligatorias

Si quieres obtener los permisos que necesitas para definir la configuración de Dataform, pídele a tu administrador que te otorgue el rol de IAM 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 los roles personalizados o de otros roles predefinidos.

Configura los nombres de esquemas

En esta tarea, se muestra cómo configurar las propiedades defaultDataset y defaultAssertionSchema en el archivo workflow_settings.yaml.

Para cambiar el nombre de un esquema, sigue estos pasos:

  1. En el lugar de trabajo de desarrollo, en el panel Files, haz clic en el archivo workflow_settings.yaml.

  2. Edita el valor de defaultDataset, defaultAssertionSchema o ambos.

En la siguiente muestra de código, se ve un nombre defaultDataset personalizado en el archivo workflow_settings.yaml:

  ...
  defaultDataset: mytables
  ...

Crea variables de compilación personalizadas

Las variables de compilación contienen valores que puedes modificar con anulaciones de compilación 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 Anulaciones de compilación de la API de Dataform para ejecutar tablas de manera condicional.

Para crear una variable de compilación que puedas usar en un repositorio, sigue estos pasos:

  1. Ve a tu lugar de trabajo de desarrollo de Dataform.
  2. En el panel Archivos, selecciona el archivo workflow_settings.yaml.
  3. 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 ve la variable de compilación myVariableName establecida en myVariableValue en el archivo workflow_settings.yaml:

  ...
  vars:
    myVariableName: myVariableValue
  ...

En la siguiente muestra de código, se ve el archivo workflow_settings.yaml con la variable de compilación executionSetting establecida en dev:

defaultProject: default_bigquery_database
defaultLocation:us-west1
defaultDataset: dataform_data,
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:

  1. Ve a tu lugar de trabajo de desarrollo de Dataform.
  2. En el panel Archivos, selecciona un archivo de definición de tablas de SQLX.
  3. 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 con un valor para la variable, por ejemplo, staging
    • CONDITION con una condición para la ejecución de la tabla.

En la siguiente muestra de código, se ve 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 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 muestra un archivo SQLX de definición de la vista 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?