Solucionar problemas de Dataform

En este documento se explica cómo solucionar problemas con Dataform.

Se ha denegado el acceso a BigQuery

Se produce el siguiente error cuando activas una invocación de una canalización antes de conceder acceso a Dataform a BigQuery:

Access Denied: Project PROJECT_ID: User does not have bigquery.jobs.create permission in project PROJECT_ID.

Para solucionar este error, concede acceso a Dataform a BigQuery.

Se rechaza el token de acceso de un repositorio remoto

Se produce el siguiente error cuando tu token de autenticación de un repositorio de terceros conectado no tiene acceso a ese repositorio:

The access token for remote repository REPOSITORY_NAME was rejected

Para solucionar este error, comprueba los permisos necesarios en tu proveedor de Git y actualiza el token de autenticación de Secret Manager en consecuencia. Para obtener más información sobre cómo autenticar repositorios Git de terceros en Dataform, consulta Conectarse a un repositorio Git de terceros.

Se ha superado la cuota de BigQuery

Se produce el siguiente error cuando el número de solicitudes a la API que Dataform envía a BigQuery supera la cuota de BigQuery:

Quota exceeded: Your user_method exceeded quota for concurrent api requests
per user per method.

Para resolver este error, reduce el número de consultas paralelas a menos de 250 de las siguientes formas:

Para obtener instrucciones sobre cómo resolver este error en BigQuery, consulta el artículo Solucionar errores de cuota y de límite.

Se ha superado el límite de simultaneidad de consultas de BigQuery

Este error se produce cuando el número de consultas simultáneas que se ejecutan en BigQuery supera el límite de simultaneidad de consultas de BigQuery:

Exceeded rate limits: too many concurrent queries for this project_and_region

Para resolver este error, reduce el número de consultas paralelas a menos de 250 de las siguientes formas:

Para obtener instrucciones sobre cómo resolver este error en BigQuery, consulta el artículo Solucionar errores de cuota y de límite.

Errores de invocación de la canalización de BigQuery

Se producen los siguientes errores durante la ejecución de un flujo de trabajo en BigQuery:

Para resolver estos errores, consulta Mensajes de error de BigQuery.

Propiedades de includeDependentAssertions en conflicto

Se produce el siguiente error durante la compilación cuando el parámetro includeDependentAssertions se define para la misma acción con valores diferentes en un archivo:

Conflicting "includeDependentAssertions" properties are not allowed. Dependency
dependencyName has different values set for this property.

Para solucionar este error, edita el archivo y elimina las repeticiones del parámetro includeDependentAssertions que estén en conflicto.

Para obtener más información sobre cómo usar el parámetro includeDependentAssertions para definir aserciones como dependencias, consulta Definir las aserciones de una acción seleccionada como dependencias.

La compilación falla

Se producen los siguientes errores durante la compilación debido al tamaño o al número de consultas compiladas:

  • Compilation timed out. Reduce the complexity of your project to ensure it can compile within limits.
  • Compilation exceeded its allowed heap memory limits. Reduce the complexity of your project to ensure it can compile within limits.
  • Compilation exceeded its allowed ArrayBuffer or string memory limits. Reduce the complexity of your project to ensure it can compile within limits.

Para resolver estos errores, siga estos pasos:

  1. Actualiza Dataform core a la versión más reciente.
  2. Analiza tu flujo de trabajo para identificar y reducir las ineficiencias.
  3. Reduce el tamaño de las consultas SQL.
  4. Reduce la cantidad de operaciones de JavaScript en la memoria. Por ejemplo:

    config { config {type: "table" }}
    js {
        const tooBig = new Uint8Array(110_000_000);
    }
    SELECT ...
    
  5. Divide el repositorio.

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

@dataform/core errores de dependencia

Se producen los siguientes errores durante la compilación si la dependencia dataform-core de package.json está obsoleta:

Failed to resolve @dataform/core
@dataform/core version should be X.X.X or newer

La dependencia @dataform/core es obligatoria en package.json. Cuando inicializas el primer espacio de trabajo de tu repositorio, Dataform rellena automáticamente package.json con la versión actual de @dataform/core. Debes actualizar @dataform/core a la versión más reciente cuando esté disponible.

Para resolver estos errores, actualiza @dataform/core a la versión más reciente.

No se ha podido resolver dataform.json

El siguiente error se produce cuando inicializas un espacio de trabajo de Dataform, pero el proceso de inicialización no instala todos los paquetes:

