Descripción general del tamaño del repositorio

Este documento te ayuda a comprender cómo el tamaño del repositorio afecta el desarrollo del flujo de trabajo de SQL y el uso de recursos de compilación de Dataform, y cómo estimar el uso de los recursos de compilación de tu repositorio.

Información acerca del tamaño del repositorio en Dataform

El tamaño de un repositorio influye en los siguientes aspectos del desarrollo en Dataform:

Colaboración
Varios colaboradores que trabajan en un repositorio grande pueden crear una cantidad excesiva de solicitudes de extracción, lo que aumenta el riesgo de conflictos de combinación.
Legibilidad de la base de código
Una mayor cantidad de archivos que conforman un flujo de trabajo de SQL en un solo repositorio puede dificultar la navegación por el repositorio.
Procesos de desarrollo
Algunas áreas de un flujo de trabajo grande de SQL en un solo repositorio pueden requerir permisos o procesos personalizados, como la programación, que son diferentes de los permisos y procesos aplicados al resto del flujo de trabajo de SQL. Un gran tamaño de repositorio dificulta la adaptación de los procesos de desarrollo a áreas específicas del flujo de trabajo de SQL.
Compilación del flujo de trabajo
Dataform aplica límites de uso a los recursos de compilación. Si el repositorio es grande, es posible que se excedan estos límites y que falle la compilación.
Ejecución del flujo de trabajo
Durante la ejecución, Dataform ejecuta todo el código del repositorio dentro de tu lugar de trabajo y, luego, implementa recursos en BigQuery. Cuanto más grande sea el repositorio, más tiempo tardará Dataform en ejecutarlo.

Si el gran tamaño de tu repositorio afecta negativamente tu desarrollo en Dataform, puedes dividir el repositorio en varios repositorios más pequeños.

Información sobre los límites de recursos de compilación de repositorios

Durante el desarrollo, Dataform compila todo el código del repositorio dentro de tu lugar de trabajo para generar una representación del flujo de trabajo de SQL en el repositorio, llamada resultado de compilación. Dataform aplica límites de uso a los recursos de compilación.

Es posible que tu repositorio supere los límites de uso por los siguientes motivos:

  • Un error de bucle infinito en el código del repositorio.
  • Un error de fuga de memoria en el código del repositorio.
  • Gran tamaño de repositorio, aproximadamente más de 1,000 nodos de flujo de trabajo de SQL.

Para obtener más información sobre los límites de uso de los recursos de compilación, consulta Límites de los recursos de compilación de Dataform.

Estima el uso de recursos de compilación de tu repositorio

Puedes estimar el uso de los siguientes recursos de compilación para tu repositorio:

  • Uso de tiempo de CPU
  • Tamaño máximo total de datos serializados del grafo de acciones generado que se define en tu repositorio

Para obtener una aproximación del uso actual del tiempo de CPU de la compilación para la compilación de tu repositorio, puedes cronometrar la compilación de tu flujo de trabajo de SQL de Dataform en una máquina local de Linux o macOS.

  • Para cronometrar la compilación de tu flujo de trabajo de SQL, dentro del repositorio, ejecuta el comando dataform compile de la CLI de Dataform en el siguiente formato:
time dataform compile

En la siguiente muestra de código, se ve un resultado de la ejecución del comando time dataform compile:

real    0m3.480s
user    0m1.828s
sys     0m0.260s

Puedes tratar el resultado de real como un indicador aproximado del uso de tiempo de CPU para la compilación de tu repositorio.

Para obtener una aproximación del tamaño total del grafo de acciones generado en tu repositorio, puedes escribir el resultado del grafo en un archivo JSON. Puedes tratar el tamaño del archivo JSON sin comprimir como un indicador aproximado del tamaño total del gráfico.

  • Para escribir el resultado del grafo compilado del flujo de trabajo de SQL en un archivo JSON, dentro del repositorio, ejecuta el siguiente comando de la CLI de Dataform:
dataform compile --json > graph.json

¿Qué sigue?