GH GambleHub

Деректердің шығу тегі

Деректердің шығу тегі (Lineage)

1) lineage дегеніміз не және ол не үшін қажет

Data Lineage - бұл «деректер қайдан келді, олар қалай өзгерді, қайда және кім пайдаланды» деген ресми жазба. Нәтижесі - деректер жүйесін түсіндірілетін және аудиттелетін атрибуттары (уақыты, нұсқасы, иелері, трансформациясы, қол жеткізу саясаты, сапасы) бар тәуелділіктің бағдарланған бағаны.

Бизнес құндылығы:
  • Метриканың ашықтығы (қаржы, өнім, тәуекел): "неге X = 1 234 саны? ».
  • Өзгерістердің жылдам импакт-талдауы (схема/джоб): «егер»...
  • Сәйкестік және аудит (GDPR/ISO/SOC): өрістің дәлелденетін жолы.
  • Онбордингті жеделдету және toil төмендету (білімге өздігінен қызмет көрсету).
  • Сапаны жақсарту: тәуекел жоғары жерде мақсатты тексерулер.

2) Жабу салалары және нақтылау деңгейлері

Ағын деңгейі (pipeline/job): қандай джобтар/оркестраторлар датасеттерді туғызды.
Датасет деңгейі (table/view/topic/file): кірістер → шығулар, нұсқалар/снапшоттар.
Баған деңгейі (column/feature-level): әрбір өріс қалай есептелген, қандай бастапқы көздерден.
Тұтыну қабаты: BI, API есептері, ML модельдері, дашбордтар және құлақтандыру.

Сыни мәндер үшін (ақша, реттеуіш) - міндетті түрде 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: '{dataset _ urn, name, type, derivation}' (деривация -/AST/оператор өрнегі).

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

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

4) Lineage көздері: белсенді vs пассивті құрастыру

Белсенді (event-based): «job started/finished, inputs/outputs, column-mapping» оқиғаларын шығару үшін оркестраторларды/қозғалтқыштарды (Spark/DBT/SQL engines/Kafka) аспаптандырамыз.

Артықшылықтары: дәлдік, өзектілік, пост-парсингті барынша азайту.
Пассивті (inference): парсим DAG 'i, SQL/DDL/лог-сұраулар, каталогтар/сақтау орындары логтары; тәуелділікті ретроактивті түрде қалыптастырамыз.

Артықшылықтары: мұраны жылдам қамту; кемшіліктері: төмен дәлдік column-level.

Әдетте гибридті қолданады: мүмкіндігінше белсенді оқиғалар және «сақтандыру торы» ретінде пассивті талдау.

5) Шешім архитектурасы (эталон)

Producers (оркестраторлар/қозғалтқыштар) → Шина оқиғалар lineage → Нормализатор → Қойма бағаны → Индекс/іздеу → UI/API/алерта → Экспорт/каталог.

Оқиғалар: URN идентификаторлары және семантикалық нұсқалары бар біріздендірілген (job/run/dataset/column-lineage).
Баған қоймасы: column-level бағандары (мысалы, бағандық ДБ немесе реляциялық + inverted index негізінде).
UI: қысқа жолдарды интерактивті бейнелеу, импакт/тамыр-себеп, қабырғалар мен түйіндердегі «сапа сигналдары».
Интеграциялар: деректер каталогы, сапа жүйесі (DQ), кіруді басқару (ABAC), аудит (append-only журналдары).

6) Сәйкестендіргіштер және нұсқалау

Әрбір датасет/джобтар/өрістер үшін URN/Global ID: тұрақты, адам оқитын, платформаны/неймспейсті/атауды/нұсқаны қамтиды.
Схемалар нұсқасы (SchemaVersion) және код нұсқасы (code SHA, image digest).
Уақыт бойынша графаның түсірілімі (time-travel lineage): тергеудің қайталануы.

7) Column-level lineage: қалай дұрыс алуға болады

AST құру және алиастарды/СТЕ/вьюх қалыпқа келтіру арқылы SQL-парсинг.
Трансформация кодындағы аннотациялар (DBT tests, комменттер-примитивтер, UDF-metadata).
қозғалтқыштардан оқиғалар: «target» өрнектерін көрсету. col = f(src. a, src. b)».
Семантикалық ережелер: UDF/агрегаттау опциялары «lossy» (грануляцияның жоғалуымен) немесе «sensitive-preserving» (PII-белгілерін тасымалдайды) деп белгіленеді.

8) lineage құпиялылық және қауіпсіздік байланысы

