GH GambleHub

Analitik Arşivlerin İndekslenmesi

1) Neden bir iGaming platformunu endeksleme

Analiz hızı: GGR/NET raporları, dönüşümler, RG/AML ve A/B deneyleri SLA'ya uygundur.
Maliyet: taramak için daha az bayt - daha düşük hesaplama/depo faturası.
Güvenilirlik: Kararlı p95/p99 pano gecikmesi ve API metrikleri.
Ölçek: "Tam tarama" cehennemi değeri olmayan düzinelerce marka/pazar/PSP/sağlayıcı.

2) Yük modeli (indekslemeden önce)

Факты: 'payments', 'game _ rounds', 'sessions', 'bonus _ events'.
Boyutlar:'dim _ user '(PII olmadan),' dim _ provider ',' dim _ psp ',' dim _ country '.
İstekler: "Son N gün", 'marka/ülke/sağlayıcı/psp'ye göre toplamalar, durum alanına göre filtreler, vekil anahtarlarla katılma, JSON özelliklerine göre arama (ödeme yöntemi, cihaz), üst-K/yüzdelik.

Seçicilik, kardinalite ve kullanım sıklığına göre endeksler seçiyoruz.

3) Endeks türleri ve ne zaman alınacağı

3. 1 Klasikler

B-tree: equality/ranges for highly selective columns ('user _ surrogate _ id', 'occured _ at', 'amount').
Hash: saf eşitlik; Analitikte daha az sıklıkla (zayıf aralıklara karşı).
Bitmap: Düşük kardinalite ve sık bağlı filtreler ('ülke', 'kyc _ level','rg _ state ',' marka '). Maskeleri toplamak için farklıdır.

3. 2 Sütun özgüllüğü

Min-max (veri atlama): Parke şeritlerinde/parçalarında otomatik istatistik "minimum/maksimum" - motor blokları atlar. Filtrelenmiş alanlara göre sıralandığında daha iyi çalışır.
Bloom indeksleri: bir bloktaki bir değere ait olmanın hızlı olasılıksal testleri ('user _ id', 'transaction _ id', 'psp' için kullanışlıdır).
BRIN (Blok Aralığı Endeksi): Veriler doğal olarak sipariş edilirse (zaman) aralıkları engellemek için ucuz "işaretçiler". Ucuz ama zaman serisi için etkili.

3. 3 Gelişmiş/Uzmanlaşmış

GiST/GIN (ters çevrilmiş): JSON/diziler/metin, iç içe niteliklere göre filtreler ('meta veriler. Method = 'Papara', 'aygıtı. os [...] ').
Join/Projection (ClickHouse/MPP): join/agg'yi hızlandırmak için malzemeler (ön birleştirme anahtarı, ön toplamaların yanında saklanır).
Vektör (ANN): benzer gömme (öneriler/dolandırıcılık karşıtı davranış) için arama -'en yakın komşu endeksi'olarak IVF/HNSW/Flat.
Z-ordering/Z-order (lakehouse/Databricks )/Cluster tuşları (Snowflake )/ORDER BY (ClickHouse): Daha iyi veri atlama için diskteki verilerin çok boyutlu kümelenmesi.

4) Bölümleme, sıralama, kümeleme

Taraflar (tarih/ülke/marka): "Küçük dosyaların lanetinden" kaçınmak için büyük (gün/hafta). "WHERE/erişim haklarında yüksek seçiciliğe sahip alanları seçiyoruz.
Bir taraf içinde sıralama: 'ORDER BY (occurred_at, marka, psp)' veya Z-order by '(marka, ülke, sağlayıcı)' - min-max ve bloom bu şekilde daha iyi çalışır.
Cluster/Recluster: Lokaliteyi korumak için periyodik yeniden sınıflandırma.
TTL ve saklama: Eski parçaların/segmentlerin otomatik olarak silinmesi.

5) Materyalize görüşler ve projeksiyonlar

Sıcak dilimler için MV: 'payments _ 7d _ by _ brand _ psp', 'rounds _ 1d _ by _ provider'. Upserts akışını destekliyoruz.
ClickHouse/Aggregate tablolar-Hazır ayarlar, roll-up düzeyleri (chas ^ den ^ nedelya).
Sonuç önbelleği: Tekrarlanabilir panolar için sorgu sonuç önbelleği/depo sonuç önbelleği (sorgu belirteci ve veri tazeliği ile doğrulanır).

6) Yarı yapılandırılmış veriler (JSON/VARIANT)

Yola göre dizinler: json yollarında ters/GIN dizini ('$ .device. Os ',' $ .psp. ayrıntılar. Yöntem ').
Önemli özelliklerin sütunlarda maddeleştirilmesi: kararlı filtreler için (ödeme yöntemi, cihaz, uygulama sürümü).
Anahtar istatistikler: Seçici bir plan için dağıtımların toplanması.

7) Veri Gölleri: Buzdağı/Delta/Hudi

