Metrik mimarisi
Metrik Mimarisi
Metrik mimarisi, organizasyon boyunca net tanımlar, tekrarlanabilir hesaplama, şeffaf erişim ve göstergelerin güvenilir çalışmasını sağlayan bir kurallar, eserler ve hizmetler sistemidir. Amaç, "MAU", "Retention D30" veya "ARPPU'nun tüm panolarda, deneylerde ve raporlarda aynı olarak kabul edilmesidir.
1) İlkeler
1. Formüller ve referans kitaplar için Tek Hakikat Kaynağı.
2. Semantiğin uygulamadan ayrılması: Iş tanımı, her SQL/dizüstü bilgisayarda değil, semantik bir katmanda yaşar.
3. Metrikleri, şemaları ve formülleri (v1 - v2) yönetilen geçmiş geçişi ile sürüm oluşturma.
4. Tekrarlanabilirlik ve test edilebilirlik: hesaplamalar deterministiktir, testler kapsamındadır.
5. Gözlenebilirlik: tazelik, dolgunluk, tutarlılık ve sürüklenme - SLO'lar ve uyarılarla.
6. Güvenlik ve gizlilik: PII minimizasyonu, RLS/CLS, denetim.
7. Kod olarak işletim sistemi: tanımlar, dönüşümler, politikalar - CI/CD ile depoda.
2) Mimari katmanlar
Kaynak veriler: olaylar/işlemler, referans kitapları, model günlükleri/infra.
Entegrasyon ve temizlik: CDC/artımlı yükleme, dedup, zaman dilimlerinin birleştirilmesi.
Veri modeli (DWH): yıldız/kar tanesi, yavaşça değişen ölçümler (SCD), vekil anahtarlar.
Metriklerin semantik katmanı: tekdüze tanımlar, toplamalar, filtreler, zaman tanecikleri, toplama mantığı.
Tasarım katmanı: toplu/mikrobatch/akış; Pencereler, su izleri, anahtarlar.
Katalog ve sözlük: "pasaport metrikleri", soy, sahipler, haklar.
Erişim ve tüketim: BI/gösterge tabloları, API metrikleri, yüklemeler, deneyler/AB.
3) Veri ve Metrik Sözleşmeleri
Kaynak Sözleşme (Olaylar/Tablolar)
Şema: alanlar, türler, hükümsüzlük, birincil anahtar.
SLA: Tazelik (örneğin, "≤10 dakika gecikmesi"), sıklık, maksimum gecikmeli varış.
Kalite: anahtar benzersizlik, geçerli değer alanları, saat dilimi, idempotency.
Değişiklikler: şema evrim politikası (geri/ileri), sapma planı.
Metrik Sözleşme
Ad/Kimlik: 'RET _ D30 _ v2'
Domaine/Sahibi: Ürün Analizi
Tanım (insan dilinde)
Formül: SQL/pseudocode + giriş vitrinleri/anlamsal nesneler
Granülerlik/zamansal mantık: gün/hafta; Zaman içinde nokta kuralları, saat dilimi
Varsayılan Parçalar/Filtreler
Birimler ve para birimleri (dönüşüm oranı/tarihi)
SLO: tazelik ≤ X, doğruluk ≥ Y, kullanılabilirlik ≥ Z
Sürüm/Değişiklik Geçmişi/Geçerlilik Tarihi
Korkuluklar: geçerli aralıklar, Winzorization kuralları p1/p99
4) Metriklerin semantik katmanı
Katmanın görevi, tanımları ve toplama kurallarını merkezi olarak depolamaktır:- Öğeler: boyutlar (tarih, ülke, platform), gerçekler (olaylar, gelir), metrikler (ARPU, Retention D30), hesaplanan alanlar, takvim (iş/hafta sonu, tatiller).
- Zaman davranışı: takvim tabloları, gecikmeler, kohortlar, "sürgülü" pencereler (7/30/90).
- Toplama ve tutarlılık: güne göre miktar = ay, çift sayma hariç (farklı kullanıcılar).
- Mix-ayarlama: dürüst YoY için kanalların/ülkelerin sabit bir karışımına normalleştirme.
- Çok para birimi/zaman dilimleri: işlem tarihindeki temel para birimine göre ayarlanır; Yerel ve "kanonik" UTC dilimleri.
5) Hesaplama: toplu, mikrobatch, akış
Toplu: gece/saatlik işler, tam/artımlı yeniden hesaplamalar, idempotency kontrolü.
Microbatch: Çalışma panoları için pencereler 1-15 dakika.
Akış: lastikten geçen olaylar; Pencereler (yuvarlanma/kayma/oturum), su işaretleri (geç veri), tam olarak bir kez semantik (deadlock + ofset deposu).
- Operasyonel KPI'lar için 'HOP 5m, WINDOW 1h';
- Günlük metrikler için 'TUMBLE 1d';
- Oturumlar için 'OTURUM 30m'.
6) Kalite ve doğrulanabilirlik
Veri testleri: şematik, etki alanı (aralıklar), yönlendirici bağlantılar.
Metrik testleri: değişmezler (DAU≤MAU), boş olmayan bölümler, monotonluk beklentileri (kümülatif).
Mutabakat: anlamsal katman ve referans raporları/muhasebe arasında.
Veri sağlığı: tazelik, eksiksizlik, kopyalar, NULL fraksiyonu, anormal sıçramalar.
Drift metrikleri: Özellikle ML metrikleri için temel özelliklerde PSI/KL/JS.
7) Sürüm ve göçler
Formula versiyonu 'METRIC _ NAME _ vN' şeklindedir. Sürümü değiştirmeden tanımı "sessizce" değiştirmek yasaktır.
Göç stratejileri:- Yan yana: v1 ve v2 paralel olarak sayılır; Kullanıcıların uzlaşma ve eğitimi gerçekleştirilir.
- Cut-over: tüketicileri düşük yük penceresinde v2'ye geçirmek; Arşiv v1.
- Tarihin yeniden hesaplanması: tarihsel verilere göre yeniden doldurma; Fark protokolü (diff raporu).
- İletişim: değişiklik, giriş tarihi, kimin etkileneceği, talimatlar.
8) Metrikler için veri modeli
Gerçekler: tahıl (event_id, transaction_id, user_day), olay zamanı, toplam/değerler.
Boyutlar: kullanıcı, cihaz, coğrafya, kanal, ürün, takvim; Tarihsellik için SCD tipi.
Anahtarlar: vekil kimlikler, kararlı iş anahtarları, eşleme tabloları.
Anti-kopyalar: kimlik kuralları (kullanıcı birleştirme), oturum "yapıştırma" pencereleri.
9) Birimler, para birimleri, mevsimsellik
Birimler/format: açık birimler, yuvarlama, ölçekler (log/doğrusal).
Çok para birimi: işlem tarihindeki döviz kurunda dönüşüm; Hem "ham'hem de normalleştirilmiş miktarı saklayın.
Mevsimsellik: YoY ve mevsim endeksleri; Ayrı "tatil" etkileri.
10) Güvenlik ve erişim
Row-Level Security (RLS): Ülke/marka/iş ortağına göre metriklere erişim.
Sütun Düzeyinde Güvenlik (CLS) - PII/finans alanlarını içerir.
Denetim: Metriği kim istedi, hangi filtreler, hangi veriler dışa aktarıldı.
API farklılaştırması: "role göre kümeler" vs "ayrıntılı yüklemeler".
11) Gözlemlenebilirlik ve SLO
SLO tazeliği: örneğin, "operasyonel KPI - gecikme ≤ 15 dakika, günlük - 06:00 yerel saatine kadar".
Kullanılabilirlik SLO: ≥ 99. API/semantik katman için %9.
Uyarılar: SLO suçluluğu, metrik sıçramalar, NULL/yinelenen büyüme, varyans v1 vs v2> X %.
Çalışma kitapları: bozulduğunda ne yapmalı - RCA adımları, geri dönüş (örneğin, son geçerli "anlık görüntü metriğine" geçiş).
12) Deneyler ve metrikler
Korkuluk metrikleri: gecikme, esneklik, puanlama için FPR/FNR.
A/B için tekdüze tanımlar: dönüşümler, alıkoyma, NSM - aynı anlamsal katman aracılığıyla.
Minimum ayırt edilebilir etki (MDE), güç analizi: metrik kartındaki parametreleri depolar.
Nedensel ilişkilendirme: karma ayarlama ve kontrol gruplarına göre politikalar.
13) API metrikleri ve tüketimi
Запросы: 'GET/metrics/{ name}? from = 2025-09-01 & to = 2025-10-01 & dims = country, platform & filters = channel: paid'.
Politikalar: limitler, önbellek, sayfalama, idempotent "dışa aktarma".
Sürümler: 'X-Metrik-Sürüm: v2' başlığı, kullanımdan kaldırma uyarıları.
14) Desenler ve eserler
Metrik Pasaport (örnek)
Kod/Sürüm: 'ARPPU _ v3'
Tanım: Dönem için ödeme yapan kullanıcı başına ortalama gelir
Формула: 'sum (revenue_net )/ count_distinct (user_id olduğu paying_flag=1)'
Granülerlik: gün; Toplama: hafta/ay = pay toplamı/payda toplamı
Kaynaklar: 'fact _ payments _ v2','dim _ users _ scd '
Birimler: currency 'base _ ccy'; Şu andan itibaren döviz kurunda dönüşüm
Varsayılan filtreler: aktif piyasalar, test işlemlerini hariç tutma
SLO: 1 saat ≤ tazelik; API ≥ 99 kullanılabilirliği. 9%
Korkuluklar: ARPPU ∈ [0; 10 000]; Vinzorizasyon p1/p99
Sahipler: Para Kazanma Analitiği; Revizyon tarihi: 2025-10-01
Kontrol listesi metrik sürümü
- Tanım ve formül kabul edildi, testlerle kaplandı
- Oluşturulan anlamsal nesne; soy belgelendi
- Dolgu ve referanslar tamamlandı
- SLO/uyarılar yapılandırılmıştır; runbook hazır
- Haklar ve RLS yapılandırılmış; PII gizli
- Eski sürümler panolarda/deneylerde değiştirildi
- Changelog/iletişim gönderildi
point-in-time SQL sözde kodu (örnek Tutma D30)
sql
WITH cohort AS (
SELECT user_id, MIN(event_date) AS signup_date
FROM fact_events
WHERE event_type = 'signup'
GROUP BY 1
),
activity AS (
SELECT user_id, event_date
FROM fact_events
WHERE event_type = 'app_open'
),
ret AS (
SELECT c. signup_date,
COUNT(DISTINCT CASE WHEN a. event_date = c. signup_date + INTERVAL '30 day' THEN a. user_id END) AS returned,
COUNT(DISTINCT c. user_id) AS cohort_size
FROM cohort c
LEFT JOIN activity a
ON a. user_id = c. user_id
AND a. event_date BETWEEN c. signup_date AND c. signup_date + INTERVAL '30 day'
GROUP BY 1
)
SELECT signup_date, returned / cohort_size AS retention_d30
FROM ret;
15) Sık yapılan hatalar ve bunlardan nasıl kaçınılacağı
Sessiz formül düzenlemeleri: her zaman sürüm ve changelog aracılığıyla.
"Her dizüstü bilgisayarda farklı" metrikleri: Anlamsal katmanı/API'yi zorlayın.
Tutarsız zaman dilimleri/para birimleri: merkezi takvim ve FX tablosu.
Çift kullanıcı muhasebesi: toplama kuralları ve benzersiz anahtarlar.
Opak tazelik: Gecikme/güncelleme süresini açıkça gösterir.
Bir mühendise bağımlılık: Her şey bir kod gibidir, bir inceleme ve bir onsall ile.
Toplam
Metrik mimarisi sözlük + semantik katman + sağlam hesaplama + yönetişim ve SLO'dur. Açıklanan ilkeleri (sözleşmeler, testler, sürümler, gözlemlenebilirlik, güvenlik) izleyerek, metrikleri "sayı anlaşmazlıkları'ndan sürdürülebilir bir ürün ve iş yönetimi mekanizmasına dönüştürürsünüz.