GH GambleHub

Origem dos dados

Origem dos dados (Lineage)

1) O que é lineage e o que é necessário

O Data Lineage é uma gravação formal «de onde os dados vieram, como eles se transformaram, onde e quem foram usados». O resultado é um gráfico orientado de dependências com atributos (tempo, versões, proprietários, transformações, políticas de acesso, qualidade) que torna o sistema de dados compreensível e audível.

Valor de negócio:
  • Transparência das métricas (finanças, produto, risco): "Por que o número X = 1.234? ».
  • Análise rápida de impactos de mudanças (padrão/se): «o que vai quebrar se»....
  • Conformidade e auditoria (GDPR/ISO/SOC): caminho de campo comprovado.
  • Agilizar e reduzir toil (auto-serviço de conhecimento).
  • Melhor qualidade: Verificações de metas onde o risco é maior.

2) Áreas de cobertura e níveis de detalhe

Nível de streaming (pipeline/job): Quais jobs/orquestradores geraram datasets.
Nível de dataset (mesa/view/topic/arquivo): entradas → saídas, versões/saques.
Nível de coluna (column/função-level): como cada campo é calculado, a partir de quais origens.
Camada de consumo: relatórios BI, API, ML, dashboard e alertas.

Para entidades críticas (dinheiro, regulação), é obrigatório um detalhe column-level.

3) Modelo de dados lineage: entidades-chave

Dataset: `{urn, type, schema, owners, pii_class, retention, tags}`

Job/Task: `{urn, code_ref, version, runtime, schedule, owners}`

Run/Execution: `{run_id, job_urn, start/end, status, inputs[], outputs[], code_sha, infra}`

Field: 'a.daploot _ urn, name, tipo, derivation a.' (derivação - expressão/AST/operador).

Policy: `{dataset_urn/field, access_rules, masking, consent_scope}`

Quality Check: `{check_id, scope, rule, severity, result}`

4) Fontes lineage: montagem passiva vs ativa

Ativo (event-based): ferramenta orquestradores/motores (Spark/DBT/SQL engines/Kafka) para emitir eventos «job started/finished, inputs/outputs, column-maping».

Os benefícios são precisão, relevância, minimização do pós-parsing.
Passivo (inference): parsim DAG 'i, SQL/DDL/logs de solicitação, logs de diretório/armazenamento; construímos dependências de forma retroativa.

Benefícios: abrangência rápida da herança; contras: menos precisão em column-level.

Normalmente aplicam híbrido, eventos ativos onde você pode e análises passivas como «grade de seguro».

5) Arquitetura de solução (referência)

Producers (orquestradores/motores) → Pneu de eventos lineage → Normalizador → Armazenamento de conde → Índice/pesquisa → UI/API/alertas → Exportação/catálogo.

Eventos: unificado (job/run/datse/column-lineage), com URN e versões semânticas.
Armazenamento de gráficos: grafo column-level (por exemplo, baseado em BB de gráficos ou relatório + inverted index).
UI: visualização interativa dos caminhos mais curtos, impacto/raiz-causa, «sinais de qualidade» nas costelas e nódulos.
Integração: diretório de dados, sistema de qualidade (DQ), controle de acesso (ABAC), auditoria (append-only revistas).

6) Identificadores e versionização

URN/Global ID para cada dataset/jobs/campo: estável, humano, incluindo plataforma/neimspace/nome/versão.
Versões de padrão (SchemaVersion) e de código (código SHA, imagem digest).
Imagens de tempo do gráfico (time-travel lineage): reprodução de investigação.

7) Column-level lineage: como obter fielmente

SQL-parsing com ASTT e normalização de aliass/STE/uch.
Anotações em código de transformação (DBT tests, comentes primitivos, UDF-metadata).
Eventos dos motores: especifica as expressões "target. col = f(src. a, src. b)».
Regras semânticas: UDF/ops de agregação são marcados como «lossy» (com perda de granularidade) ou «sensitivo-reserving» (remetendo marcas PII).

8) Comunicação lineage com privacidade e segurança

Private by Design: marcas dos campos "pii _ class'," consent _ scope "," retenção ". Quando você promove colunas, as marcas são transmitidas de acordo com as regras (por exemplo, «email → hash _ email» fica PII-derived).
O tocening PII: lineage armazena o torneamento/detonação e os nódulos do serviço de token; Qualquer detecção é um evento de auditoria.
Criptografia: para campos AEAD/FPE lineage registra «estado cripto» e área-chave (tenant/scope) sem divulgação de chaves.
Auditoria e WORM: Eventos lineage e alterações de políticas são armazenados em um registro imutável (append-only com cadeias de hash).

