GH GambleHub

Analitik ammarlary indekslemek

1) Näme üçin iGaming-platforma indekslenmeli?

Analitikanyň tizligi: GGR/NET, konwersiýalar, RG/AML we A/B-synaglary boýunça hasabatlar SLA-a gabat gelýär.
Bahasy: az skanirlenen baýt → aşaky hasap hasaplamak/ammar üçin.
Ygtybarlylygy: durnukly p95/p99 daşbordlaryň we API metrikleriniň gizlinligi.
Masştab: onlarça marka/bazar/PSP/üpjün ediji "doly scan" dowzah bahasy bolmazdan.

2) Ýükleriň modeli (indekslemezden öň)

Факты: `payments`, `game_rounds`, `sessions`, `bonus_events`.
Ölçegler: 'dim _ user' (PII-siz), 'dim _ provider', 'dim _ psp', 'dim _ country'.
Soraglar: "Soňky N günler", 'brand/country/provider/psp' boýunça agregasiýalar, status meýdany boýunça süzgüçler, surrogate-keys boýunça join's, JSON-atributlar boýunça gözleg (töleg usuly, enjam), top-K/percentile.

Saýlama, kardinallyk we ulanylyş ýygylygy esasynda indeksleri saýlaýarys.

3) Indeksleriň görnüşleri we olary haçan almaly

3. 1 Nusgawy

B-tree: ýokary saýlama sütünler boýunça deňlik/diapazonlar ('user _ surrogate _ id', 'occurred _ at', 'amount').
Hash: arassa deňlik; analitikada az bolýar (zolaklara garşy gowşak).
Bitmap: pes kardinallyk we ýygy-ýygydan birikdirilen süzgüçler ('country', 'kyc _ level', 'rg _ state', 'brand'). Maskalary jemlemek üçin ajaýyp.

3. 2 Columnar aýratynlygy

Min-max (data skipping): parket-straýplarda/böleklerde "iň az/iň köp" awtomatiki statistika → hereketlendiriji bloklary sypdyrýar. Süzülýän meýdanlar boýunça sortlananda has gowy işleýär.
Bloom-indeksler: Blokdaky gymmatlyklaryň çalt ähtimallyk synaglary ('user _ id', 'transaction _ id', 'psp' üçin peýdalydyr).
BRIN (Block Range Index): Maglumatlar tebigy tertipde (wagt) bolsa, bloklaryň diapazonlaryna arzan "görkezijiler". Arzan, ýöne time-series üçin täsirli.

3. 3 Ösen/ýöriteleşdirilen

GiST/GIN (tersine): JSON/arrays/tekst, içerki atributlar boýunça süzgüçler ('metadata. method = 'Papara'`, `device. os in [...]`).
Join/Projection (ClickHouse/MPP): join/agg çaltlaşdyrmak üçin materiallar (pre-join key faktyň ýanynda saklanýar, deslapky agregasiýalar).
Wektorlar (ANN): şuňa meňzeş embeddingleri gözlemek (teklipler/antifrod-hereket) - IVF/HNSW/Flat "ýakyn goňşularyň görkezijisi" hökmünde.
Z-tertipleşdirmek/Z-order (lakehouse/Databricks )/Cluster keys (Snowflake )/ORDER BY (ClickHouse): has gowy skipping maglumatlary üçin diskdäki köp ölçegli klaster.

4) Partiýalaşdyrmak, sortlamak, toplamak

Partisiýa (date/country/brand): "kiçi faýllaryň näletlenmeginden" gaça durmak üçin uly (gün/hepde). WHERE/Access Rights-da ýokary saýlama meýdanlary saýlaýarys.
Partiýanyň içinde sortlamak: 'ORDER BY (occurred_at, brand, psp)' ýa-da Z-order po '(brand, country, provider)' - şonuň üçin min-max we bloom has gowy işleýär.
Cluster/Recluster: lokalizasiýany saklamak üçin wagtal-wagtal klaster.
TTL we retenşn: köne bölekleri/segmentleri awtomatiki aýyrmak.

5) Materiallaşdyrylan teklipler we proýeksiýalar

MV: 'payments _ 7d _ by _ brand _ psp', 'rounds _ 1d _ by _ provider'. Artyk goldaýarys (streaming upserts).
Proýeksiýalar (ClickHouse )/Aggregate tables: deslapky toparlanmalar, roll-up derejeleri (sagat → gün → hepde).
Netijeler keşi: gaýtalanýan dashbordlar üçin query result cache/warehouse result cache (soragyň belligi we maglumatlaryň täzeligi boýunça tassyklaýarys).

6) Ýarym gurluş maglumatlary (JSON/VARIANT)

