Pular para o conteúdo

O cru nunca se perde: colunas técnicas, partição, cluster, PII

Aula 6 de 127 minOperarAtualizada em 2026-10-04

Vídeo em produção

A gravação desta aula está no lote de produção. O objetivo, o exercício e a documentação já valem. Duração-alvo: 7 min.

Objetivo: Configurar partição/cluster e marcar PII

Selo de estado: Preview (teto atual do produto) · Curso ACD-220 — Pipelines e medalhão Bronze/Silver/Gold · Aula 6 de 12 · Atualizado em 2026-10-04.

Objetivo#

Ao final desta aula você vai configurar partição/cluster e marcar PII — deixar a Bronze barata de consultar e o dado pessoal protegido, sem perder uma linha do cru.

Vídeo#

Identificador no manifesto: acd-220-06-bronze-camada-crua · duração-alvo 7 min · tela do produto: /sources.

Roteiro de gravação (5 capítulos):

#Minutagem-alvoCapítuloTela do produto
10:00–0:40Abertura: título + selo. O princípio da camada: nada é descartado na Bronze./sources
20:40–2:10Sub-seção Particionamento e colunas técnicas: Coluna de partição (as de data marcadas "— data, ideal")./sources
32:10–3:40Clusterização (até 4 colunas): a ordem em que você marca importa; chips cinzas de tipo não clusterizável./sources
43:40–5:30Colunas técnicas de linhagem (_arquivo_origem, _ingestao_em) e a sub-seção Colunas PII (anonimizadas) com as sugeridas./sources
55:30–7:00Datasets por workspace e o profiling seguro (PII vira •••); encerramento com o "faça você mesmo"./dados

Conteúdo#

O cru nunca se perde

A Bronze recebe cada linha da origem verbatim: como texto, sem conversão, com carimbos de auditoria, garantindo o número de campos (faltante entra como ""). Nenhuma linha é descartada na Bronze — nem a que vai reprovar na limpeza. É a sua retenção do dado original, e é o que permite reprocessar sem voltar à origem.

Onde fica cada carimbo

Dois conjuntos de colunas técnicas convivem, e vale não confundir:

ColunaDe onde vemPara que serve
_ingest_at, _source, _rowCarimbos da ingestão verbatim na implementação de referênciaAuditoria da linha: quando chegou, de onde, qual linha do arquivo
_arquivo_origemCaixa "Adicionar coluna com o nome do arquivo de origem" (opcional)Linhagem: de qual arquivo cada linha veio — útil principalmente em fontes de arquivo
_ingestao_emCaixa "Adicionar data/hora de inclusão" (ligada por padrão)Linhagem: o momento da carga. Boa prática; deixe ligada

Partição: a decisão que mais barateia consulta

Na sub-seção Particionamento e colunas técnicas, o campo Coluna de partição lista todas as colunas com o tipo ao lado, e as de data/timestamp vêm marcadas "— data, ideal". A opção padrão é "— sem partição —". O texto da tela diz o motivo: "particionar por uma coluna de data deixa as consultas mais rápidas e baratas (lê só as partições necessárias)". Como o custo deriva dos bytes lidos, partição é a alavanca de FinOps mais direta que você tem na Bronze.

Quando as colunas só serão conhecidas no processamento (bancos em modo pull), a tela diz isso e não oferece partição agora — você volta a configurar no hub da fonte depois da primeira descoberta.

Clusterização: até quatro colunas, na ordem em que você marca

Clusterizar agrupa as linhas pelas colunas escolhidas, acelerando filtros e joins por elas. Três regras da tela:

  1. Até 4 colunas. Ao atingir o limite, os outros chips ficam desabilitados.
  2. A ordem importa — é a ordem em que você marca os chips.
  3. Tipos aceitos: inteiros, texto, datas e booleanos. Números decimais (FLOAT64) não são aceitos — o chip aparece cinza e opaco, com o motivo no título.

Boas candidatas são colunas muito usadas em filtro (cliente_id, status). E uma dica que a etapa Carga reforça: quando a coluna-chave de controle do Append também é a coluna de partição (ou está no cluster), aparece o selo "coluna particionada — ideal para Append" — a janela do incremental passa a ler menos ainda.

PII: marcar é uma decisão de LGPD, não de estética

A sub-seção Colunas PII (anonimizadas) pede: "marque dados pessoais (CPF, e-mail, telefone, nome)". O efeito está escrito logo abaixo e é preciso: "eles ficam anonimizados nas consultas — só na nossa camada, sem alterar o BigQuery". Ou seja: a marcação não reescreve o dado no datalake; ela muda o que sai nas consultas e no profiling.

O produto sugere colunas pela leitura do nome (um chip extra diz "sugerida") e oferece "Marcar sugeridas (N)" / "Desmarcar sugeridas". Sugestão não é decisão: conferir a lista é trabalho seu.