9) Qualidade de dados e SLO baseado em lineage

Cheques nas costelas: frescura (freshness), totalidade (completeness), exclusividade/chaves, à deriva das distribuições.
SLO/SLI: «95% dos DVDs que alimentam as métricas finotchet estão concluídos ≤ 06:00 UTC».
Root-causa: O gráfico + os tempos de execução fornecem uma definição rápida do «primeiro nó quebrado».

10) Análise e gerenciamento de alterações

Quando você está programado para alterar o padrão/lógica: por gráfico para baixo em fluxo (downstream), uma lista de relatórios/modelos/clientes API afetados.
Política «breaking changes»: aviso obrigatório aos donos de artefatos downstream, período grace, versões paralelas («v1 »/« v2») e bandeira «sunset-data».
PR/tíquetes automáticos com lista de consumidores e folha de migração.

11) Integração com orquestradores e motores

Orquestradores: antes/depois do job, os eventos 'RunStarted/RunCompleted' com inputs/outputs são emitidos.
SQL/ELT: Conectores a motores (warehouse, lakehouse) para obter o plano real de execução e mapping das colunas.
Stream-processing: lineage de mensagens (topic→topic, key/headers), esquemas Avro/Protobuf, evolução dos circuitos através de registry.
ML: lineagem de fichas/datasets, versões do modelo, artefatos de treino, fontes de sinais.

12) Simulação de regras de enunciação de marcas (data contracts)

Contrato de conjunto de dados: esquema + semântica de campos (chaves, PII, agregabilidade, licenças/bases legais, retenção).

Regras de enaltecimento:
  • 'SELECT a, b FROM T' → mover as marcas 'a, b'.
  • 'hash (email)' → marca 'PII-derived (pseudonymized)', impedindo a detonação.
  • 'SUM (amount)' → perda de personalidade; não são permitidos os join's no campo de resultados.
  • Os contratos são validados em CI (blocker em caso de inadimplência) e as violações são eventos de auditoria.

13) Desempenho e escala

Injeção de eventos lineage aumentada; Deduplicação por '(run _ id, job _ urn)'.
Armazenamento do gráfico: divisão do índice quente (últimos 30 a 90 dias) e do arquivo; Os rapazes.
Armazenamento de caminhos em dinheiro para consultas frequentes (caminhos curtos para métricas douradas).
Charding por neymspace/locatários; proteção contra «nódulos monstros» (limite de fã-out).

14) Visualização e UX

Modos:
  • Path to metric: «De onde se compõe a métrica».
  • «Quem será afetado pela alteração».
  • Field lineage: «como o campo foi calculado».
  • Overlay: estatais, qualidade, marcas PII, reticências, proprietários.
  • Acção: abrir um contrato, criar um tíquete de migração, inscrever-se em alertas de mudança.

15) Segurança de acesso ao grafo

ABAC: A visibilidade dos nódulos/costelas é limitada por locatários/papéis.
Redaction: esconde os nomes de campos sensíveis (ou o seu pseudônimo) na UI para papéis não preparados.
mTLS/OIDC para API; os eventos lineage são assinados por identidades de serviço.
WORM e controle de leitura: a leitura dos segmentos críticos do gráfico também é revista.

16) Operação: SLO, monitoramento, alertas

SLO grafo: atraso na chegada do evento <5 min; A totalidade da cobertura> 98% dos piplins críticos; 100% das «metricas de ouro» têm column-level lineage.
Alerts: ruptura da cadeia, run sem eventos de conclusão, incoerência dos circuitos, datasets «órfãos», crescimento do fã-out/ciclos.
Relatórios: «state of lineage coverage» semanal, top 10 nós de risco.

17) Privacidade e complacência (laços)

GDPR/PbD: Armazenar as bases de processamento e retenção como marcas de formatação; lineagem permite uma rápida busca DSAR de caminhos e «direito de remoção» através da criptato em cascata-remoção de segmentos relevantes.
Gerenciamento de segredos: fontes de acesso a matérias-primas nunca entram no lineage como créditos abertos; apenas um link para o papel/política é armazenado.
Arquivos/registros inalterados: Todos os eventos lineage estão assinados e fixados no armazenamento append-only (consulte o artigo apropriado).