Ýollar boýunça indeksler: tersine/json-ýollarda GIN-indeks ('$ .device. os`, `$.psp. details. method`).
Möhüm atributlary sütünlere materiallaşdyrmak: durnukly süzgüçler üçin (töleg usuly, enjam, programmanyň görnüşi).
Açarlar boýunça statistika: saýlama meýilnama üçin paýlanyşlary ýygnamak.

7) Maglumat kölleri: Iceberg/Delta/Hudi

Manifest-indeksler: parket-faýllar barada metadata (min-max, null-count, bloom) → partition pruning + file skipping.
Faýllary ýygnamak/birleşdirmek: kiçi faýllary "optimal" ululykda yzygiderli merge (128-1024 MB).
Clustering/Z-order: baglanyşdyryjy ýerler üçin faýllary gaýtadan gaplamak (mysal üçin 'brand, country, occurred _ at').
Delete/Update indeksleri: merge-on-read çaltlaşdyrmak üçin pozisiýa deltalary we bloom.

8) Indeksleri nädip saýlamaly: amaly çek-sanawy

1. Top-N soraglaryny (90% ýük) toplaň → süzgüç meýdanlary/join/group.
2. Her meýdan üçin 'sel = 1 - distinct (value )/rows' we kardinallyga baha beriň.
3. Wagt boýunça partiýa + 1-2 durnukly süzgüçli/elýeterli ölçegler.
4. Sortlar/klaster keys süzgüçler we join-açarlar bilen utgaşdyrylýar.
5. Pes kardinallyk üçin nokat id, bitmap üçin bloom goşuň.
6. Gyzgyn agregasiýalar → MV/proýeksiýalar.
7. JSON ýollary → tersine indeksler + materializasiýa.
8. Köllerde - kompaksiýa we clustering.
9. SLO giriň: p95-gizlinlik, skanirlenýän baýtlar/soraglar, skipped data paýy.

9) Goldaw we hyzmat etmek

ANALYZE/statistika: kardinallary we gistogrammalary täzeläň; ýogsam "kör" optimizator.
VACUUM/OPTIMIZE/RECLUSTER: defragmentasiýa we pereklasterizasiýa.
Indeksleriň ulanylyşyna gözegçilik etmek: "covering rate", "unused index list", "bytes scanned/bytes skipped".
Awto-geňeşçiler: query log esasynda klaster-açarlar we sortlar boýunça döwürleýin teklipler.
Regressiýa synaglary: täze açarlary goýmazdan ozal - haýyşlaryň profilini we bahasyny deňeşdirmek.

10) Görkezijileriň metrikleri we SLO

Tehniki: p95/p99 latency, scanned bytes/query, skipped bytes%, files touched, cache hit-rate.
Ykdysadyýet: $/haýyş, $/dashboard, $/TB skan.
Amallar: kompaksiýa wagty, pereklasterizasiýa nobaty, "kiçi faýllaryň" paýy.
Meýilnamalaryň hili: indeksleri/proýeksiýalary ulanýan haýyşlaryň paýy, kardinallaryň takyklygy.

11) iGaming halatlary (taýýar reseptler)

11. 1 Tölegler/PSP: düşmek/şowsuzlyk

Partiýa: 'by day'. Sortlamak: '(brand, country, occurred_at)'.
Bloom: `transaction_id`, `user_id`. Bitmap: `psp`, `status`.
MV: `payments_7d_by_brand_psp(status, declines)`.
Netije: p95 ↓ c 8. 2s-den 1-e çenli. 1s, scanned bytes ↓ на 87%.

11. 2 Oýun tapgyrlary: üpjün ediji/oýun

Z-order / ORDER BY: `(provider, game_id, occurred_at)`.
Projection/agg: `rounds_1d_by_provider_game`.
BRIN (Postgres şuňa meňzeş ammar bolsa): 'occurred _ at'.
Netije: Top-K oýunlary/sagat - gyzgyn keşde sub-second.

11. 3 RG/AML: çäklendirmeler/öz-özüni aýyrmak wakalary

Bitmap: `rg_state`, `kyc_level`. JSON-path GIN: `$.reason`.
MV: "30 günüň içinde işjeň çäklendirmeler" + PII bolmazdan user-derejäniň materiallaşdyrylmagy.
Netije: milliardlarça wakany doly skanirlemän, gabat gelmek üçin çalt nusgalar.

11. 4 Antifrod: ýollar we enjamlar

JSON → sütünleriniň materializasiýasy: 'device. os`, `device. model`, `payment. method`.
Bloom: `graph_device_id`. Cluster: `(brand, country, device. os)`.
Wektor indeksi: embeddingler "7d üçin goýumlaryň özüni alyp barşy" → şuňa meňzeş anomaliýalar üçin çalt k-NN.

12) Howpsuzlyk we gizlinlik

