En este documento, se muestra cómo resolver problemas con Dataform.
Se deniega el acceso a BigQuery
El siguiente error ocurre cuando activas una invocación de flujo de trabajo antes de otorgar acceso de Dataform a BigQuery:
Access Denied: Project PROJECT_ID: User does not have bigquery.jobs.create permission in project PROJECT_ID.
Para resolver este error, otorga acceso de Dataform a BigQuery.
Se rechaza el token de acceso de un repositorio remoto
El siguiente error ocurre cuando tu token de autenticación para un repositorio externo conectado no tiene acceso a ese repositorio:
The access token for remote repository REPOSITORY_NAME was rejected
Para resolver este error, verifica los permisos necesarios en tu proveedor de Git y actualiza el token de autenticación de Secret Manager según corresponda. Para obtener más información sobre la autenticación de repositorios de Git de terceros en Dataform, consulta Cómo conectarse a un repositorio de Git de terceros.
Se superó la cuota de BigQuery
El siguiente error ocurre cuando la cantidad 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 la cantidad de consultas en paralelo a menos de 250 de las siguientes maneras:
- En Dataform, categoriza las acciones con etiquetas y ejecuta solo las etiquetas seleccionadas a la vez.
- En Dataform, introduce dependencias entre acciones.
- En Dataform, divide las ejecuciones de acciones entre diferentes proyectos deGoogle Cloud .
Si deseas obtener instrucciones para resolver este error en BigQuery, consulta Soluciona problemas de errores de cuota y límite.
Se superó el límite de simultaneidad de consultas de BigQuery
El siguiente error se produce cuando la cantidad 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 la cantidad de consultas en paralelo a menos de 250 de las siguientes maneras:
- En Dataform, categoriza las acciones con etiquetas y ejecuta solo las etiquetas seleccionadas a la vez.
- En Dataform, introduce dependencias entre acciones.
- En Dataform, divide las ejecuciones de acciones entre diferentes proyectos deGoogle Cloud .
Si deseas obtener instrucciones para resolver este error en BigQuery, consulta Soluciona problemas de errores de cuota y límite.
Errores de invocación de flujos de trabajo de BigQuery
Los siguientes errores ocurren durante la ejecución de un flujo de trabajo de SQL en BigQuery:
- Errores de invocación de flujo de trabajo que comienzan con mensajes de error de BigQuery
Para resolver estos errores, consulta Mensajes de error de BigQuery.
Propiedades includeDependentAssertions
en conflicto
El siguiente error se produce durante la compilación cuando el parámetro includeDependentAssertions
se establece para la misma acción con diferentes valores dentro de un archivo:
Conflicting "includeDependentAssertions" properties are not allowed. Dependency
dependencyName has different values set for this property.
Para resolver este error, edita el archivo y quita las repeticiones en conflicto del parámetro includeDependentAssertions
.
Para obtener más información sobre el uso del parámetro includeDependentAssertions
para establecer aserciones como dependencias, consulta Cómo establecer aserciones de una acción seleccionada como dependencias.
La compilación falla
Los siguientes errores se producen durante la compilación debido al tamaño o la cantidad 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, sigue estos pasos:
- Actualiza el núcleo de Dataform a la versión más reciente.
- Inspecciona tu flujo de trabajo de SQL para identificar y reducir las ineficiencias.
- Reduce el tamaño de las consultas de SQL.
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 ...
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
Los siguientes errores ocurren durante la compilación si la dependencia de dataform-core
en package.json
está desactualizada:
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 lugar de trabajo en tu repositorio, Dataform propaga automáticamente package.json
con la versión actual de @dataform/core
. Debes actualizar @dataform/core
a la versión más reciente a medida que salga.
Para resolver estos errores, actualiza @dataform/core
a la versión más reciente.
No se pudo resolver dataform.json
El siguiente error ocurre 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 resolver este error, en tu espacio de trabajo, abre package.json
y haz clic en Install packages.
No se pudo resolver workflow_settings.yaml
El siguiente error ocurre 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 resolver este error, en tu espacio de trabajo, abre workflow_settings.yaml
y
haz clic en Install packages.
No se admiten los destinos de paquetes git+
.
El siguiente error ocurre cuando defines paquetes en package.json
con objetivos con el prefijo 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 resolver este error, genera una URL de tar.gz
del paquete y actualiza el objetivo del paquete en package.json
. Para obtener más información sobre la instalación de paquetes en Dataform, consulta Cómo instalar un paquete.
Se agota el tiempo de espera de la instalación del paquete
El siguiente error ocurre 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, quita 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 parámetros de configuración de lanzamiento hacen referencia a confirmaciones de Git, asegúrate de que los archivos package.json
en sus destinos sean válidos.
No se puede acceder al registro de paquetes privados
El siguiente error ocurre cuando vence 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 resolver este error, verifica que los detalles de autenticación del registro privado sean válidos para cada registro de NPM. Para obtener más información, consulta Cómo autenticar un paquete privado.
No se puede acceder al repositorio remoto
El siguiente error se produce debido a la inestabilidad de Git o cuando el nombre de una rama en el repositorio de Git de terceros conectado contiene un carácter que no es ASCII o inglés:
Remote repository REPOSITORY_NAME could not be reached.
Para resolver este error, inspecciona los nombres de las ramas en el repositorio de terceros conectado. Si el nombre de una rama contiene un carácter que no es ASCII o no es en inglés, borra la rama.
No se puede acceder al repositorio remoto: generic::invalid_argument
El siguiente error se produce en la página Detalles de la configuración de la versión cuando una versión programada ocasionalmente encuentra una conexión lenta, inestable o caída con GitHub, GitLab o Bitbucket:
generic::invalid_argument: Remote repository 'REMOTE_REPOSITORY_URL' could not be reached.
No es necesario que realices ninguna acción. A menos que persistan los problemas de GitHub, GitLab o Bitbucket Cloud, las versiones programadas posteriores pueden realizarse correctamente.
No se puede acceder al Secret de un repositorio remoto
El siguiente error ocurre 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 resolver este error, haz lo siguiente:
- Verifica que tu cuenta de servicio de Dataform tenga acceso al secreto.
- Excluye el secreto de tu perímetro de servicio de VPC-SC. Dataform no es compatible con VPC-SC en este momento.
Argumento desconocido: etiquetas
El siguiente error ocurre cuando tu versión de la CLI de Dataform no reconoce el argumento tags
:
Unknown argument: tags
Para resolver este error, haz lo siguiente:
- Actualiza la versión de la
CLI
a
3.0.0
o una posterior. Siempre prueba las versiones nuevas 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, siempre usa la versión más reciente disponible del paquete principal de Dataform.
- Especifica de forma explícita la versión del paquete en
package.json
, por ejemplo,3.0.0
. No uses otras opcionesdependencies
depackage.json
, por ejemplo,>version
.