Privacy by Design: 'pii _ class', 'consent _ scope', 'retention' өріс белгілері. Бағандарды насихаттау кезінде белгілер ережелер бойынша беріледі (мысалы, 'email → hash_email' PII-derived болып қалады).
PII: lineage токенизациялау/детокенизациялау фактісін және токен-сервис тораптарын сақтайды; кез келген детокенизация - аудитпен болатын оқиға.
Шифрлау: AEAD/FPE lineage өрістері үшін кілттерді ашпай-ақ «крипто-күйін» және негізгі аумақты (tenant/scope) белгілейді.
Аудит және WORM: lineage оқиғалары және саясаттағы өзгерістер өзгермейтін журналда (хэш-тізбектері бар append-only) сақталады.

9) Деректер сапасы және SLO lineage базасында

Қабырғалардағы чектер: жаңаруы (freshness), толымдылығы (completeness), бірегейлігі/кілттері, бөлу дрейфі.
SLO/SLI: «Қаржылық есептің метрикасын қоректендіретін джобтың 95% -ы 06:00 UTC ≤ аяқталды».
Root-cause: баған + орындау уақыты «бірінші сынған тораптың» тез анықтамасын береді.

10) Импакт-талдау және өзгерістерді басқару

Схеманы/логиканы жоспарлы өзгерту кезінде: ағын бойынша төмен баған бойынша (downstream) - API клиенттерінің қозғалатын есептерінің/модельдерінің тізімі.
«breaking changes» саясаты: downstream-артефактілердің иелеріне міндетті хабарлау, grace-кезең, параллель нұсқалар ('v1 '/' v2') және «sunset-date» жалаушасы.
Тұтынушылар тізбесі және көші-қон чек-парағы бар автоматты PR/тикеттер.

11) Оркестраторлармен және қозғалтқыштармен интеграциялау

Orchestrators: job алдында/кейін 'RunStarted/RunCompleted' оқиғалары inputs/outputs арқылы шығарылады.
SQL/ELT: нақты орындау жоспарын және бағандар маппингін алу үшін қозғалтқыштарға (warehouse, lakehouse) коннекторлар.
Stream-processing: lineage хабарламалар (topic → topic, key/headers), Euro/Protobuf схемалары, схемалардың registry арқылы эволюциясы.
ML: fiches/datacets lineage, модель нұсқалары, жаттығу артефактілері, белгілер көздері.

12) Таңбаларды насихаттау ережелерін модельдеу (data contracts)

Деректер жиынтығының келісімшарты: схема + өрістер семантикасы (кілттер, PII, агрегаттылық, лицензиялар/құқықтық негіздер, retention).

Насихат ережелері:
  • 'SELECT a, b FROM T' → 'a, b' белгілерін жылжыту.
  • 'hash (email)' → детокенизациялауға тыйым салынған 'PII-derived (pseudonymized)' белгісі.
  • 'SUM (amount)' → жеке тұлғаны жоғалту; нәтиже өрісінде join 'дерге тыйым салынған.
  • Келісімшарттар CI-де (сәйкессіздік кезінде blocker) валидацияланады, ал бұзушылықтар - аудитке оқиғалар.

13) Өнімділік және масштаб

Lineage оқиғаларының инкременталды инжестиясы; '(run_id, job_urn)' бойынша дедупликация.
Бағанды сақтау: ыстық индексті (соңғы 30-90 күн) және мұрағатты бөлу; снапшоттар.
Жиі сұраулар үшін жолдарды кэштеу («алтын» метрикаларға қысқа жолдар).
Неймспейстер/жалға алушылар бойынша шардинг; «монстр-тораптарынан» қорғану (фан-аутты шектеу).

14) Визуализация және UX

Режимдер:
  • Path to metric: «метрика неден жиналған».
  • Impact from source: «өзгерту кімге әсер етеді».
  • Field lineage: «өріс қалай есептелді».
  • Оверлейлер: джоб мәртебесі, сапасы, PII-белгілері, ретенциясы, иелері.
  • Іс-әрекеттер: келісімшарт ашу, көші-қонға арналған сертификат жасау, өзгерістер алаңына жазылу.

15) Бағанға қол жеткізу қауіпсіздігі

ABAC: тораптардың/қабырғалардың көрінуі жалға алушылармен/рөлдермен шектелген.
Redaction: дайындалмаған рөлдер үшін сезімтал өрістердің атауларын (немесе оларды псевдонимдеу) UI-де жасыру.
mTLS/OIDC API үшін; lineage оқиғаларына сервистік ұқсастықтар қол қояды.
WORM және оқуды бақылау: бағанның сыни сегменттерін оқу да журналға жазылады.

16) Пайдалану: SLO, мониторинг, алерта

SLO бағаны: оқиғаның пайда болуының кідіруі <5 мин; жабындының толықтығы> 98% сындарлы пайплайндар; 100% «алтын метриктерде» column-level lineage бар.
Алерттар: тізбектің үзілуі, аяқталу оқиғаларынсыз run, схемалардың келісілмеуі, «жетім» датасеттер, фан-аута/циклдердің өсуі.
Есептер: апталық «state of lineage coverage», топ-10 тәуекел торабы.