Zero-PII indekslenýän meýdançalarda we meýilnama ýazgylarynda.
Diskdäki şifrlemek: indeksler/statistika maglumatlar ýaly şifrlenýär.
Agregatlaryň K-anonimligi: MV/proýeksiýalary diňe ≥ N toparlary çap edýär.
Geo/tenant-izolýasiýa: partiýa/açarlar 'brand/country/license' -ni öz içine alýar.
Legal Hold: indeksler/manivestler hem "doňdurylýar".

13) Anti-patternler

"Hemme zady" indeksle → Göwrümiň partlamasy we write-amplification.
Kiçijik bölekler (sagat/minut) → zolaklaryň tupany we "kiçi faýllar".
Süzgüçlere gabat gelmeýän sortlama açarlary → sıfır data skipping.
Statistikanyň ýoklugy → erbet meýilnamalar, full scan.
JSON ýol indeksleri bolmazdan we "gyzgyn" atributlary materiallaşdyrmazdan.
Kompaksiýa we recluster → 2-4 hepdeden soň pese gaçýar.

14) Şablonlar (ulanmaga taýýar)

14. 1 Toplamak/indekslemek syýasaty (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 Köl kompaksiýa meýilnamasy (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 üçin indeksler

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 Indeks monitoringi SLO

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) Durmuşa geçirmegiň ýol kartasy

0-30 gün (MVP)

1. Top-N soraglaryny we skaner profillerini ýygnamak.
2. Süzgüçler bilen ylalaşylan sortlama senesi boýunça partirlemek.
3. Id-meýdanlar üçin data skipping (min-max) we bloom goşuň.
4. "Gyzgyn" metrika üçin bir MV (payments 7d).
5. Dashbord SLI: p95, scanned bytes, skipped share, small files.

30-90 gün

1. JSON ýollary: tersine indeksler + materializasiýa.
2. Köl: 2-3 açar boýunça kompaksiýa we Z-order/clustering.
3. Açarlar/proýeksiýalaryň awto-geňeşçisi; yzygiderli ANALYZE.
4. "Kiçi faýllar" bolan ýerdäki partiýalary (day → week) täzeden gözden geçirmek.

3-6 aý

1. MV/proýeksiýalaryň wersiýa we SLA katalogy.
2. Teklipler/antifrod üçin wektor indeksleri.
3. SLO we býudjetleriň bitewi syýasaty $/haýyş; pese gaçmagyň töwekgelçiligi.
4. Indeks gizlinliginiň barlagy, geo/tenant-izolýasiýa.

16) RACI

Data Platform (R): partiýa/indeksler/kompaksiýalar, awto-geňeşçiler, gözegçilik.
Analytics/BI (R): MV/dashboard proýeksiýalary, soraglary profillemek.
Domain Owners (C): "gyzgyn" kesişleriň we süzgüçleriň ölçegleri.
Howpsuzlyk/DPO (A/R): Gizlinlik, PII-syýasatlar, geo/tenant-açarlar.
SRE/Observability (C): SLO/alerting, kompaksiýa üçin kapasiti.
Maliýe (C): býudjetler $/indekslerden talap we tygşytlamak.

17) Baglanyşykly bölümler

Maglumat shemalary we olaryň ewolýusiýasy, Maglumatlary tassyklamak, DataOps-praktikalar, Anomaliýalary we korrelýasiýalary seljermek, Analitikanyň we metrikanyň API-leri, Maglumatlary toparlaşdyrmak, Ölçegleriň peselmegi, MLOps: modelleriň işleýşi.

Jemi

Analitik ammar indeksasiýasy "hemme zat üçin indeks döretmek" däl-de, strategiýadyr. Dogry partiýa we sortlar, data skipping we bloom, oýlanyşykly MV/proýeksiýalar we yzygiderli kompaksiýa gözegçilik edilýän bahada we gizlinlik töwekgelçiligi bolmazdan çalt we öňünden aýdyp boljak haýyşlar berýär. iGaming üçin bu SLA we býujetiň çäklerinde tölegler, üpjün edijiler we RG/AML boýunça amaly çözgütleri aňladýar.

Contact

Biziň bilen habarlaşyň

Islendik sorag ýa-da goldaw boýunça bize ýazyp bilersiňiz.Biz hemişe kömek etmäge taýýar.

Integrasiýany başlamak

Email — hökmany. Telegram ýa-da WhatsApp — islege görä.

Adyňyz obýýektiw däl / islege görä
Email obýýektiw däl / islege görä
Tema obýýektiw däl / islege görä
Habar obýýektiw däl / islege görä
Telegram obýýektiw däl / islege görä
@
Eger Telegram görkezen bolsaňyz — Email-den daşary şol ýerden hem jogap bereris.
WhatsApp obýýektiw däl / islege görä
Format: ýurduň kody we belgi (meselem, +993XXXXXXXX).

Düwmäni basmak bilen siz maglumatlaryňyzyň işlenmegine razylyk berýärsiňiz.