Maglumat konweýerlerini barlamak
1) Näme üçin maglumat konweýerlerini synagdan geçirmeli?
Maglumat konweýerleri (ingest → transform → serve) - hasabat, ML we operasiýa çözgütleri üçin möhüm infrastruktura. Ýalňyşlyklar nädogry metriklere, frod-signallara we pul ýitgilerine öwrülýär. Synag:- Hakykylyk (correctness) we durnuklylyk (resilience).
- Üýtgeşmeleriň çaklanylyşy (schema/logic evolution).
- Täzelik, dolulyk, gizlinlik boýunça SLO-ny berjaý etmek.
- Awtomatlaşdyrylan barlagyň hasabyna çalt goýberiş (goýberiş tizligi).
2) Maglumatlary barlamagyň piramidasy
Aşakdan ýokary: köp çalt lokal synaglar → az integrasiýa → birneme gutardy.
1. Birleşen üýtgeşiklik synaglary (funksiýalar, UDF, SQL-widler, dbt-modeller).
2. Maglumatlaryň hiliniň synaglary (täzelik/doly/özboluşlylyk/diapazon düzgünleri).
3. Şertnamalar we shemalar (shema/contract tests, ewolýusiýa).
4. Paýplanyň integrasiýa synaglary (DAG: ingest storage transform).
5. E2E-synaglar (çeşmeden penjirä/API), şol sanda hukuklar (RLS/CLS) we eksport.
6. Ýük/öndürijilik (göwrüm, tizlik, cost-to-serve).
7. Maglumatlaryň bulam-bujarlygy (gijikdirmeler, dublikatlar, out-of-order, elýeterlilik).
3) Synaglaryň görnüşleri: nämäni barlaýarys
3. 1 Mantyk synaglary
Arassa özgeriş funksiýalary; property-based (invariantlar: idempotentlik, monotonlyk).
SQL/DBT: netijäni standart (golden set) bilen deňeşdirmek, "SELECT" gadaganlygy, süzgüçleri wagt boýunça barlamak.
3. 2 Data Quality Tests (DQ)
Täzelik: penjireleri maksat bosagasyna ≤.
Dolulygy: garaşylýan sany/doldurylyş paýy.
Özboluşlylygy: dublikatsyz açarlar.
Domen düzgünleri: diapazonlar, salgylanma bitewiligi, işewürlik üýtgemeleri.
Anomaliýalar: outliers, dublikat partlamalary, wagt aralyklary.
3. 3 Şertnamalar we shemalar
Üýtgeşmeleriň laýyklygy (SemVer: MAJOR/MINOR/PATCH).
Hökmany sütünleriň, görnüşleriň, çäklendirmeleriň bolmagy.
Kesgitlenen KPI semantikleri: formulalar we agregasiýa penjireleri.
3. 4 Integrasiýa we E2E
DAG bitewiligi: triggerler, endikler, idempotent gaýtalanmagy.
Doly ýol: çeşme → raw → curated → marts → BI/API; RLS/CLS.
3. 5 Öndürijilik we çykdajylar
p95/p99 joblaryň gizlinligi, throughput (rows/s), göwrümi/bahasy.
Öndürijilik regressiýalarynyň synaglary we skaner çäkleri.
3. 6 Howpsuzlyk we gizlinlik
PII/PCI maskalanmagy (determinizasiýa).
RLS/CLS barlagy: Ulanyjylar diňe özlerini görýärler.
Eksport/snepshotlar: "çig" şahsy meýdanlaryň ýoklugy.
4) Akym aýratynlygy (Kafka/Flink/Spark Structured Streaming)
Watermarks we lateness: gijä galan wakalar bilen penjire synaglary (T + Δ), dogry hasaplamalar.
Exactly-once manysy boýunça: 'event _ id', idempotent ýazgysy (upsert/merge).
Out-of-order: 'event _ time' boýunça agregatlara üýtgeşikler; 'ingested _ at' -y düzedýäris.
Ýitirmek/gaýtalamak: bölek/bölek oýnuny simulýasiýa edýäris, penjireleriň dogrulygyny barlaýarys.
5) Idempotentlik we determinizm (nämäni we nädip synagdan geçirmeli)
Ädimiň täzeden başlamagy şol bir netijäni berýär (penjiräniň parametrleri birmeňzeş bolanda).
Ýazgy - staging we atomic swap arkaly.
Merge-logika SCD1/SCD2 bilen gapma-garşylyk synaglary (last-write-wins, source priority) bilen örtülendir.
UDF/agregatlaryň kesgitleýişi: birmeňzeş girelgeler → birmeňzeş çykýanlar.
6) Synag maglumatlaryny dolandyrmak
Golden datasets: el bilen tassyklanan kiçi standartlar.
Sintetika + maglumat fabrikleri: domeniň gyralaryny örtmek (nulls, extreme values, Unicode, TZ).
De-kesgitlenen prod-sampllar: şahsy durmuşyň laýyklygy.
Gatlak fiksturalary: çig wakalar, aralyk gatlaklar, jemleýji penjireler.
7) Maglumatlaryň şertnamalary: mysal we düzgünler
YAML-şertnama (ýönekeýleşdirilen):yaml dataset: orders schema:
- name: order_id; type: string; unique: true
- name: user_id; type: string; not_null: true
- name: amount; type: decimal(18,2); min: 0
- name: event_time; type: timestamp; tz: UTC freshness_sla: 10m dq_rules:
- "pct_null(user_id) < 0. 1%"
- "duplicates(order_id) = 0"
- "sum(amount) >= 0"
evolution:
allowed_minor_additions: true breaking_changes_require: approval: 'data-governance'
actions_on_violation:
- quarantine_partition
- replay_last_60m
8) Synlamak we SLO synaglary
Metrleriň eksporty: Freshness, Completeness, Uniqueness, Latency - Grafana/Prometheus.
SLO-alertler "gyzyl" unit Synthetics synaglary.
Regressiýalaryň habarlary: "X p95 ↑ çykarylandan soň 40%".
9) CI/CD we gurşaw
CI: birlik + DQ + PR şertnamalary; schema-diff; SQL-iň statiki derňewi (linter).
Sandbox/staging: howpsuz maglumatlar bilen integrasiýa we e2e, bulam-bujarlyk synaglary.
Feature-flags: kanar joblary/modelleri/formulalary.
Kataloglaşdyrmak: shemalaryň, formulalaryň KPI, lineage görnüşi; resminamalary awtomatiki täzelemek.
10) Maglumatlaryň bulam-bujarlygyny barlamak (Chaos-Data)
Dublikatlary/paslary, gijikdirmeleri sanjym etmek, out-of-order.
Brokeriň/partiýanyň ýykylmagy, "döwülen" faýllar, shema drift.
Awto-abatlaýyş (replay/backfill), quarantine we alertler, MTTR-data.
11) Ýüklemek we çykdajy
P95/pikli traffik generatorlary.
Skan/ädim çäkleri (bytes scanned, time caps).
A/B baha profilleýji: "köne" vs "täze" model/haýyş.
12) Gurallar (takmynan synplar)
DQ/Şertnamalar: dbt tests, Great Expectations, Deequ, Soda, Custom linters.
Orkestr: Airflow/Dagster/Argo/Prefect (her ädimde synag üçin operatorlar).
Platformalar: BigQuery/Snowflake/Redshift/ClickHouse/Delta/Iceberg/Hudi.
Akym: Kafka, Flink, Spark Streaming; Lokal gurşaw üçin TestContainers.
Observability: Prometheus/Grafana/Otel; DataHub/Amundsen/Collibra kataloglary.
13) Antipatternler
"Synag etjek zat ýok - bu diňe SQL": birlik ýok we DQ → metrikler döwülýär.
Diňe E2E: haýal, durnuksyz, döwülmegiň sebäpleri belli däl.
SELECT: MINOR ewolýusiýasynda bozulýar.
Synaglarda ALTP-ni göni okamak: durnuksyzlyk we fleýka.
Golden-setleriň ýoklugy: netijeleri deňeşdirip boljak zat ýok.
Idempotentlik synaglary ýok: gaýtadan başlamak maglumatlary bozýar.
Unudylan akym: lateness/out-of-order/gaýtadan eltip bermek synagdan geçirilmeýär.
14) Durmuşa geçirmegiň ýol kartasy
1. Bazis: birlik-transformasiýa synaglary, altyn-toplumlar, SQL linter, DQ-düzgünler top-10 vitrin.
2. Şertnamalar: CI, SemVer-de schema-diff, awtomatiki laýyklyk barlagy.
3. Integrasiýalar: DAG-synaglary, idempotency, e2e möhüm akymlar üçin.
4. Akym: synaglar watermarks/lateness, dedup/idempotent sinks.
5. SLO we bulam-bujarlyk: önümdäki hil metrikleri, aladalar, bulam-bujarlyk ssenarileri, MTTR maksatlary.
6. Optimizasiýa: perf-regressiýa, býudjet-gwardlar, kanar relizleri.
15) Goýberilmezden öň çek-sanawy
- Unit synaglary esasy üýtgeşmeleri we UDF-leri öz içine alýar.
- Täze/doly/üýtgeşik/diapazonlar üçin DQ düzgünleri geçýär.
- Şertnamalar we schema-diff ýaşyl; appruwsyz bozulýan üýtgeşmeler ýok.
- Idempotentlik barlandy; atomic sink/merge işleýär.
- Akym: watermarks/late data/out-of-order örtülendir; dedup ýerinde.
- SLO metrikleri görkezilýär; alertler konfigurasiýa edildi; runbooks bar.
- Synag maglumatlary howpsuz; PII gizlenen; RLS/CLS barlandy.
- Perf regressiýalary ýok; skaner/wagt çäkleri berjaý edildi.
- Esasy ssenariýalaryň bulam-bujarlyk synaglary geçdi; MTTR-maksada ýetmek.
16) Kiçi şablonlaryň mysallary
16. 1 Unit SQL synagy (psevdo-dbt):
sql
-- tests/assert_positive_amount. sql select count() as c from {{ ref('fct_payments') }}
where amount < 0 having c = 0
16. 2 Täzelik düzgüni (Great Expectations-stil):
yaml expect_table_row_count_to_be_between:
min_value: 1000 mostly: 0. 99 expect_column_values_to_not_be_null:
column: user_id expect_column_values_to_be_unique:
column: txn_id
16. 3 Akymdaky lateness barlagy (pseudo-kod):
python emit(events_out_of_window <= threshold)
emit(reprocessed_events == late_events_detected)
16. 4 Contract-test (schema-diff CI):
bash schema-diff --current models/orders. yml --target prod_schema. yml --semver
17) Jemleýji
Maglumat konweýerlerini synagdan geçirmek dürli-dürli barlaglaryň toplumy däl-de, ulgamlaýyn düzgün-nyzamdyr. Synaglaryň piramidasyny, şertnamalary we syn edilişini dempotentlik, shemalaryň ewolýusiýasy we akym üýtgemeleri bilen birleşdiriň. Şonda neşirler çalt, hadysalar seýrek we gysga bolar we maglumatlara bolan ynam durnukly bolar.