Տվյալների ծագումը
Տվյալների ծագումը (Lineage)
1) Ի՞ նչ է lineage-ը, և ինչո՞ ւ է այն անհրաժեշտ։
Lineage-ը ֆորմալ գրառում է «որտեղից են եկել տվյալները, թե ինչպես են դրանք վերածվել, որտեղ և ում օգտագործվել են»։ Արդյունքն այն է, որ կախվածության կենտրոնացված գրաֆիկը (ժամանակը, վարկածները, սեփականատերերը, տրանսֆորմացիաները, հասանելիության քաղաքականությունը, որակը), որը տվյալների համակարգը դարձնում է բացատրական և աուդիրացված։
Բիզնես արժեքը
Մետրի թափանցիկությունը (ֆինանսներ, արտադրանք, ռիսկ). <<Ինչու՞ X = 1 234 թիվը։ ».
Արագ իմպակտային վերլուծություն (սխեմա/ջո). "Ի՞ նչ է կոտրվում, եթե...
Համապատասխանությունը և աուդիտը (GDPR/CSO/SOC) 'ապացուցված դաշտի ճանապարհը։
Onbording արագացումը և toil-ի նվազումը (գիտելիքների ինքնահսկումը)։
Որակի բարելավում 'ստուգում, որտեղ ռիսկը ավելի բարձր է։
2) Ինտեգրման ոլորտները և դիֆերենցիալ մակարդակները
Հոսքի մակարդակը (pipeline/job) 'ո՞ ր ջոբներն/նվագախմբերը ստեղծեցին դանիացիները։
Դանասետի մակարդակը (table/2019/topic/2019) 'ռուսական ելույթի մուտքերը, տարբերակները/դիպուկահարները։
Սյունակի մակարդակը (column/feature-level), ինչպես հաշվարկվում է յուրաքանչյուր դաշտ, որից։
Սպառման շերտը 'BI, API, ML մոդելներ, dashbords և նախազգուշացում։
Քննադատական էակների համար (գումար, կարգավորիչ) պարտադիր է column-level-ը։
3) Lineage տվյալների մոդելը 'հիմնական էությունը
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: Policy: `{dataset_urn/field, access_rules, masking, consent_scope}` Quality Check: `{check_id, scope, rule, severity, result}` 4) Lineage աղբյուրներ ՝ ակտիվ vs պասիվ հավաքածու Ակտիվ (event-based) 'նվագարկիչների/շարժիչների մոդելը (Spark/DBT/SQL ines/Kafka) «b started/finished, inputs/www.puts, column-maping» իրադարձությունների համար։ Պլյուսներ 'ճշգրտություն, արդիականություն, փոստի պարսինգի նվազեցում։ Պասիվ (inference) 'parsim DAG' i, SQL/DDL/log հարցումներ, ածխաջրածինների/պահեստների լոգներ; կառուցում ենք կախվածությունը ռետրո ակտիվ։ Պլյուսներ 'ժառանգության արագ կարգավորումը; մինուսները 'ցածր ճշգրտությունը column-level-ի վրա։ Սովորաբար օգտագործվում են հիբրիդ 'ակտիվ իրադարձություններ, որտեղ հնարավոր է, և պասիվ վերլուծությունը որպես «ապահովագրության ցանց»։ 5) Լուծման ճարտարապետությունը (ստանդարտ) Meders (նվագարկիչներ/շարժիչներ) wwww.Shin lineage Pro Նորալիզատոր Ward International/որոնում UI/API/API/alerts International/կատալոգում։ Իրադարձությունները ՝ միավորված (job/run/windaset/column-lineage), URN-ի բաղադրիչների և սեմանտիկ տարբերակների հետ։ Գրաֆիկի պահեստ 'column-level գրաֆիկ (օրինակ, գրաֆիկական BD-ի հիմքում կամ ռելյացիոն + eterted index)։ UI 'Ամենակարճ ճանապարհների ինտերակտիվ տեսողական, իմպակտ/արմատ-պատճառ, «որակի ազդանշաններ» կողոսկրերի և հանգույցների վրա։ Տե՛ ս տվյալների կատալոգ, որակի համակարգ (DQ), հասանելիության կառավարում (ABAC), աուդիտ (append-only ամսագրեր)։ 6) Բաղադրիչներ և տարբերակներ URN/Global ID-ը յուրաքանչյուր թվասետի/ջոբի/դաշտերի համար կայուն, մարդկային, ներառյալ պլատֆորմը/նեյրոմսպեյսը/անունը/տարբերակը։ Սխեմաների տարբերակները (SchemaVersion) և կոդի տարբերակները (code SHA, image digest)։ Գրաֆիկի նկարները ժամանակի ընթացքում (Time-travel lineage) 'հետազոտության վերարտադրումը։ 7) Column-level lineage 'ինչպես ստանալ վստահելի SQL պարսինգը AST կառուցվածքով և ալիասների/STE/vuch նորմալիզացիայով։ Փոխակերպման կոդում (DBT tes.ru, պրիմիտիվներ, UDF-metadata)։ Շարժիչների իրադարձությունները '«target» արտահայտությունների հրահանգը։ col = f(src. a, src. b)». Սեմանտիկ կանոնները ՝ UDF/համախմբման հարցումները սահմանվում են որպես «lossy» (նռնակության կորստով) կամ «sportitive-preserving» (փոխանցում է PII-2019)։ 8) Lineage կապը մասնագիտության և անվտանգության հետ Privacy by Design: «pii _ class», «consent _ scope», «retention»։ Կոլեկտիվների քարոզչության ժամանակ բջիջները փոխանցվում են կանոններով (օրինակ ՝ «email enthash _ email» -ը մնում է PII-derived)։ PII 'lineage-ը պահպանում է տոկենիզացիայի/դետոկենիզացիայի և token-2019-ի փաստը։ յուրաքանչյուր մանրակրկիտ 'աուդիտի իրադարձություն։ Կոդավորումը 'AEAD/FMS lineage դաշտերի համար նկարագրում է «կրիպտո վիճակը» և ռուսական տարածքը (tenault/scope) առանց բացահայտման։ Աուդիտը և WORM-ը 'lineage-ի և փոփոխության իրադարձությունները, քաղաքական գործիչը պահվում է անփոփոխ ամսագրում (append-only-chash)։ 9) Տվյալների որակը և SLO-ն հիմնված են lineage-ի վրա Կողքի չեկերը 'թարմ (freshness), ամբողջական (completeness), յուրություն/բանալին, բաշխման դրեյֆը։ SLO/SLI: «95% ջո, որոնք կերակրում են finnock մետրերը, ավարտվել են 2406:00 UTC»։ Root-cause: գրաֆիկը + կատարման ժամանակները արագ սահմանում են «առաջին կոտրված հանգույցը»։ 10) Impact-վերլուծություն և փոփոխությունների կառավարում Սխեմայի/տրամաբանության պլանավորված փոփոխության դեպքում, գրաֆիկի ներքևում (downstream) - API/հաճախորդների ցուցակն է։ «Breaking changes» քաղաքականությունը 'downstream-արտեֆակտների սեփականատերերի պարտադիր ծանուցումը, grace ժամանակահատվածը, զուգահեռ տարբերակները («v1 »/« v2») և «sunset-date» դրոշը։ Ավտոմատ PR/tikets, սպառողների ցուցակով և չեկի թերթիկով։ 11) Ինտեգրումը նվագախմբերի և շարժիչների հետ Orchestrators: Job-ից առաջ/հետո կատարվում են «RunStarted/RunCompleted» իրադարձությունները inputs/www.puts-ից։ SQL/ELT 'շարժիչների կոնեկտորները (warehouse, lakehouse), որպեսզի ստանան իրական պլան և տեղադրեն սյունակները։ Stream-processing: lineage հաղորդագրությունները (topic deptopic, key/headers), Avro/Delobuf սխեմաները, registry-ի միջոցով սխեմաների էվոլյուցիան։ ML: lineage mage/Dadasetes, մոդելի տարբերակները, արտեֆակտները, նշանների աղբյուրները։ 12) Պիտակների պրոպագանդացիայի կանոնները մոդելավորելը (6502rac.ru) Տվյալների հավաքման պայմանագիրը '+ դաշտերի սեմանտիկ (բանալիներ, PII, համախմբում, լիցենզիա/իրավական հիմքեր, retention)։ Քարոզչության կանոնները «DIA CORA, b FROM T '- ը նախատեսվում է հետաձգել www.a, b»։ «hash (email)» 108 մետր «PII-derived (pseudonymized)» արգելքով։ «SUM (amount)» -ը անհատականության կորուստ է։ արգելված join's արդյունքի դաշտում։ Պայմանագրերը վալիդացվում են CI-ում (բլոկերը անհամապատասխանությամբ), իսկ խախտումները 'աուդիտի իրադարձություններ։ 13) Արտադրողականություն և մասշտաբներ Lineage-ի իրադարձությունների իրական ներուժը։ «(run _ id, job _ urn)»։ Գրաֆիկի պահպանումը 'տաք ինդեքսի բաժանումը (վերջին 30-90 օր) և արխիվը։ կեղտաջրերը։ Հաճախակի հարցումների համար ճանապարհների հավաքումը (կարճ ճանապարհներ «ոսկե» մետրիկների համար)։ Շարդինգը նեյրոսպեյսամ/վարձակալներ; պաշտպանություն «հանգույցներից-հրեշներից» (ֆան-աուտայի սահմանափակումը)։ 14) Տեսողական և UX Ռեժիմները Path to metric: «Որից հավաքվել է մետրը»։ Impact from source: «Ո՞ վ կանդրադառնա փոփոխության վրա»։ Field lineage: «Ինչպես հաշվարկվում է դաշտը»։ Օվերլեները 'ջո արձանները, որակը, PII-2019, վերականգնումները, սեփականատերերը։ Գործողությունները 'բացել պայմանագիրը, ստեղծել լռություն միգրացիայի համար, բաժանվել փոփոխությունների ալտերի վրա։ 15) Գրաֆիկի հասանելիության անվտանգությունը ABAC 'հանգույցների/կողոսկրերի տեսանելիությունը սահմանափակվում է վարձակալներով/դերերով։ Redaction: զգայուն դաշտերի անունները (կամ դրանց կեղծանունացումը) UI-ում չպատրաստված դերերի համար։ MTSA/OIDC API-ի համար; lineage իրադարձությունները ստորագրվում են ծառայողական նույնականություններով։ WORM-ը և ընթերցանության վերահսկումը 'Count-ի քննադատական հատվածների ընթերցումը նույնպես ամսագրում է։ 16) Վիրահատություն ՝ SLO, 108, ալտերտեր SLO Count 'դեպքի ուշացումը <5 րոպե; Լիխտա 49.8 տոկոսը կրիտիկական փամփուշտներ են։ 100 տոկոսը «ոսկե մետր» ունեն column-level lineage։ Ալբերտներ 'շղթայի կոտրվածք, ռուն առանց ավարտի իրադարձությունների, սխեմաների անհամապատասխանությունը, «օսիրոտալ», ֆան-աուտա/ցիկլայի աճը։ Հաշվետվություններ ՝ շաբաթական «lineage coverage», ռիսկի առաջին 10 հանգույցները։ 17) Գաղտնիությունը և կոմպլենսը (կապանները) GDPR/PbD 'պահպանել մշակման և վերականգնման հիմքերը որպես թեգեր։ lineage-ն ապահովում է արագ DSAR-ի ուղիների որոնումը և «հեռացման իրավունքը» համապատասխան հատվածների կասկադային ծպտյալ հեռացման միջոցով։ Գաղտնիքների կառավարումը 'հումքի հասանելիության աղբյուրները երբեք չեն մտնում lineage-ում որպես բաց կրեդներ։ միայն հղում է պահպանվում դերի/քաղաքականության վրա։ Աուդիտ/անփոփոխ ամսագրեր. Բոլոր lineage իրադարձությունները ստորագրված են և տեղադրված են append-only պահեստում (տե՛ ս ռուսական հոդվածը)։ 18) Չեկ թերթերը Գործարկումից առաջ Վիրահատություն 19) Մինի բաղադրատոմսեր RunCompleted (կեղծ-JSON) իրադարձությունը PII քարոզչության կանոնը (գաղափարը) Impack-quaris «ի՞ նչ է կոտրվում»։ 20) Հաճախակի սխալներ և ինչպես խուսափել դրանցից Lineage «նկարը» առանց ֆորմալ մոդելի։ Անհրաժեշտ են իրադարձություններ/սխեմաներ/URN, հակառակ դեպքում գրաֆիկը չի ավելանում։ Չկա column-level որտեղ «գումար»։ Առանց սյունի մակարդակի չի կարելի բացատրել հաշվարկները։ Թերի իրադարձությունները (առանց code _ sha/սխեմաների տարբերակների)։ Վերարտադրողականությունը անհնար է։ Գաղտնիության անտեսումը։ PII-ը պետք է ապրի և տեղափոխվի դաշտերի հետ։ Մի մեծ գրաֆիկ BD առանց շարդինգի։ Կիսվեք նյարդային համակարգերով, պահեք կեղտաջրերը։ Կույր հավատը տղաներին։ Հակասական դեպքերում շարժիչներից ակտիվ իրադարձություններ են։ 21) Runbook’и Պատահականություն 'մետրը «ցատկեց»։ 1. Բացել «Path to metric» -ը նախատեսվում է ստուգել ճանապարհի վերջին «Run» հանգույցները։ 2. Նվազեցնել կոդի/սխեմայի տարբերակները, DQ չեկերի կարգավիճակը։ 3. Եթե հայտնաբերեք կոտրված օղակը, ստեղծեք սեփականատիրոջ հյուսետը, միացրեք «hold» հրատարակությունը։ 4. Ֆիքսից հետո, նշեք RCA-ը և կապեք գրաֆիկի հանգույցների հետ։ Աղբյուրի սխեմայի փոփոխությունը։ 1. Խնդրել իմպրակտ downstream։ 2. Ծանուցումներ ուղարկել սեփականատերերին, ստեղծել PR 'a։ 3. Բարձրացնել զուգահեռ «v _ next», պահել երկու տարբերակները մինչև sunset-ամսաթիվը։ 4. Փակել 'v _ 35v ", նորարարել պայմանագրերը և lineage գրաֆիկը։ Կապված նյութեր «Privacy by Design (GDPR)» «PII տվյալների տոկենիզացիա» «Գաղտնիքների կառավարում» «Աուդիտ և անփոփոխ ամսագրեր» «At Rest/In Transit» «Բաների կառավարումը և նավարկումը»
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
}
]
}
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
affected = downstream(urn:"urn:dataset:warehouse:users_v4", depth=4)
filter affected where kind in {"dashboard","model","api"} and owner not in {"team-exp"}