17) Жекелік және комплаенс (байламдар)

GDPR/PbD: өңдеу негіздерін және ретенцияны тегтер ретінде сақтау; lineage жолдарды жылдам DSAR іздеуді және тиісті сегменттерді каскадты крипто-жою арқылы «алып тастау құқығын» қамтамасыз етеді.
Құпия менеджменті: шикізатқа қол жеткізу көздері lineage-ге ешқашан ашық кред ретінде кірмейді; рөлге/саясатқа сілтеме ғана сақталады.
Аудит/өзгермейтін журналдар: lineage барлық оқиғаларына қол қойылады және append-only қоймасында бекітіледі (тиісті мақаланы қараңыз).

18) Чек парақтары

Бастау алдында:
  • datasets/jobs/fields үшін URN келісімдері анықталды.
  • Оркестраторлар мен қозғалтқыштардан lineage оқиғаларының эмиссиясы қосылды.
  • SQL/DDL парсері және схемаларды қалыпқа келтіруші жұмыс істейді.
  • data-contracts және PII/ретенцияларды насихаттау қағидалары бекітілді.
  • WORM оқиғалар журналы мен бағанның сақтық көшірмелері теңшелген.
  • BI/ML lineage тұтынушылары ретінде қосылған (есептер, модельдер, фичтер).
Пайдалану:
  • Критикалық домендер бойынша lineage жабу ≥ 98%, «ақша» бойынша column-level = 100%.
  • «Жетім» датасеттер, схемалардың дрейфі қосылған үзілістерге арналған алерттар.
  • PII белгілерінің және келісімшарттардың тоқсан сайынғы аудиті.
  • Өзгерістердің құжат айналымы (breaking) және тұтынушыларға тарату.

19) Шағын рецептер

RunCompleted (псевдо-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
}
]
}
PII насихат ережесі (идея):

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"}

20) Жиі қателер және оларды болдырмау

Lineage «сурет бойынша» формальды үлгісіз. Оқиғалар/схемалар/URN қажет, әйтпесе бағандар масштабталмайды.
«Ақша» бар жерде column-level жоқ. Баған деңгейінсіз есептеулерді түсіндіруге болмайды.
Толық емес оқиғалар (code_sha/версии схемаларсыз). Ойнату мүмкін емес.
Құпиялылық белгісі. PII таңбалары өрістермен бірге тұруы және тасымалдануы тиіс.
Бір үлкен графалық ДБ шардингсіз. Неймспейстер бойынша бөліңіз, снапшоттарды сақтаңыз.
Парсердерге соқыр сенім. Даулы жағдайларда - қозғалтқыштардың белсенді оқиғалары.

21) Runbook’и

Оқиға: метрика «секірді».

1. «Path to metric» ашыңыз → жолдағы соңғы 'Run' түйіндерін тексеріңіз.
2. Код/схема нұсқаларын, қабырғалардағы DQ чектерінің күйін салыстыру.
3. Егер сынған сілтеме табылса - иесіне тикет жасау, уақытша «hold» метрика жарияланымын қосу.
4. Фикстен кейін - RCA-ны белгілеу және бағанды түйіндермен байланыстыру.

Көз схемасын өзгерту.

1. downstream импактісін сұрату.
2. Иелеріне хабарландыруларды жіберу, көші-қон PR 'терін құру.
3. Параллельді 'v _ next' көтеру, екі нұсқасын да sunset-күнге дейін ұстау.
4. 'v _ prev' дегенді жабу, келісімшарттар мен lineage-бағандарды жаңарту.

Байланысты материалдар:
  • «Privacy by Design (GDPR)»
  • «PII-деректерді токендеу»
  • «Құпия менеджменті»
  • «Аудит және өзгермейтін журналдар»
  • «At Rest/In Transit шифрлау»
  • «Кілттерді басқару және ротация»
Contact

Бізбен байланысыңыз

Кез келген сұрақ немесе қолдау қажет болса, бізге жазыңыз.Біз әрдайым көмектесуге дайынбыз!

Telegram
@Gamble_GC
Интеграцияны бастау

Email — міндетті. Telegram немесе WhatsApp — қосымша.

Сіздің атыңыз міндетті емес
Email міндетті емес
Тақырып міндетті емес
Хабарлама міндетті емес
Telegram міндетті емес
@
Егер Telegram-ды көрсетсеңіз — Email-ге қоса, сол жерге де жауап береміз.
WhatsApp міндетті емес
Пішім: +ел коды және номер (мысалы, +7XXXXXXXXXX).

Батырманы басу арқылы деректерді өңдеуге келісім бересіз.