Guia de Estilo
Nomenclatura e Organização de Campos
Guia de boas práticas para nomear, ordenar e padronizar colunas de tabelas no Data Lake, promovendo clareza, consistência e facilidade de uso.
Nomeação
Padrão Geral de Nomeação
Todos os nomes de colunas devem seguir o padrão estruturado:
[id_][<entidade>_]<dimensão>[_<unidade>]
Componentes do padrão:
-
id_
(Prefixo opcional):- Use apenas para chaves primárias ou estrangeiras que referenciam entidades do Data Lake.
- Exemplo:
id_cnes
,id_material
,id_municipio
.Exceção: Para identificadores amplamente reconhecidos comocpf
oucns
, o prefixo pode ser omitido para melhor legibilidade.Racional: Agrupa as chaves, facilitando a exploração em ferramentas de dados.
-
<entidade>_
(Prefixo opcional):- Indica a entidade de negócio da coluna, se diferente da entidade principal da tabela. Comum em tabelas desnormalizadas (camada Marts).
- Exemplo: Em uma tabela de
corridas
do Taxi Rio, o nome do motorista seriamotorista_nome
. Em uma tabela demotoristas
do Taxi Rio, seria apenasnome
.Regra: Em tabelas altamente desnormalizadas, use sempre o prefixo da entidade para todas as colunas, facilitando buscas em BI.Recomendação: O BigQuery permite trabalhar com estruturas aninhadas (Struct). Utilize essa tipagem para agrupar todas as dimensões de uma entidade estrangeria.
-
<dimensão>
(Obrigatório):- Parte central do nome, descreve o atributo, métrica ou característica representada.
- Seja conciso e descritivo. Exemplo:
nome
,nascimento
,atendimento
,logradouro
.
-
_<unidade>
(Sufixo opcional):- Indica o tipo semântico ou unidade do dado. Melhora a legibilidade e entendimento.
- Sufixos permitidos:
_nome
: nomes ou descrições_data
: datas_datahora
: timestamps/datetime_valor
: valores monetários ou numéricos gerais_quantidade
: contagens ou quantidades_particao
: reservado para campos que particionam a tabela._proporcao
: porcentagens (0-100)_taxa
: taxas_razao
: razões_indicador
: booleanos (True/False, 0/1)_tipo
: tipos ou classificações_sigla
: siglas ou códigosNota: Unidades físicas como_km
ou_metro
podem aparecer em contextos específicos, mas priorize os sufixos semânticos acima.
Exemplos:
id_estabelecimento
: chave primária de estabelecimentoestabelecimento_nome
: nome do estabelecimentoatendimento_data
: data do atendimentoano
: ano (dimensão apenas, sem sufixo)id_municipio
: chave estrangeira para municípioatendimento_quantidade
: quantidade de atendimentoscorrida_valor
: valor total pagoativo_indicador
: flag de ativoendereco_logradouro_tipo
: sigla do tipo de logradouro
Regras Gerais de Nomeação
- Use nomes já presentes no repositório sempre que possível.
- Seja intuitivo, claro e descritivo.
- Use apenas letras minúsculas, sem acentos, conectadas por
_
. - Não inclua conectores como
de
,da
,dos
,e
,a
,em
, etc.
Exceções
- Padrões externos: Ao integrar dados de padrões externos (ex: GTFS), pode-se manter a nomenclatura original para interoperabilidade, especialmente em camadas Raw/Staging. Documente esses casos.
Ordenamento das Colunas
Padronize a ordem das colunas para facilitar a exploração e consistência:
- Chave primária: Sempre primeiro.
- Ex:
id_atendimento
- Ex:
- Atributos principais da entidade: Descrevem a entidade principal da tabela.
- Ex:
data_atendimento
,tipo_atendimento
,descricao_ocorrencia
- Ex:
- Grupos de chaves estrangeiras: Agrupe chaves estrangeiras (
id_...
) com seus atributos descritivos correspondentes.- Ordene por abrangência (ex: geografia antes de unidade específica).
- Exemplo grupo:
id_paciente
,paciente_nome
,paciente_data_nascimento
- Metadados de processamento: Informações sobre carga, transformação e timestamps de origem.
- Ex:
data_carga
,id_processamento_lote
,fonte_dados_origem
,data_atualizacao_origem
,data_criacao_origem
- Ex:
- Colunas de partição: Colunas criadas para particionamento (geralmente ao final).
- Ex:
ano_particao
,mes_particao
,data_particao
- Ex:
Exceção: nos casos de tabelas estritamente normalizadas, manter as chaves primárias e estrageiras agrupadas no início.
Representação dos Valores
Limpando STRINGs
- Colunas categóricas: inicial maiúscula e resto minúsculo, com acentos.
- STRINGs não-estruturadas: manter igual aos dados originais.
Formatos de valores
- Decimal: formato americano, i.e. sempre
.
(ponto) ao invés de,
(vírgula). - Data:
YYYY-MM-DD
- Horário (24h):
HH:MM:SS
- Datetime (ISO-8601):
YYYY-MM-DDTHH:MM:SS.sssZ
- Valor nulo:
""
(csv),NULL
(Python),NA
(R),.
ou""
(Stata) - Proporção/porcentagem: entre 0-100
Quais variáveis manter, quais adicionar e quais remover
Mantemos nossas tabelas parcialmente normalizadas
, e temos regras para quais variáveis incluirmos em produção. Elas são:
- Remover variáveis já utilizadas como partição. Exemplo: remover
ano
edata
se a tabela é particionada nessas duas dimensões. - Manter todas as chaves primárias que já vêm com a tabela, mas (1) adicionar chaves estrangeiras relevantes (ex.
id_municipio
) e (2) retirar chaves estrangeiras irrelevantes (e.g.regiao
).
Dica: Busque sempre o equilíbrio entre normalização e performance de consulta. Evite redundâncias desnecessárias, mas mantenha colunas que facilitam análises frequentes.