Configura anulaciones de compilación con la API de Dataform

En este documento, se muestra cómo crear y ejecutar un resultado de compilación con anulaciones de compilación mediante la API de Dataform.

Información acerca de las anulaciones de compilación de la API de Dataform

Para ejecutar tu flujo de trabajo de SQL, Dataform compila tu código en SQL a fin de crear un resultado de compilación. Luego, durante una invocación del flujo de trabajo, Dataform ejecuta el resultado de la compilación en BigQuery.

De forma predeterminada, Dataform usa la configuración en el archivo dataform.json para crear el resultado de la compilación. Para aislar datos que se ejecutan en diferentes etapas de tu ciclo de vida de desarrollo, puedes anular la configuración predeterminada con anulaciones de compilación.

Cuando pasas las solicitudes a la API de Dataform en la terminal, puedes crear y ejecutar un solo resultado de compilación con anulaciones de compilación. Puedes crear un resultado de compilación de un lugar de trabajo o de un compromiso de Git seleccionado.

Para crear un resultado de compilación con anulaciones de compilación, debes generar la solicitud compilationResults.create de la API de Dataform. En la solicitud, debes especificar una fuente, un lugar de trabajo o una confirmación de Git para que Dataform pueda compilar en el resultado de la compilación. En el objeto CodeCompilationConfig de la solicitud compilationResults.create, puedes configurar anulaciones de compilación.

Luego, puedes ejecutar el resultado de la compilación creado en una solicitud workflowInvocations.create de la API de Dataform.

Puedes configurar las siguientes anulaciones de compilación con la API de Dataform:

Proyecto de Google Cloud
Proyecto de Google Cloud en el que Dataform ejecuta el resultado de la compilación, configurado en dataform.json como defaultDatabase.
Prefijo de la tabla
Se agregó un prefijo personalizado a todos los nombres de tabla en el resultado de la compilación.
Sufijo de esquema
Sufijo personalizado agregado al esquema de tablas definidas en defaultSchema, en dataform.json, o en el parámetro schema, en el bloque config de una tabla.
Valor de una variable de compilación
Es el valor de una variable de compilación que se usará en el resultado de la compilación. Puedes usar variables de compilación para ejecutar tablas de manera condicional.

Como alternativa a las anulaciones de compilación de la API de Dataform que solo puedes usar para un resultado de compilación, puedes configurar las anulaciones de compilación de lugares de trabajo en la consola de Google Cloud.

Para obtener información sobre formas alternativas de configurar anulaciones de compilación en Dataform, consulta Introducción al ciclo de vida del código.

Antes de comenzar

  1. En la consola de Google Cloud, ve a la página Dataform.

    Ir a Dataform

  2. Selecciona o crea un repositorio.

  3. Selecciona o crea un lugar de trabajo de desarrollo.

Cómo establecer una fuente de resultados de compilación

Para generar la solicitud compilationResults.create de la API de Dataform, debes especificar una fuente para el resultado de la compilación.

Puedes configurar un lugar de trabajo de Dataform, una rama de Git, una etiqueta de Git o un SHA de confirmación de Git como fuente en la solicitud compilationResults.create.

Establece un lugar de trabajo como una fuente de resultados de compilación

  • En la solicitud compilationResults.create, propaga la propiedad workspace con la ruta de un lugar de trabajo de Dataform seleccionado en el siguiente formato:
{
"workspace": "projects/PROJECT_NAME/locations/LOCATION/repositories/REPOSITORY_NAME/workspaces/WORKSPACE_NAME"
}

Reemplaza lo siguiente:

  • PROJECT_NAME por el nombre de tu proyecto de Google Cloud
  • LOCATION por la ubicación del repositorio de Dataform, configurada en dataform.json.
  • REPOSITORY_NAME por el nombre de tu repositorio de Dataform
  • WORKSPACE_NAME por el nombre de tu lugar de trabajo de Dataform

En la siguiente muestra de código, se ve la propiedad workspace en la solicitud compilationResults.create establecida en un lugar de trabajo llamado "sales-test":

{
"workspace": "projects/analytics/locations/europe-west4/repositories/sales/workspaces/sales-test"
}

Configura un confirmish de Git como fuente de resultados de compilación

  • En la solicitud compilationResults.create, propaga la propiedad gitCommitish con la rama, la etiqueta o el SHA de confirmación de Git seleccionados en el siguiente formato:

    {
      "gitCommitish": "GIT_COMMITISH"
    }
    

Reemplaza GIT_COMMITISH por la rama de Git, la etiqueta de Git o un SHA de confirmación de Git seleccionados para el resultado de la compilación.