Uncaught Error: Failed to resolve dataform.json

Para solucionar este error, abre package.json en tu espacio de trabajo y haz clic en Instalar paquetes.

No se ha podido resolver workflow_settings.yaml

El siguiente error se produce cuando inicializas un espacio de trabajo de Dataform, pero el proceso de inicialización no instala todos los paquetes:

Uncaught Error: Failed to resolve workflow_settings.yaml

Para solucionar este error, abre workflow_settings.yaml en tu espacio de trabajo y haz clic en Instalar paquetes.

No se admiten las segmentaciones de paquetes git+

Se produce el siguiente error cuando defines paquetes en package.json con destinos que empiezan por git+:

'git+' prefixed package targets are not currently supported. However,
in most cases they can be used via a '.tar.gz' suffixed target instead.

Dataform no admite destinos de paquetes con el prefijo git+.

Para solucionar este error, genera una URL tar.gz del paquete y actualiza el destino del paquete en package.json. Para obtener más información sobre cómo instalar paquetes en Dataform, consulta Instalar un paquete.

Se agota el tiempo de espera de la instalación del paquete

Se produce el siguiente error cuando el tamaño de los paquetes definidos en package.json supera el tamaño máximo de las dependencias de NPM:

API request error: Package installation timed out

Para resolver este error, elimina los paquetes redundantes de package.json. Asegúrate de que el archivo package.json no contenga @dataform/cli y de que el tamaño total de las dependencias de NPM definidas no supere los 200 MB.

Si tus configuraciones de lanzamiento hacen referencia a confirmaciones de Git, asegúrate de que los archivos package.json de sus destinos sean válidos.

No se puede acceder al registro de paquetes privados

Se produce el siguiente error cuando caduca la autenticación de Dataform para un paquete privado:

Permission denied when fetching one or more npm packages. Please verify that
private registry authentication details are valid for each npm registry

Para solucionar este error, compruebe que los detalles de autenticación del registro privado sean válidos para cada registro de NPM. Para obtener más información, consulta Autenticar un paquete privado.

No se puede acceder al repositorio remoto

El siguiente error se produce debido a la inestabilidad de Git o cuando la conexión del repositorio de terceros no se ha configurado correctamente:

Remote repository REPOSITORY_NAME could not be reached.

Para solucionar este error, comprueba que hayas seguido todos los pasos que se indican en Conectar con un repositorio Git de terceros. En concreto, comprueba que se pueda acceder al host de tu repositorio Git desde Internet público. Además, comprueba que el token de autenticación o la clave privada sean correctos y tengan los permisos necesarios para acceder al repositorio.

No se puede acceder al repositorio remoto: generic::invalid_argument

El siguiente error se produce en la página Detalles de las configuraciones de lanzamiento cuando un lanzamiento programado tiene problemas de conexión con GitHub, GitLab o Bitbucket:

generic::invalid_argument: Remote repository 'REMOTE_REPOSITORY_URL' could not be reached.

No tienes que hacer nada. A menos que persistan los problemas de GitHub, GitLab o Bitbucket Cloud, las versiones programadas posteriores se podrán completar correctamente.

No se puede acceder al secreto de un repositorio remoto

Se produce el siguiente error cuando tu cuenta de servicio de Dataform no puede acceder al secreto de Secret Manager de un repositorio de terceros conectado:

Dataform's service account is unable to reach the configured secret.
Make sure the secret exists and is shared with your Dataform service account:
SERVICE_ACCOUNT_ID.

Para solucionar este error, sigue estos pasos:

  • Verifica que tu cuenta de servicio de Dataform tenga acceso al secreto.
  • Excluye el secreto de tu perímetro de servicio de los Controles de Servicio de VPC. Dataform no admite VPC-SC en este momento.

Argumento desconocido: tags

Se produce el siguiente error cuando tu versión de la CLI de Dataform no reconoce el argumento tags:

Unknown argument: tags

Para solucionar este error, sigue estos pasos:

  • Actualiza la versión de la CLI a 3.0.0 o una posterior. Prueba siempre las nuevas versiones de los paquetes en un entorno que no sea de producción antes de implementarlas en tu entorno de producción.
  • Como práctica recomendada, utiliza siempre la última versión disponible del paquete principal de Dataform.
  • Especifica explícitamente la versión del paquete en package.json, por ejemplo, 3.0.0. No uses otras dependencies opciones de package.json, como >version.