Em funcionamento normal, as empresas modernas coletam e gerenciam milhões de fontes de dados e sinais. Na Snowflake, usamos a plataforma Snowflake internamente para monitorar nossos sistemas de negócios e a telemetria de produtos em grande escala, abrangendo cada consulta, warehouses e cliques. Mas, sem uma compreensão em comum, petabytes de dados brutos se tornam uma fonte de respostas conflitantes, e não uma base para a ação.
Para aproveitar nossos dados em escala, tanto para as pessoas quanto para agentes de IA, mantemos uma camada semântica interna com curadoria. Este artigo mostra como construímos nossa camada de contexto usando semântica e as práticas recomendadas que aprendemos durante o processo.

Figura 1. O ambiente interno da Snowflake usa uma camada semântica para capacitar todas as entidades a consultar dados consistentes e precisos.
O gargalo nunca esteve nos dados, e sim no contexto
A enorme quantidade de telemetria interna torna o sistema incrivelmente poderoso, mas essa mesma escala torna frustrantes os modos de falha. Considere uma pergunta aparentemente simples, como “o que é um cliente ativo?” Essa pergunta pode gerar respostas diferentes em tabelas distintas e definições de métricas variadas:
Ativo é WHERE days_since_last_login < 30 na tabela login_counts
Ativo é WHERE credits_consumed > 0 and account_type != 'TRIAL' na tabela customers
Ativo é COUNT(DISTINCT account_id) sem um identificador de região na tabela customers_with_accounts
Normalmente, com base em nossos casos de uso internos e no que observamos com nossos clientes, a responsabilidade de esclarecer o significado dos dados recai sobre as equipes de ciência de dados: as pessoas criam consultas e as confirmam com um cientista de dados de confiança, que aponta falhas e armadilhas.
O problema de alinhamento se agrava exponencialmente com a IA. Novas métricas e fontes de dados são criadas em velocidade extraordinária, gerando lacunas de informação até para os analistas mais experientes. Se um Cortex Agent reporta um número enquanto um dashboard herdado mostra outro, ninguém sabe em qual fonte confiar.
Uma única definição para cada interface de IA e BI
Toda interface precisa de um significado consistente, ou contexto, para seus dados, o que pode ser alcançado com o uso de uma camada semântica. Uma visualização semântica é um objeto de nível superior que fica entre os consumidores finais e as tabelas de dados brutos, traduzindo a linguagem de negócios governada em esquemas físicos de banco de dados.
Em vez de expor tabelas brutas diretamente a dashboards ou agentes de IA, a visualização semântica padroniza o fluxo de dados das tabelas físicas para fatos, dimensões e métricas. Isso dá às pessoas e às ferramentas um contexto consistente sobre o significado dos dados antes de consultá-los.

Figura 2. Visualizações semânticas consistem em nomes lógicos, métricas e metadados de IA sobre tabelas físicas para viabilizar o consumo posterior.
Os agentes de IA obtêm dois benefícios ao usar visualizações semânticas para consultar dados em grande escala:
Execução mais rápida: os agentes que consultam dados brutos gastam tempo localizando, entendendo e coletando amostras de várias fontes de dados. Em grande escala, esses processos podem dominar o runtime. Em vez disso, os agentes podem usar visualizações semânticas para ir direto à execução de SQL.
Menor custo: os agentes são bem mais eficientes em tokens ao usar relações entre tabelas e dados de junção em visualizações semânticas. Com a materialização, o SQL semântico aproveita nativamente dados pré-agregados, reduzindo o processamento repetido.
Com uma arquitetura de dados orientada à semântica, os retornos se multiplicam rapidamente em todo o stack:
Maior precisão: forneça contexto de negócios preciso aos modelos. No teste de benchmark da AtScale, a adição de contexto semântico aumentou a precisão de text-to-SQL de 20% para mais de 90% em 40 perguntas de negócios no TPC-DS.
Uma única fonte de verdade: substitua semânticas isoladas e específicas de ferramentas por uma única camada semântica.
Governança gratuita: aproveite os controles de acesso nativos do Snowflake em visualizações semânticas e objetos de métricas.
Atendimento self-service de verdade: ofereça suporte a perguntas ad hoc, em linguagem natural, para que qualquer usuário obtenha respostas por conta própria.
"Com visualizações semânticas, obtemos uma camada golden, uma API única e confiável para os dados. Com as materializações de visualizações semânticas, essa mesma API semântica agora atende a todo consumidor downstream dos dados, incluindo casos de uso em que a performance de consulta é crítica. Agora consultas de dashboards, IA e fluxos de trabalho ad hoc podem passar pela mesma API de dados confiável."
Zachary Blackwood
Staff Data Scientist, na Snowflake
A equipe interna de ciência de dados de produto da Snowflake usa um agente que aproveita a camada semântica interna para responder a perguntas sobre o produto em toda a empresa. Somente em julho de 2025, mais de 400 usuários internos distintos executaram mais de 5.400 consultas por meio do agente de ciência de dados de produto e da camada semântica. E, no mesmo período, mais de 5.600 colaboradores internos de todas as equipes e agentes da Snowflake executaram mais de 320.000 consultas usando a ampla camada semântica em vendas, RH, suporte e outras áreas.

