Organização do catálogo
Camadas, prefixos e naming que mantêm o workspace navegável.
- Definir uma convenção de camadas
- Nomear tabelas de forma previsível
- Manter o catálogo navegável conforme cresce
O Catálogo é a lista de tudo que existe no seu workspace: as tabelas, as colunas, as descrições. Com cinco tabelas, qualquer arrumação funciona. Com quinhentas, a diferença entre um catálogo que se navega e um depósito onde ninguém acha nada está em três decisões simples: como separar as camadas, como nomear as coisas e como descrevê-las. Vale combinar isso cedo, porque depois cada tabela nova herda (ou quebra) a convenção.
Uma convenção de camadas
A convenção de camadas fica a critério de cada empresa. Não existe regra fixa: o que importa é ter uma e mantê-la visível no Catálogo, para bater o olho e saber em que estágio uma tabela está.
A sugestão da Nekt é a arquitetura medallion: Bronze (espelho da fonte), Silver (limpo e tipado) e Gold (juntando fontes, com regra de negócio). Mas adapte ao seu caso. Em agências, por exemplo, é comum usar uma camada por cliente, para manter o isolamento dos dados de cada um.
No fim do dia, a camada em si é menos relevante do que bons nomes de tabela, com prefixos claros e uma boa taxonomia. Uma camada perfeita cheia de tabelas mal nomeadas continua um labirinto. Escolha uma convenção de camada, mantenha, e invista a energia nos nomes.
Há duas formas de tornar a camada visível, e você escolhe uma e mantém:
-
Por schema: cada camada é um schema separado
(
bronze.pedidos,silver.pedidos,gold.faturamento). A separação fica estrutural, o Catálogo já agrupa por schema, e fica difícil misturar sem querer. -
Por prefixo: a camada vira um prefixo no nome da
tabela (
bronze_pedidos,silver_pedidos,gold_faturamento). Útil quando tudo vive num schema só, e mantém as camadas de uma mesma entidade lado a lado na lista ordenada.
As duas funcionam. O que não funciona é misturar: metade por schema, metade por prefixo, e ninguém sabe onde procurar. Escolha uma e trate como regra do workspace.
O padrão de nome por camada fica assim, seja como prefixo ou como schema:
| Camada | Prefixo / Schema | Exemplo de tabela |
|---|---|---|
| Bronze | bronze_ ou bronze. |
bronze_hubspot_deals |
| Silver | silver_ ou silver. |
silver_clientes |
| Gold | gold_ ou gold. |
gold_cliente_canal_mensal |
Naming previsível
Um bom nome de tabela é aquele que a pessoa (ou o agente) consegue adivinhar antes de procurar. Isso vem de poucas regras, aplicadas sempre:
-
snake_case sempre: tudo minúsculo, palavras
separadas por underscore. Sem camelCase, sem espaço, sem acento.
cliente_canal_mensal, nuncaClienteCanaloucliente canal. -
Consistência de singular e plural: escolha um
padrão e siga. Se as tabelas de entidade são no plural
(
pedidos,clientes), não apareça comprodutono singular no meio. A inconsistência força a pessoa a lembrar, e ninguém lembra. -
Padrão entidade_grão: deixe o nome dizer sobre o
que a tabela fala e em qual granularidade.
pedidos_diarioé um pedido por dia,cliente_canal_mensalé uma linha por cliente, canal e mês. O grão no nome evita a pergunta "essa tabela está agregada por quê?". -
Sem nomes crípticos nem abreviações pessoais:
tbl1,base_v2edados_finalnão dizem nada a quem chega depois (e "final" nunca é final). Abreviação que só faz sentido na sua cabeça é dívida para o time inteiro.
| Tabela | Lê-se como |
|---|---|
bronze_hubspot_deals |
bruto, deals do HubSpot |
silver_clientes |
tratado, entidade cliente |
gold_cliente_canal_mensal |
consumo, grão cliente/canal/mês |
Descrições e Camada Semântica
Nome bom leva a pessoa até a tabela certa. A descrição é o que explica o que ela realmente contém: o que é uma linha, o que aquela coluna de valor inclui, de onde o dado veio. Na Nekt, essas descrições não são só documentação parada. Elas alimentam a Camada Semântica, que é o contexto que a IA lê pelo MCP para entender o seu dado.
A consequência é direta: uma tabela bem descrita é consumida melhor
por agentes. Quando alguém pergunta "quanto faturamos por canal", o
agente que enxerga uma coluna
faturamento_liquido descrita como "receita sem frete e
sem pedidos cancelados" responde certo. O que enxerga só
valor sem descrição chuta. Descrever tabela e coluna é o
trabalho que separa um dado que a IA usa de um dado que a IA ignora.
Descreva a tabela no momento em que a cria, não depois. É quando você tem o contexto fresco na cabeça: o que é uma linha, por que aquela coluna existe, qual regra aplicou. "Documento depois" vira "nunca documento", e aí o conhecimento fica só na sua memória, fora do alcance do time e da IA.
Como isso escala
A convenção parece burocracia quando o catálogo é pequeno. O valor aparece quando ele cresce. Um catálogo sem convenção vira um depósito: nomes que ninguém entende, camadas misturadas, tabelas duplicadas porque a pessoa não achou a que já existia. Cada nova pergunta começa com uma arqueologia.
Com convenção, o oposto acontece. Qualquer pessoa que chega sabe que
gold_ é dado pronto para consumo, que o grão está no
nome, que a descrição explica o resto. E o agente de IA, que lê o
catálogo pelo MCP, encontra o que precisa sem você ter que explicar. O
catálogo vira um mapa, não um sótão.
Uma agência com 15 clientes conectou Meta Ads, Google Ads e o CRM
de cada um: mais de 40 fontes no mesmo workspace. Sem convenção,
virou uma lista de 200 tabelas com nomes soltos, e achar "o gasto
de mídia do cliente X" era um garimpo. Adotaram prefixo de camada
mais o padrão entidade_grão: gold_midia_cliente_dia,
silver_crm_leads. De repente, o mesmo nome vale para
os 15 clientes, uma pessoa nova acha a tabela no primeiro palpite,
e o agente que monta o relatório encontra a fonte certa sozinho. A
convenção não deixou o catálogo menor, deixou navegável.