Manifest indeksleri: parke dosyaları hakkında meta veriler (min-max, null-count, bloom) - bölüm budama + dosya atlama.
Dosya sıkıştırma/birleştirme: Küçük dosyaların "optimal" boyutta (128-1024 MB) düzenli olarak birleştirilmesi.
Kümeleme/Z-sırası: Korelasyon alanları için dosyaları yeniden paketleme (örn. 'marka, ülke, oluştu _ at').
Dizinleri Sil/Güncelleştir: okumada birleşmeyi hızlandırmak için deltaları ve bloom'u konumlandırın.

8) Endeksler nasıl seçilir: pratik kontrol listesi

1. En üstteki N isteklerini toplayın (yükün %90'ı) -/join/group filtre alanları.
2. Her alan için,'sel = 1 - farklı (değer )/satırlar've kardinalite seçiciliğini değerlendirin.
3. Zamana göre toplu işlem + kararlı filtreler/erişimler ile 1-2 ölçüm.
4. Filtreleri eşleştirmek ve tuşlara katılmak için sıralama/küme tuşları.
5. Point id için bloom, düşük kardinalite için bitmap ekleyin.
6. Sıcak agregasyonlar - MV/projeksiyonlar.
7. JSON yolları - ters dizinler + materyalizasyon.
8. Göllerde - bir programda sıkıştırma ve kümeleme.
9. SLO girin: p95 gecikme, bayt taranmış/istek, atlanan veri hızı.

9) Destek ve bakım

ANALYZE/statistics: kardinaliteleri ve histogramları güncelle; Aksi takdirde, iyileştirici "kör'dür.
VAKUM/OPTIMIZE/RECLUSTER: birleştirme ve yeniden sınıflandırma.
Dizinlerin kullanımını izleme: "kaplama oranı", "kullanılmayan dizin listesi", "taranan baytlar/atlanan baytlar".
Otomatik danışmanlar: küme anahtarları için periyodik öneriler ve sorgu günlüğüne göre sıralama.
Regresyon testleri: yeni anahtarları tüketmeden önce - istek profilini ve maliyetini karşılaştırır.

10) Metrikler ve SLO indeksleme

Teknik: p95/p99 gecikme, taranan bayt/sorgu, atlanan bayt %, dokunulan dosyalar, önbellek isabet oranı.
Ekonomi: $/request, $/dashboard, $/TB tarama.
İşlemler: sıkıştırma süresi, yeniden sınıflandırma kuyruğu, "küçük dosyaların" paylaşımı.
Planların kalitesi: Endeksleri/projeksiyonları kullanan sorguların oranı, kardinalitelerin doğruluğu.

11) iGaming kılıfları (hazır tarifler)

11. 1 Ödemeler/PSP'ler: Düşmeler/Reddetmeler

Parti: "Gündüz". Sıralama '(marka, ülke, occurred_at)'.
Bloom: 'transaction _ id', 'user _ id'. Bitmap: 'psp', 'durum'.
MV: 'Payments _ 7d _ by _ brand _ psp (durum, düşüşler)'.
Sonuç: 8 ile p95 ↓. 2'den 1'e. 1s, taranmış bayt ↓ на %87.

11. 2 Oyun Turları: Sağlayıcı/Oyun

Z-order/ORDER BY: '(sağlayıcı, game_id, occurred_at)'.
Projeksiyon/agg: 'Rounds _ 1d _ by _ provider _ game'.
BRIN (if Postgres-like storage): tarafından 'occurred _ at'.
Sonuç: En iyi K oyunları/saat - sıcak önbellekte saniyenin altı.

11. 3 RG/AML Kısıtlaması/Kendini Dışlama Olayları

Bitmap:'rg _ state ',' kyc _ level '. JSON-yolu CIN: '$ .reason'.
MV: "30 gün boyunca aktif kısıtlamalar" + kullanıcı düzeyinin PII olmadan gerçekleşmesi.
Sonuç: tam tarama milyar olay olmadan uyumluluk için hızlı örnekler.

11. 4 Antifraud: yollar ve cihazlar

JSON maddeleştirilmesi - kolonki: 'cihazı. Os ',' cihazı. Model ',' ödeme. Yöntem '.
Bloom: 'graph _ device _ id'. Küme: '(marka, ülke, cihaz. os) '.
Vektör indeksi: "7d deposit behavior" gömmeleri - benzer anomaliler için hızlı k-NN.

12) Güvenlik ve gizlilik

Dizinlenmiş alanlarda ve plan günlüklerinde sıfır PII.
Disk üzerinde şifreleme: İndeksler/istatistikler verilerle aynı şekilde şifrelenir.
Kümelerin K-anonimliği: MV/projeksiyonlar sadece ≥N gruplar tarafından yayınlanır.
Coğrafi/kiracı izolasyonu: taraflar/anahtarlar 'marka/ülke/lisans' içerir.
Yasal Bekletme: Endeksler/manivestler de "dondurmaya" girer.

13) Anti-desenler

Dizin "all in a row" - hacim patlaması ve yazma-amplifikasyon.
Küçük partiler (saat/dakika) - tahtalar ve "küçük dosyalar" fırtınası.
Sıfır veri atlama ile eşleşmeyen anahtarları sıralayın - filtreler.
İstatistik eksikliği - kötü planlar, tam tarama.
Yol indeksleri olmadan ve sıcak nitelikleri gerçekleştirmeden JSON.
Sıkıştırma ve recluster görmezden gelin - 2-4 hafta içinde bozulma.