Figura 3. Com uma camada semântica unificada, todas as ferramentas e interfaces obtêm um significado de dados consistente e governado.
Práticas recomendadas para a camada semântica
Gerencie versões, teste e avalie as visualizações semânticas
A camada semântica precisa ser tratada com o mesmo rigor de um software em produção. Com a integração nativa do Snowflake com o data build tool (dbt), conseguimos fazer o controle de versão completo, a revisão por pares e aplicar integração contínua e entrega contínua (CI/CD) às nossas métricas. Embora, na Snowflake, crie-se principalmente visualizações semânticas por meio de código, usamos a interface de usuário para testar e sugerir melhorias que se integram ao nosso código. E, como a UI e o código subjacente estão perfeitamente sincronizados, os usuários podem alternar facilmente entre construir uma visualização na UI do Snowflake e confirmar campos em repositórios.
Para avaliar as visualizações semânticas, precisávamos ter acesso às perguntas que as pessoas realmente fazem. Uma fonte valiosa de sinais para avaliações são os blocos de dashboard populares, que são construídos e usados exatamente para responder a perguntas. Também fazemos o log das perguntas mais comuns para refinar nossos conjuntos de avaliação.
Priorize a performance com a engenharia de dados
Se a sua camada semântica estiver sobre consultas lentas e tabelas mal construídas, seus agentes de IA serão lentos. No início, tentamos apontar uma visualização semântica para várias tabelas de eventos brutas, com bilhões de registros. Cada vez que um usuário fazia uma pergunta, a visualização percorria e unia essas tabelas, resultando em uma latência enorme.
Inicialmente, criamos e mantivemos nossos próprios recortes pré-agregados com Dynamic Tables. Cada dashboard tinha o rollup e a granularidade de que precisava. No entanto, à medida que expandíamos nossa cobertura semântica para dar suporte a novas perguntas e domínios, tivemos que adicionar manualmente novos pipelines e tabelas, além de manter um ambiente em rápido crescimento.
Com as materializações de visualizações semânticas, conseguimos modelar visualizações semânticas diretamente em tabelas de origem de alta granularidade e declarar quais combinações de dimensões e métricas precisam ser rápidas. O Snowflake mantém esses recortes de forma inteligente em segundo plano, ajudando a reduzir os tempos de resposta.
Como um bônus, usamos o Snowflake CoCo para elaborar e refinar nossos processos semânticos e de dados, já que suas habilidades integradas para visualizações semânticas foram criadas especificamente para esses casos de uso.
Faça curadoria incansável e roteamento inteligente
Uma camada semântica desorganizada e inconsistente frustra o propósito de padronizar métricas. Para as principais áreas de produto que são consultadas com frequência, fazemos a curadoria de visualizações semânticas (usando o CoCo) para responder a perguntas específicas que temos em mente. Todas as consultas são registradas no Snowflake, incluindo os resultados retornados. Com isso, conseguimos criar facilmente novas visualizações semânticas e consultas verificadas para expandir continuamente nosso alcance de acordo com o que nossos usuários estão perguntando.
Para o roteamento inteligente, os Cortex Agents verificam automaticamente todas as visualizações semânticas usando nossas instruções de roteamento personalizadas para encontrar o contexto certo para uma determinada consulta. E para uma cobertura ampla da longa série de dados, utilizamos o Cortex Sense, que avalia os dados em todo o nosso acervo para ajudar a encaminhar as perguntas para conjuntos de dados relevantes.
Crie sua camada semântica hoje mesmo
Dados brutos não respondem a perguntas; o contexto sim. A camada semântica funciona como essa “camada de ouro”, definindo a lógica de negócios uma única vez para viabilizar todos os dashboards, apps do Streamlit e Cortex Agent em toda a empresa com agentes de IA.
Podemos começar com uma visualização semântica útil em apenas um arquivo. Note que estamos usando o YAML neste exemplo, mas o uso de SQL para definir visualizações semânticas também é totalmente compatível.
name: account_activity_model
tables:
- name: daily_account_usage
base_table:
database: core
schema: metrics
table: daily_account_usage
dimensions:
- name: region
expr: region
data_type: VARCHAR
description: "The geographic region of the account." # AI metadata
synonyms: ["location", "geography", "area"] # AI metadata
metrics:
- name: compute_spend
expr: SUM(credits_used)
description: "The total number of Snowflake credits consumed." # AI metadata
synonyms: ["cost", "spend", "credits used", "usage"] # AI metadata
verified_queries: # AI metadata
- name: total_spend
question: "What is the total compute spend?"
use_as_onboarding_question: true
sql: |
SELECT
SUM(credits_used) AS compute_spend
FROM core.metrics.daily_account_usage
ORDER BY compute_spend DESC
Agora, podemos consultar a visualização semântica diretamente usando SQL padrão, sem se preocupar com junções subjacentes ou nomes de colunas brutas:
SELECT
region,
AGG(compute_spend) as compute_spend
FROM account_activity_model
GROUP BY region
ORDER BY compute_spend DESC;
Para melhorar a performance, também podemos materializar essa visualização semântica para pré-agregar métricas (compute_spend) em dimensões (region):
ALTER SEMANTIC VIEW account_activity_model SET MAX_STALENESS = '1 hour';
ALTER SEMANTIC VIEW account_activity_model
ADD MATERIALIZATION spend_by_region
WAREHOUSE = semantic_wh
AS
DIMENSIONS
region
METRICS
compute_spend;
As visualizações semânticas do Snowflake também são interoperáveis com Apache Ossie™ (incubating). O Ossie é o padrão aberto independente de fornecedor para modelos semânticos e de contexto de negócios. Isso permite que você use sua semântica com a ferramenta e a plataforma de sua escolha. Mesmo que seus modelos semânticos estejam armazenados em outro lugar, você sempre pode lê-los no Snowflake com uma única chamada de função:
SELECT SYSTEM$READ_OSSIE_YAML_FROM_SEMANTIC_VIEW('db.schema.account_activity');
A semântica é a base compartilhada de todo o stack de IA e a análise de dados. Comece a construir uma fonte de verdade única e governada usando o Snowflake hoje mesmo, e acompanhe nosso próximo artigo, no qual abordaremos estudos de caso reais de clientes que aproveitam a semântica em produção.

