*Customer* cədvəlinizdə *first_name* sahəsi bu gün günortadan sonra NULL gəlməyə başlayanda nə olur? Marketinq kampaniyası 12.000 nəfərə "Hörmətli ," deyə email göndərir. Bu kırılmaların çoxu producer-consumer arasındakı söylənməmiş bir gözləntinin sakitcə pozulmasındandır. Data contract-lar o gözləntini yazılı edir.
Data contract nədir?
Producer sistem (CRM) ilə consumer sistem (DWH, ML, dashboard) arasında məlumat üçün imzalanmış SLA. Schema, freshness, keyfiyyət hədləri, semantik məna, sahiblik və change policy vahid YAML/JSON sənəddə yaşayır.
Nümunə (qısaldılmış):
yaml contract: customer.v3 owner: crm-team schema: customer_id: string, not_null, unique first_name: string, not_null, max_len=100 email: string, format=email, nullable=true freshness: max_lag=15m quality: uniqueness_customer_id: 100% null_rate_first_name: <1% breaking_change_policy: 30d_notice
Söylənməmiş gözlənti necə pozulur?
Real nümunələr:
- CRM komandası
first_name-ə middle name birləşdirir; uzunluq 100-dən 200-ə çıxır; DWH error vermir, BI-da text wrap pozulur. - Lookup-da
statuskodu illərlə 1-5 ikən bir update 6 əlavə edir; ML modeli 6-nı görmədiyi üçün seqment yanlış təsnif edilir. - Hotfix
order_id-ni int-dən string-ə çevirir; downstream ödəmə uzlaşması səssizcə sürüşür.
Hər biri saatlarla incident yaradır. Data contract bunları deploy zamanında tutur.
Kontraktın 5 komponenti
- Schema təminatı
- Freshness (max gecikmə)
- Keyfiyyət hədləri
- Semantik tərif
- Change policy (typik 30 gün notice)
İstehsalda tətbiq
Kontrakt repo-da statik fayl. Üç icra nöqtəsi:
- CI gate: kontrakta zidd PR bloklanır.
- Pipeline test: hər ETL run-da Soda Core / dbt-test / custom assert metrikləri yoxlayır.
- Catalog UI: aktiv kontraktlar kataloqda cədvəl üzərində görünür.
SLA-ya bağlama
Kontrakt pozuntusu avtomatik incident yaradır və producer komandasının SLA-sına yazılır. Bu, kontraktı diri saxlayan yeganə təminatdır.
Versionlama
Kontraktlar customer.v1, v2, v3 kimi versionlaşdırılır. Breaking change v3-ə qərar verilibsə:
- v2 və v3 paralel yayımlanır 60 gün.
- Consumer-lar v3-ə köçür, telemetriya izləyir.
- v2 retire olunur.
CentraQL və data contract
CentraQL DataQuality modulu kontrakt faylını oxuyur, qaydaları avtomatik istehsal edir, Trust Score-a ağırlıqlı qatır. CFO dashboard-unda "Customer cədvəli Trust 87 — son 7 gündə contract.v3 freshness 2 pozuntu" sətri görünür.
Haradan başlamalı?
Praqmatik 3 aylıq plan:
- Həftə 1-2: ən kritik 5 cədvəlin consumer-ları toplanır.
- Həftə 3-6: ilk 5 kontrakt yazılır, imzalanır.
- Həftə 7-10: CI gate + Soda Core inteqrasiyası.
- Həftə 11-12: aylıq review, ilk 5-dən genişlənmə.
12 həftədən sonra təşkilat sürpriz kırılmaların ~80% azaldığını görür.
Yekun
Data contract sehr deyil; producer-consumer arasındakı sakit razılığı yazılı, ölçülə bilən, audit edilə bilən etir. Pipeline etibarlılığı kontraktın aktiv tətbiqi ilə qalxır.
