Maglumatlaryň gelip çykyşy
Maglumatlaryň gelip çykyşy (Lineage)
1) Lineage näme we näme üçin zerur?
Data Lineage - "maglumatlaryň nireden gelendigi, nädip üýtgedilendigi, nirede we kim tarapyndan ulanylandygy" barada resmi ýazgy. Netije - maglumat ulgamyny düşündirilýän we auditoriýa edýän atributlar (wagt, wersiýalar, eýeler, üýtgeşmeler, elýeterlilik syýasaty, hil) bilen gönükdirilen garaşlylyk grafasy.
Iş gymmaty:- Metrikleriň aç-açanlygy (maliýe, önüm, töwekgelçilik): "Näme üçin X = 1 234 sany? ».
- Üýtgeşmeleriň çalt impakt-derňewi (shema/job): "Eger näme bozulsa"....
- Laýyklyk we audit (GDPR/ISO/SOC): subut edilip bilinjek meýdan ýoly.
- Onbordingiň tizlenmegi we toil-iň peselmegi (bilimlere öz-özüne hyzmat etmek).
- Hiliň gowulaşmagy: töwekgelçilik ýokary bolan ýerlerde maksatly barlaglar.
2) Örtügiň ugurlary we jikme-jiklikleriň derejesi
Akym derejesi (pipeline/job): haýsy joblar/orkestratorlar datasetleri döretdi.
Dataset derejesi (table/view/topic/file): girişler → çykyşlar, wersiýalar/snapshotlar.
Sütün derejesi (column/feature-level): her bir meýdanyň nähili hasaplanandygy, haýsy çeşmelerden gelendigi.
Sarp ediş gatlagy: BI, API hasabatlary, ML modelleri, daşbordlar we duýduryşlar.
Möhüm zatlar üçin (pul, düzgünleşdiriji) - hökmanydyr column-level jikme-jiklik.
3) Lineage data modeli: esasy zatlar
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: '{dataset _ urn, name, type, derivation}' (derivation -/AST/operator).
Policy: `{dataset_urn/field, access_rules, masking, consent_scope}`
Quality Check: `{check_id, scope, rule, severity, result}`
4) Lineage çeşmeleri: işjeň vs passiw ýygnamak
Işjeň (event-based): "job started/finished, inputs/outputs, column-mapping" wakalaryny çykarmak üçin orkestratorlary/hereketlendirijileri (Spark/DBT/SQL engines/Kafka) gurallaşdyrýarys.
Artykmaçlyklary: takyklyk, aktuallyk, parsingden soňky minimallaşdyrmak.
Passive (inference): parsim DAG 'i, SQL/DDL/log-soraglar, kataloglaryň/ammarlaryň ýazgylary; garaşlylygy retroaktiw gurýarys.
Artykmaçlyklary: mirasy çalt gurşap almak; minuslar: aşakdaky takyklyk column-level.
Adatça gibrid ulanylýar: mümkin bolan ýerlerde işjeň wakalar we "ätiýaçlandyryş tory" hökmünde passiw derňew.
5) Çözgüdiň arhitekturasy (etalon)
Producers (orkestratorlar/hereketlendirijiler) → Lineage hadysalarynyň şinasy → Normalizator → Graf saklaýyş → Indeks/gözleg → UI/API/alertler → Eksport/katalog.
Wakalar: URN identifikatorlary we semantik wersiýalary bilen birleşdirilen (job/run/dataset/column-lineage).
Grafanyň ammary: column-level grafasy (mysal üçin grafiki DB ýa-da relýasiýa + inverted index esasynda).
UI: gysga ýollaryň interaktiw wizualizasiýasy, impakt/kök-sebäp, gapyrgalarda we düwünlerde "hil signallary".
Integrasiýalar: maglumatlar katalogy, hil ulgamy (DQ), elýeterliligi dolandyrmak (ABAC), audit (append-only magazinesurnallar).
6) Kesgitleýjiler we wersiýalaşdyrmak
Her bir dataset/job/meýdan üçin URN/Global ID: durnukly, adam okalýan, şol sanda platforma/nomspace/at/wersiýa.
Shema wersiýalary (SchemaVersion) we kod wersiýalary (code SHA, image digest).
Wagt boýunça grafanyň suratlary (time-travel lineage): derňewleriň gaýtalanmagy.
7) Column-level lineage: nädip ygtybarly almaly
AST gurmak we aliaslary/STE/wýuhy kadalaşdyrmak bilen SQL-parsing.
Transformasiýa kodundaky düşündirişler (DBT tests, teswirler-primitivler, UDF-metadata).
Hereketlendirijilerdäki wakalar: "target. col = f(src. a, src. b)».
Semantik düzgünler: UDF/agregasiýa opsiýalary "lossy" (granulýasiýany ýitirmek bilen) ýa-da "sensitive-preserving" (PII bellikleri göterýär) hökmünde bellenilýär.
8) Lineage-iň gizlinlik we howpsuzlyk bilen baglanyşygy
Privacy by Design: 'pii _ class', 'consent _ scope', 'retention' meýdan bellikleri. Sütünler wagyz edilende bellikler düzgünlere laýyklykda berilýär (mysal üçin 'email → hash_email' PII-derived bolup galýar).
PII: lineage tokenizasiýa/detokenizasiýa faktyny we token-hyzmat düwünlerini saklaýar; islendik detokenizasiýa - audit bilen baglanyşykly waka.
Şifrlemek: AEAD/FPE lineage meýdanlary üçin açarlary açmazdan "kripto-ýagdaýy" we esasy sebiti (tenant/skope) düzedýär.
Audit we WORM: lineage wakalary we syýasatlardaky üýtgeşmeler üýtgemeýän žurnalda (append-only hash-zynjyrly) saklanylýar.
9) Lineage esasly maglumatlaryň hili we SLO
Gapyrgalardaky barlaglar: täzelik (freshness), dolulyk (completeness), özboluşlylyk/açarlar, paýlanyşyň süýşmegi.
SLO/SLI: "Maliýe hasabynyň metrikasyny iýmitlendirýän joblaryň 95% -i 06:00 UTC ≤ tamamlandy".
Root-cause: grafa + ýerine ýetiriş wagty "ilkinji döwülen düwün" üçin çalt kesgitleme berýär.
10) Impakt-seljerme we üýtgetmeleri dolandyrmak
Shema/logika meýilleşdirilen üýtgäninde: aşaky akym boýunça sütün (downstream) - täsir edýän hasabatlaryň/modelleriň/API müşderileriniň sanawy.
"Breaking changes" syýasaty: downstream-artefaktlaryň eýelerine hökmany habar bermek, grace-döwür, paralel wersiýalar ('v1 '/' v2') we "sunset-date" baýdagy.
Sarp edijileriň sanawy we migrasiýa çek-sanawy bolan awtomatiki PR/biletler.
11) Orkestratorlar we hereketlendirijiler bilen integrasiýa
Orchestrators: job-dan öň/soň 'RunStarted/RunCompleted' inputs/outputs.
SQL/ELT: hereketlendirijilere (warehouse, lakehouse) hakyky ýerine ýetiriş meýilnamasyny we sütünleriň mappingini almak üçin birikdirijiler.
Stream-processing: lineage messages (topic → topic, key/headers), Euro/Protobuf shemalary, registry arkaly shemalaryň ewolýusiýasy.
ML: şahsyýetleriň/datasetleriň çyzgysy, modeliň wersiýalary, okuw artefaktlary, alamatlaryň çeşmeleri.
12) Bellikleri wagyz etmegiň düzgünlerini modellemek (data contracts)
Maglumatlary ýygnamak şertnamasy: shema + meýdanlaryň semantikasy (açarlar, PII, ýygnalmagy, ygtyýarnamalar/hukuk esaslary, retention).
Propaganda düzgünleri:- 'SELECT a, b FROM T' → 'a, b' belliklerini geçirmek.
- 'hash (email)' → 'PII-derived (pseudonymized)' belligi detokenizasiýa gadaganlygy bilen.
- 'SUM (amount)' → şahsyýetiň ýitmegi; Netije meýdançasynda join's gadagan.
- Şertnamalar CI-de tassyklanýar (laýyk gelmeýän ýagdaýynda blocker), düzgün bozmalar bolsa auditde bolup geçen wakalar.
13) Öndürijiligi we gerimi
Wakalaryň inkremental injestiýasy lineage; '(run_id, job_urn)' boýunça de-duplikasiýa.
Grafany saklamak: gyzgyn indeksiň (soňky 30-90 gün) we arhiwiň bölünmegi; snapshotlar.
Ýygy-ýygydan haýyşlar üçin ýollary kesmek ("altyn" metriklere gysga ýollar).
Eýeler/kärendeçiler boýunça şarding; "haýwan düwünlerinden" goramak (janköýeriň çäklendirilmegi).
14) Wizualizasiýa we UX
Usullar:- Path to metric: "nämeden metrika ýygnalýar".
- Impact from source: "kime täsir eder".
- Field lineage: "meýdanyň nädip hasaplanandygy".
- Overlelar: job statuslary, hil, PII-bellikler, retensiýalar, eýeler.
- Hereketler: şertnama açmak, migrasiýa üçin bilet döretmek, üýtgeşmeleriň alertlerine gol çekmek.
15) Sütüne girmegiň howpsuzlygy
ABAC: düwünleriň/gapyrgalaryň görünmegi kärendeçiler/rollar bilen çäklenýär.
Redaction: tälim berilmedik rollar üçin UI-de duýgur meýdançalaryň atlaryny gizlemek (ýa-da lakamlaşdyrmak).
mTLS/OIDC API üçin; lineage wakalaryna hyzmat şahsyýetleri gol çekýärler.
WORM we okalyşa gözegçilik: grafanyň möhüm segmentlerini okamak hem magazineurnallaşdyrylýar.
16) Amal: SLO, gözegçilik, aladalar
SLO grafasy: wakanyň ýüze çykmagynyň gijikdirilmegi <5 min; örtügiň dolulygy> 98% kritiki paýlaýnlar; "Altyn metrikleriň" 100% -inde column-level lineage bar.
Alertler: zynjyryň döwülmegi, tamamlanýan wakalar bolmazdan run, shemalaryň utgaşdyrylmazlygy, "ýetim" datasetler, janköýerleriň/siklleriň ösüşi.
Hasabatlar: hepdelik "state of lineage coverage", töwekgelçilik düwünleriniň ilkinji 10-lugy.
17) Gizlinlik we gabat gelmek (baglamak)
GDPR/PbD: gaýtadan işlemegiň we retensiýanyň esaslaryny bellikler hökmünde saklamak; lineage ýollaryň çalt DSAR gözlegini we degişli segmentleriň kaskadly kripto aýyrylmagy arkaly "aýyrmak hukugyny" üpjün edýär.
Gizlinlik dolandyryşy: çig malyň elýeterliliginiň çeşmeleri hiç haçan açyk kredd ýaly lineage girmeýär; diňe rola/syýasata salgylanma saklanýar.
Audit/üýtgemeýän magazinesurnallar: lineage wakalarynyň hemmesi append-only ammarda gol çekildi we berkidildi (degişli makala serediň).
18) Çek-listler
Başlamazdan ozal:- datasets/jobs/fields üçin URN şertnamalary kesgitlenildi.
- Orkestratorlardan we hereketlendirijilerden lineage hadysalarynyň çykmagy açyldy.
- SQL/DDL parseri we shemalary kadalaşdyryjy işleýär.
- Data-contracts we PII/retensiýalary wagyz etmegiň düzgünleri tassyklandy.
- WORM wakalar magazineurnaly we grafanyň ätiýaçlyk nusgalary sazlandy.
- BI/ML lineage sarp edijileri hökmünde birikdirildi (hasabatlar, modeller, çyzgylar).
- Kritiki domenler boýunça lineage ýapmak ≥ 98%, "pul" boýunça column-level = 100%.
- Arakesmelere, "ýetim" datasetlere, shemalaryň süýşmegine alertler goşulýar.
- PII bellikleriniň we şertnamalaryň çärýekleýin barlagy.
- Üýtgeşmeleriň resminama dolanyşygy (breaking) we sarp edijilere iberilmegi.
19) Kiçi reseptler
RunCompleted (psevdo-JSON) wakasy: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
}
]
}
PII propaganda düzgüni (ideýa):
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
Impact-quaris "näme döwüler":
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) Ýygy-ýygydan ýalňyşlyklar we olardan nädip gaça durmaly
Lineage resmi model bolmazdan "surat boýunça". Wakalar/shemalar/URN gerek, ýogsam grafik ulalmaýar.
"Pul" ýerinde column-level ýok. Sütün derejesi bolmazdan hasaplamalary düşündirip bolmaz.
Doly däl wakalar (code_sha/versii shemalarsyz). Köpeltmek mümkin däl.
Gizlinlik ignory. PII bellikleri meýdanlar bilen bilelikde ýaşamaly we geçirilmelidir.
Şardingsiz bir uly grafiki DB. Alamatlara görä bölüň, snapshotlary saklaň.
Parserlere kör iman. Jedelli ýagdaýlarda - hereketlendirijilerden işjeň wakalar.
21) Runbook’и
Waka: metrika "bökdi".
1. "Path to metric" → Ýolda iň soňky "Run" düwünlerini barlaň.
2. Kod/shemalaryň wersiýalaryny, çekleriň DQ ýagdaýyny gapyrgalarda barlaň.
3. Eger döwülen baglanyşyk tapylsa - eýesine bilet dörediň, metrikanyň wagtlaýyn "hold" neşirini goşuň.
4. Fiksden soň - RCA belläň we grafanyň düwünleri bilen baglanyşdyryň.
Çeşmäniň shemasyny üýtgetmek.
1. Downstream impaktyny sora.
2. Eýelerine habar ibermek, göçmegiň PR-lerini döretmek.
3. Paralel 'v _ next' galdyryň, iki wersiýany hem sunset-senä çenli saklaň.
4. 'v _ prev' -ni ýapyň, şertnamalary we lineage-grafany täzeläň.
- «Privacy by Design (GDPR)»
- "PII-maglumatlary bellemek"
- "Syr dolandyryşy"
- "Audit we üýtgemeýän žurnallar"
- "At Rest/In Transit şifrlemek"
- "Açarlary dolandyrmak we rotasiýa"