En la siguiente muestra de código, se ve la propiedad gitCommitish en la solicitud compilationResults.create configurada como "staging":

{
  "gitCommitish": "staging"
}

Anula el proyecto predeterminado de Google Cloud

Para crear tablas de etapa de pruebas o producción en un proyecto de Google Cloud independiente del proyecto que se usa para el desarrollo, puedes pasar un ID del proyecto de Google Cloud diferente en el objeto CodeCompilationConfig en la solicitud compilationResults.create de la API de Dataform.

Pasar un ID del proyecto predeterminado distinto en la solicitud compilationResults.create anula el ID del proyecto predeterminado de Google Cloud configurado en el archivo dataform.json, pero no anula los ID del proyecto de Google Cloud configurados en tablas individuales.

  • Para anular el ID del proyecto de Google Cloud predeterminado, configura la propiedad defaultDatabase con el ID del proyecto de Google Cloud seleccionado en el objeto CodeCompilationConfig con el siguiente formato:

    {
      "codeCompilationConfig": {
        "defaultDatabase": "PROJECT_NAME"
      }
    }
    

Reemplaza PROJECT_NAME por el ID del proyecto de Google Cloud que deseas establecer para el resultado de la compilación.

Agregar un prefijo de tabla

Para identificar con rapidez las tablas del resultado de la compilación, puedes agregar un prefijo a todos los nombres de las tablas del resultado de la compilación. Para ello, pasa el prefijo de la tabla en el objeto CodeCompilationConfig de la solicitud compilationResults.create de la API de Dataform.

  • Para agregar un prefijo de tabla, configura la propiedad tablePrefix en el objeto CodeCompilationConfig con el siguiente formato:
{
  "codeCompilationConfig": {
    "tablePrefix": "PREFIX",
  }
}

Reemplaza PREFIX por el sufijo que deseas agregar, por ejemplo, _staging. Por ejemplo, si defaultSchema en dataform.json se configura como dataform, Dataform creará tablas en el esquema dataform_staging.

Agrega un sufijo de esquema

Para separar los datos de desarrollo, etapa de pruebas y producción, puedes agregar un sufijo a los esquemas en un resultado de compilación. Para ello, pasa el sufijo del esquema en el objeto CodeCompilationConfig en la solicitud compilationResults.create de la API de Dataform.

  • Para agregar un sufijo de esquema, configura la propiedad schemaSuffix en el objeto CodeCompilationConfig con el siguiente formato:
{
  "codeCompilationConfig": {
    "schemaSuffix": "SUFFIX",
  }
}

Reemplaza SUFFIX por el sufijo que deseas agregar, por ejemplo, _staging. Por ejemplo, si defaultSchema en dataform.json se configura como dataform, Dataform creará tablas en el esquema dataform_staging.

Nota: El parámetro CodeCompilationConfig schemaSuffix anula los esquemas configurados en el bloque config de archivos individuales.

Ejecutar los archivos seleccionados de forma condicional con variables de compilación

Para ejecutar una tabla seleccionada solo en una configuración de ejecución específica, puedes crear una variable de compilación para la configuración de ejecución y, luego, pasar su valor en el objeto CodeCompilationConfig en la solicitud compilationResults.create de la API de Dataform.

Para ejecutar una tabla de manera condicional en una configuración de ejecución específica con la API de Dataform, sigue estos pasos:

  1. Crea una variable de compilación y agrégala a las tablas seleccionadas.
  2. Configura el par clave-valor YOUR_VARIABLE y VALUE en el bloque codeCompilationConfig de una solicitud de compilación de la API de Dataform con el siguiente formato:

    {
     "codeCompilationConfig": {
       "vars": {
         "YOUR_VARIABLE": "VALUE"
       }
     }
    }
    
  3. Reemplaza YOUR_VARIABLE por el nombre de tu variable, por ejemplo executionSetting.

  4. Reemplaza VALUE por el valor de la variable para este resultado de la compilación que cumple con la condición when establecida en las tablas seleccionadas.

En la siguiente muestra de código, se ve la variable executionSetting que se pasa a una solicitud de compilación de la API de Dataform:

{
  "gitCommitish": "staging",
  "codeCompilationConfig": {
    "vars": {
      "executionSetting": "staging"
    }
  }
}

Ejecuta un resultado de compilación con anulaciones de compilación

En la siguiente muestra de código, se ve un ID de resultado de compilación que se pasa en una solicitud workflowInvocations.create:

{
  "compilationResult": "projects/my-project-name/locations/europe-west4/repositories/my-repository-name/compilationResults/7646b4ed-ac8e-447f-93cf-63c43249ff11"
}

¿Qué sigue?