Adicione tags, acompanhe e otimize cada modelo dbt — desde a atribuição de custos e depuração de desempenho até o monitoramento do ambiente — com apenas uma linha de configuração ou o Genie.
Seu projeto dbt executa 80 modelos todas as noites. A fatura do warehouse dobrou no último trimestre. O desempenho dos modelos varia muito, e os efeitos das otimizações mais recentes não estão claros. O setor financeiro pergunta qual equipe é a responsável. Você abre o histórico de consultas e vê... 80 linhas idênticas rotuladas como 'Databricks Dbt'. Boa sorte.
Com as Query Tags (agora em Public Preview), as equipes de dados agora podem se beneficiar de tags injetadas automaticamente prontas para uso, como dbt_model_name, que enriquecem cada execução. Você também pode anexar suas próprias tags personalizadas — equipe, centro de custo, ambiente, qualquer coisa — a cada consulta que seu pipeline gera.
As tags são registradas em system.query.history, fazendo com que a atribuição de custos, a depuração de desempenho e o monitoramento de carga de trabalho estejam a apenas uma consulta SQL de distância (detalhes completos na documentação).
Este blog apresenta um projeto dbt de código aberto completo que demonstra as Query Tags de ponta a ponta: da configuração aos dashboards de atribuição de custos. Tudo o que é descrito aqui está disponível como um repositório do GitHub que você pode clonar e implantar em seu próprio workspace, ou simplesmente perguntar ao Genie.
O adaptador dbt-databricks (versão 1.11+) suporta Query Tags nativamente. Existem três níveis nos quais as tags podem ser aplicadas, cada um baseado no anterior:
Além de suas tags personalizadas, o dbt-databricks injeta automaticamente metadados sobre a execução de cada modelo:
Tag | Valor de exemplo | Descrição |
@@dbt_model_name | fct_daily_usage_by_sku | O modelo dbt que está sendo executado |
@@dbt_materialized | table | Estratégia de materialização (table, view, incremental, metric_view) |
@@dbt_core_version | 1.11.6 | dbt-core versão |
@@dbt_databricks_version | 1.12.0a1 | dbt-databricks versão do adaptador |
Essas auto-tags significam que você obtém visibilidade por modelo com configuração zero — o adaptador faz isso por você.
A abordagem mais simples: adicione um campo query_tags a um destino específico em seu perfil dbt. Cada consulta no projeto herda essas tags automaticamente.
Por exemplo, esta única linha marca cada consulta com quatro dimensões: quem é o proprietário (team), para onde vai o custo (cost_center), a qual pipeline ela pertence (project_name) e em qual ambiente ela é executada (env).
Para uma atribuição mais granular, você pode fornecer tags em modelos específicos no dbt_project.yml ou na configuração do modelo em sua definição sql.
As tags no nível do modelo se fundem com as tags no nível do perfil. Se ambos definirem a mesma chave, o valor no nível do modelo terá prioridade.
Depois de executar dbt run, cada instrução SQL aparece em system.query.history com a coluna query_tags preenchida como um MAP. Você pode consultá-la usando a sintaxe padrão de acesso a mapas:
Isso retorna cada consulta marcada dos últimos 7 dias, com as tags personalizadas e injetadas automaticamente extraídas em colunas individuais — prontas para agregação.
Você também pode encontrar as Query Tags para a consulta que executou na UI do Histórico de Consultas ou na UI de Monitoramento do SQL Warehouse.

No canto inferior direito do Perfil de Consulta, você verá as Query Tags que definiu, fornecendo todas as informações necessárias em um piscar de olhos.

As Query Tags permitem que a atribuição de uso granular seja determinada diretamente por meio de consultas SQL, eliminando a necessidade de análise manual de logs ou divisão de recursos do warehouse.
Você pode responder a isso de duas maneiras: pergunte ao Genie em linguagem natural para exploração ad-hoc ou escreva você mesmo o SQL para obter um resultado repetível e pronto para o dashboard. Ambos leem os mesmos dados de system.query.history .

Genie escreve e executa a consulta equivalente, e você continua detalhando com perguntas de acompanhamento sem precisar tocar em nenhum SQL.
Qualquer um dos caminhos retorna o mesmo cenário. Em nosso projeto de referência, as quatro tabelas mart (materializadas como table) dominam o tempo de computação, enquanto as views de staging e as views de métricas são quase instantâneas. Isso informa imediatamente onde os esforços de otimização devem se concentrar.

Nosso projeto de referência inclui um dashboard de AI/BI que consulta system.query.history filtrado pelas próprias query tags do projeto. O resultado: o pipeline que analisa os dados de faturamento também rastreia seus próprios custos — fazendo dogfooding das Query Tags em si mesmo.
O dashboard inclui:
Em nosso projeto de referência, os quatro modelos mart representaram 92% do tempo de computação — sem as Query Tags, essa percepção seria invisível.

Criar esse dashboard você mesmo leva minutos com o Genie Code: basta solicitar o tempo de computação por modelo dbt a partir de system.query.history filtrado por suas query tags, e ele escreve o SQL e monta os recursos visuais. Se preferir ir direto para o resultado final, o dashboard também vem no projeto de referência e é implantado com um único databricks bundle deploy junto com o job dbt (consulte o repositório do GitHub para obter o guia detalhado).
As metric views do Databricks (disponíveis com dbt-databricks 1.12+) são um novo tipo de materialização que define semânticas de negócios reutilizáveis na forma de dimensões e medidas diretamente no Unity Catalog (consulte a documentação completa). Elas podem conter Query Tags como qualquer outro modelo, usando o parâmetro de configuração query_tags:
Observe a distinção: query_tags são anexadas às consultas SQL que criam ou atualizam a metric view (rastreadas em system.query.history), enquanto databricks_tags são tags do Unity Catalog no próprio objeto (para governança e descoberta). O primeiro serve para rastreamento no nível da consulta, enquanto o segundo é no nível do objeto do Unity Catalog para a descoberta geral de dados.
Neste artigo, abordamos o processo holístico para construir uma prática sólida de FinOps, onde as Query Tags são fundamentais para a atribuição de custos. Aqui está o que aprendemos ao construir o projeto de referência e conversar com usuários avançados do dbt:
O projeto de referência completo está disponível no GitHub: github.com/databricks-solutions/dbt-query-tags
Para começar:
Substitua pelos valores de sua própria equipe e centro de custo. O padrão funciona para qualquer projeto dbt no Databricks.
Clone o repositório hoje mesmo! Basta uma linha em seu perfil para desbloquear a visibilidade de atribuição de uso no nível do modelo em todo o seu warehouse.
(Esta publicação no blog foi traduzida utilizando ferramentas baseadas em inteligência artificial) Publicação original
Assine nosso blog e receba os posts mais recentes diretamente na sua caixa de entrada.