Limitações, requisitos e considerações do dbt Projects on Snowflake¶
Antes de usar o dbt Projects on Snowflake, revise os requisitos, as considerações e as limitações:
Limitações, requisitos e considerações para procedimentos armazenados
Limitações, requisitos e considerações para uso de espaços de trabalho com projetos dbt
Limitações, requisitos e considerações para dependências de dbt
Limitações, requisitos e considerações para telemetria, registro em log e rastreamento
Limitações, requisitos e considerações para configurações de projeto dbt¶
Os seguintes requisitos, considerações e limitações se aplicam às configurações de projeto dbt compatíveis com dbt Projects on Snowflake:
Only dbt Core projects are supported. dbt Cloud projects aren’t supported. When you migrate an existing dbt Core project to Snowflake, it must be compatible with supported dbt Core versions.
Cada pasta do projeto dbt no seu espaço de trabalho Snowflake deve conter um arquivo
profiles.ymlque especifica umwarehouse,database,schemaerolede destino para o projeto no Snowflake. Otypedeve ser definido comosnowflake. O dbt requeraccounteuser, mas esses valores podem ser deixados com uma cadeia de caracteres vazia ou arbitrária porque o projeto dbt é executado no Snowflake de acordo com a conta atual e o contexto do usuário.Um projeto dbt em espaço de trabalho não pode ter mais de 20.000 arquivos na estrutura de pastas. Esse limite inclui todos os arquivos no diretório e nos subdiretórios do projeto dbt, incluindo os diretórios
target/dbt_packages/logs, em que os arquivos de log são salvos quando um projeto dbt é executado de dentro do espaço de trabalho.Variáveis de ambiente (por exemplo,
{{ env_var ('MY_ENV_VAR') }}) não são compatíveis ao executar um objeto de projeto dbt. Como alternativa, use variáveis de projeto (por exemplo,--vars). Para obter mais informações, consulte Variáveis de projeto.Serverless tasks can’t be used to execute dbt project objects. When you create a task that executes the EXECUTE DBT PROJECT command, you must specify a user-managed warehouse.
Não é possível executar vários comandos EXECUTE DBT PROJECT simultaneamente no mesmo objeto de projeto dbt, mesmo ao usar seletores de modelo (por exemplo,
EXECUTE DBT PROJECT foo ARGS='--select model1'eEXECUTE DBT PROJECT foo ARGS='--select model2'). Fazer isso pode resultar em mensagens de erro internas inesperadas. Execute apenas um comando EXECUTE DBT PROJECT em um determinado objeto de projeto dbt por vez. Se precisar executar vários comandos em paralelo, crie objetos de projeto dbt separados para cada comando simultâneo.O uso de uma configuração de threading no dbt (por exemplo,
threads: 8) é possível e recomendado. A limitação de simultaneidade aplica-se apenas à execução de múltiplas chamadas EXECUTE DBT PROJECT ao mesmo tempo no mesmo objeto de projeto dbt.
Limitações, requisitos e considerações para procedimentos armazenados¶
Quando você usa um procedimento armazenado para chamar EXECUTE DBT PROJECT, usa um procedimento armazenado dos direitos do autor da chamada. Para obter mais informações, consulte CREATE PROCEDURE e Criação de um procedimento armazenado.
Limitações, requisitos e considerações para telemetria, registro em log e rastreamento¶
Os seguintes requisitos, considerações e limitações se aplicam à telemetria, ao registro em log e ao rastreamento para o dbt no Snowflake:
O Workspaces para dbt Projects on Snowflake não transmite o stdout dinamicamente, e o stdout só pode ser visualizado após a conclusão do comando.
A visualização de logs e o rastreamento exigem que você defina LOG_LEVEL e TRACE_LEVEL no objeto de projeto dbt. Para obter mais informações, consulte Controle de acesso para projetos de dbt no Snowflake e Monitorar dbt Projects on Snowflake.
Por padrão, o Snowflake coleta a telemetria na tabela padrão SNOWFLAKE.TELEMETRY.EVENTS. Se você tem uma tabela de eventos personalizada definida como a tabela de eventos em sua conta, os dados de telemetria serão coletados dela. Se você usa uma conta Enterprise Edition, pode criar uma tabela de eventos para coletar os dados de telemetria e associá-los ao banco de dados em que o objeto de projeto dbt está implantado. Para obter mais informações, consulte Visão geral da tabela de evento.
Limitações para o DAG de histórico de consultas¶
O DAG de histórico de consultas requer os artefatos manifest.json e run_results.json para renderizar a exibição. Se a execução de um objeto de projeto dbt falhar antes da geração de run_results.json, a guia DAG em Query Details exibirá «No data available».
Causas comuns de falhas rápidas na execução que impedem a geração de run_results.json incluem:
Privilégios insuficientes para executar o objeto de projeto dbt.
Configuração de projeto inválida (por exemplo, um arquivo
dbt_project.ymlausente ou malformado).Dependências ausentes que não foram instaladas com
dbt deps.
To resolve this, check the dbt Output section in the Query Details tab for error messages, fix the underlying issue, redeploy the dbt project object, and re-execute it. For more information about monitoring dbt project object executions, see Visualizar o DAG do histórico de consultas.