14) Şablonlar (kullanıma hazır)

14. 1 Kümeleme/Dizinleme Politikası (YAML)

yaml dataset: gold. payments partition_by: ["date"]
order_by: ["brand","country","occurred_at"]
indexes:
bloom: ["transaction_id","user_surrogate_id"]
bitmap: ["psp","status","rg_state"]
materialized_views:
- name: mv_payments_7d_brand_psp group_by: ["brand","psp","status"]
window: "7d"
slo:
p95_latency_ms: 1200 scanned_bytes_per_query_max_mb: 256 maintenance:
compact_small_files: true recluster_cron: "0 /6  "
privacy:
pii_in_index: false

14. 2 Göl Sıkıştırma Planı (Iceberg/Delta)

yaml compaction:
target_file_size_mb: 512 small_file_threshold_mb: 64 zorder_by: ["brand","country","occurred_at"]
run_every: "PT6H"
max_concurrency: 4

14. 3 JSON alanları için dizinler

sql
-- GIN/inverted index on device attributes
CREATE INDEX idx_device_json ON gold. sessions
USING GIN ((device_json));
-- Materialization of critical pathways
ALTER TABLE gold. sessions ADD COLUMN device_os TEXT;
UPDATE gold. sessions SET device_os = device_json->>'os';
CREATE BITMAP INDEX idx_device_os ON gold. sessions(device_os);

14. 4 Dizin İzleme SLO'ları

yaml monitoring:
skipped_bytes_share_min: 0. 70 index_usage_rate_min: 0. 85 stats_freshness_max_hours: 24 small_files_share_max: 0. 10

15) Uygulama Yol Haritası

0-30 gün (MVP)

1. Üst N isteklerini toplama ve profilleri tarama.
2. Tarihe göre bölümleme + filtrelerle eşleşen sıralama.
3. Id alanları için veri atlama (min-max) ve bloom özelliğini etkinleştirin.
4. Sıcak metrik için bir MV (ödemeler 7d).
5. Dashboard SLI: p95, taranan baytlar, atlanan paylaşım, küçük dosyalar.

30-90 gün

1. JSON yolları: ters indeksler + materyalizasyon.
2. Göl: 2-3 tuşla sıkıştırma ve Z sırası/kümeleme.
3. Anahtar/Projeksiyon Otomatik Danışmanı; Düzenli analiz.
4. "Küçük dosyalar" olan partilerin (gün - hafta) gözden geçirilmesi.

3-6 ay

1. Sürüm oluşturma ve SLA ile MV/projeksiyon kataloğu.
2. Öneriler/dolandırıcılıkla mücadele için vektör endeksleri.
3. Birleşik SLO politikası ve bütçeleri $/istek; bozulma uyarıları.
4. İndeks gizliliği denetimi, coğrafi/kiracı izolasyonu.

16) RACI

Veri Platformu (R): taraflar/endeksler/kompaktlar, otomatik danışmanlar, izleme.
Analytics/BI (R): Gösterge tabloları için MV/projeksiyonlar, sorgu profili oluşturma.
Etki Alanı Sahipleri (C): sıcak dilimler ve filtreler için ölçütler.
Güvenlik/DPO (A/R): gizlilik, PII politikaları, coğrafi/kiracı anahtarları.
SRE/Gözlenebilirlik (C): SLO/uyarı, sıkıştırmalar için kapasiti.
Finans (C): $/sorgu bütçeleri ve endekslerden tasarruf.

17) İlgili bölümler

Veri Şemaları ve Evrimi, Veri Doğrulama, DataOps Uygulamaları, Anomali ve Korelasyon Analizi, Analitik ve Metrikler API, Veri Kümeleme, Boyut Azaltma, MLOps: Model Sömürü.

Toplam

Analitik depolama indeksleme bir stratejidir,'her şey hakkında bir indeks oluşturmak'değil. Doğru bölümler ve sıralama, veri atlama ve çiçek açma, düşünceli MV/projeksiyonlar ve düzenli sıkıştırma, kontrollü bir maliyetle ve gizlilik riski olmadan hızlı ve öngörülebilir sorgular sağlar. IGaming için bu, SLA ve bütçe dahilinde ödemeler, sağlayıcılar ve RG/AML için operasyonel çözümler anlamına gelir.

Contact

Bizimle iletişime geçin

Her türlü soru veya destek için bize ulaşın.Size yardımcı olmaya her zaman hazırız!

Entegrasyona başla

Email — zorunlu. Telegram veya WhatsApp — isteğe bağlı.

Adınız zorunlu değil
Email zorunlu değil
Konu zorunlu değil
Mesaj zorunlu değil
Telegram zorunlu değil
@
Telegram belirtirseniz, Email’e ek olarak oradan da yanıt veririz.
WhatsApp zorunlu değil
Format: +ülke kodu ve numara (örneğin, +90XXXXXXXXX).

Butona tıklayarak veri işlemenize onay vermiş olursunuz.