O que a marcação muda no profiling (o perfil que o catálogo mostra de cada coluna):

Situação da colunaO que o perfil mostra
NormalTipo declarado × inferido, % de nulos, distintos (estimativa), mínimo/máximo, comprimento médio e até 5 exemplos
PIIExemplos viram •••; mínimo, máximo, distintos e comprimento são suprimidos. Só a % de nulos sobrevive
Oculta por governançaNem aparece — o nome da coluna não viaja

E os tetos do profiling, que explicam por que uma tabela larguíssima aparece cortada com aviso: 50 colunas, exemplo de 60 caracteres, payload total ≤ 32 KiB.

Onde a Bronze mora

Cada workspace tem datasets próprios — <prefixo>_bronze, <prefixo>_silver, <prefixo>_gold — e uma área de landing gs://{bucket}/landing/{prefixo}/.... O prefixo deriva do workspace e é saneado para [a-zA-Z0-9_-]. Um cliente nunca cruza dataset ou bucket de outro: é invariante do produto, não configuração. No caminho de arquivo e SaaS, os brutos vão para a landing em NDJSON (um objeto por linha) e um único load job lê o conjunto de pedaços.

Exemplo: a Comércio Aurora

Em aurora_bronze, Maria configura vendas com partição em data_pedido e clusterização em filial_id e categoria (nessa ordem — os dashboards filtram por filial primeiro). valor é decimal, então o chip de cluster aparece cinza: não dá e não deveria. Em clientes, o produto já sugere cpf, email e telefone; ela usa Marcar sugeridas (3), confere a lista e acrescenta nome na mão. Depois, no catálogo, o perfil de cpf mostra exemplos ••• e nenhum mínimo/máximo — enquanto as 2.400 linhas cruas continuam intactas na Bronze.

Erros comuns

SintomaCausa provávelO que fazer
Chip de cluster cinza e não clicaA coluna é FLOAT64 (decimal)Clustering aceita inteiro, texto, data e booleano — escolha outra
Não consigo marcar a 5ª coluna de clusterTeto de 4 colunasRemova uma; priorize as mais usadas em filtro
"As colunas serão conhecidas ao processar"Banco em pull, sem descoberta aindaVolte a configurar partição/cluster/PII no hub da fonte depois da 1ª carga
Marquei PII e o dado continua lá no BigQueryÉ o comportamento declaradoA anonimização é nas consultas, na nossa camada; não altera o datalake
O perfil de uma coluna veio quase vazioA coluna está marcada como PIIEsperado: só a % de nulos sobrevive
Uma coluna não aparece no perfilEstá oculta por governançaO nome não viaja de propósito; trate pela governança
Consulta na Bronze está caríssimaSem partição, lendo tudoDefina a coluna de partição de data e refaça a medição

O que é Preview aqui

O profiling determinístico e a amostra mascarada são provados por teste (C04.2 = GA-candidato). A varredura real depende da chave de desligamento de amostragem de dados e do BigQuery do workspace — Preview. A Bronze verbatim e os datasets por workspace são o contrato; o custo faturado em BRL continua não medido.

Faça você mesmo#

No workspace de treino Aurora Varejo, nas tabelas vendas e clientes, só com dados sintéticos.

  1. Em /sources, abra o pipeline e vá à etapa Carga. Em vendas, abra Particionamento e colunas técnicas.
  2. Em Coluna de partição, escolha data_pedido — confirme que ela aparece marcada "— data, ideal".
  3. Em Clusterização (até 4 colunas), marque filial_id e depois categoria. Tente marcar valor e leia por que o chip está desabilitado.
  4. Confirme que "Adicionar data/hora de inclusão" (_ingestao_em) está ligada; decida se precisa de _arquivo_origem e justifique.
  5. Em clientes, abra Colunas PII (anonimizadas), use Marcar sugeridas e confira a lista: cpf tem de estar marcada. Acrescente nome na mão.
  6. Publique e rode a carga. No Console de dados, confirme que a contagem bruta de clientes é a esperada — nada foi descartado na Bronze.
  7. Abra o perfil de clientes no catálogo e confirme que cpf mostra ••• nos exemplos, sem mínimo/máximo nem distintos.

Você terminou quando vendas está particionada por data e clusterizada por duas colunas na ordem que você escolheu, clientes.cpf está marcada como PII, o perfil de cpf sai mascarado, e a contagem crua na Bronze continua completa.

Checagem rápida#

Três perguntas no final da aula, corrigidas no servidor. A aula só conta como concluída depois da checagem.

Documentação relacionada#

Capacidades ensinadas#

C04.2 — o selo exibido na aula é sempre o estado mais conservador entre as capacidades citadas; nada aqui é "GA".

Carregando seu progresso…