18) Folhas de cheque

Antes de começar:
  • Acordos URN definidos para datasets/jobs/fields.
  • Está ativada a emissão de eventos lineage de orquestradores e motores.
  • Funciona o parser SQL/DDL e o normalizador de circuitos.
  • Aprovados data-contracts e regras de enunciação PII/retenções.
  • O registro de eventos do WORM e as cópias de segurança do gráfico foram configuradas.
  • BI/ML estão conectados como consumidores lineage (relatórios, modelos, fichas).
Exploração:
  • A cobertura lineage para domínios críticos ≥ 98%, column-level para «dinheiro» = 100%.
  • Alertas para quebras, datasetes «órfãos», à deriva de esquemas incluídos.
  • Auditoria trimestral de marcas PII e contratos.
  • Processamento de alterações (breaking) e distribuição aos consumidores.

19) Mini-receitas

Evento RunCompleted (pseudo-JSON):
json
{
"event": "RunCompleted",
"run": {
"id": "run_2025-10-31T14:20:00Z_42",
"job": "urn:job:etl:finance:close_books_v3",
"status": "SUCCESS",
"code_sha": "b3f9…",
"started_at": "2025-10-31T14:05:00Z",
"ended_at": "2025-10-31T14:19:52Z"
},
"inputs": [
"urn:dataset:lake:bank_txn_v2",
"urn:dataset:warehouse:fx_rates_d+1"
],
"outputs": [
"urn:dataset:warehouse:pnl_daily_v3"
],
"column_lineage": [
{
"output": "pnl_daily_v3. pnl_usd",
"expr": "SUM(txn. amount_local fx. rate)",
"inputs": ["bank_txn_v2. amount_local", "fx_rates_d+1. rate"],
"lossy": true
}
]
}
Regra PII (ideia):

if input. field. pii in {email, phone, id} and transform in {hash, tokenize}:
output. field. pii = "pseudonymized"
elif transform in {aggregate, anonymize_k}:
output. field. pii = "anonymous"
else:
output. field. pii = input. field. pii

«O que vai quebrar»


affected = downstream(urn:"urn:dataset:warehouse:users_v4", depth=4)
filter affected where kind in {"dashboard","model","api"} and owner not in {"team-exp"}

20) Erros frequentes e como evitá-los

Lineage «por imagem» sem modelo formal. Você precisa de eventos/esquemas/URN, senão o conde não é escalado.
Não há column-level onde «dinheiro». Sem nível de coluna, os cálculos não podem ser explicados.
Eventos incompletos (sem código _ sha/versão de circuitos). Não é possível reproduzir.
Ignorando a privacidade. As marcas PII devem ser vividas e transportadas com os campos.
Um grande BB de gráficos sem charding. Divida-se por neymspace, guarde-os.
Fé cega nos parsers. Em casos controversos, eventos ativos de motores.

21) Runbook’и

O incidente é que a métrica saltou.

1. Abrir «Path to metric» → verificar os últimos 'Run' nós no caminho.
2. Comparar versões de código/padrão, status de cheques DQ nas costelas.
3. Se você encontrar um elo quebrado, criar um tíquete para o proprietário, incluir a publicação temporária «hold» da métrica.
4. Depois do fixe, marcar RCA e associar aos nódulos do grafo.

Altera o padrão de origem.

1. Solicitar impacto downstream.
2. Enviar notificações aos proprietários, criar um PR's de migração.
3. Elevar o paralelo 'v _ next', manter as duas versões até a data sunset.
4. Fechar 'v _ v', atualizar contratos e um gráfico lineage.

Matérias relacionadas:
  • «Privacy by Design (GDPR)»
  • «Toquenizar dados PII»
  • «Gestão de segredos»
  • «Auditar e Registos Imutáveis»
  • Criptografia At Rest/In Transit
  • Gerenciamento de chaves e rotação
Contact

Entrar em contacto

Contacte-nos para qualquer questão ou necessidade de apoio.Estamos sempre prontos para ajudar!

Telegram
@Gamble_GC
Iniciar integração

O Email é obrigatório. Telegram ou WhatsApp — opcionais.

O seu nome opcional
Email opcional
Assunto opcional
Mensagem opcional
Telegram opcional
@
Se indicar Telegram — responderemos também por lá.
WhatsApp opcional
Formato: +indicativo e número (ex.: +351XXXXXXXXX).

Ao clicar, concorda com o tratamento dos seus dados.