Analitik maglumatlary gysmak
1) Näme üçin analitik maglumatlary gysmaly?
Gysmak saklamak we traffigi azaldýar, az IO we has gowy kesişmek sebäpli skanerleri çaltlaşdyrýar. Bahasy - CPU we (käwagt) täzelenmeleriň çylşyrymlylygy. Maksat SLO-laryňyzyň aşagyndaky "IO, CPU, takyklyk, takyklyk" optimizmidir.
Esasy metrikler:- Compression Ratio (CR) = `raw_size / compressed_size`.
- Scan Cost ≈ bytes_scanned / throughput_storage + cpu_decode_time`.
- Total Cost = `storage_cost + compute_cost + egress_cost`.
2) Gysyş ýaşaýan gatlaklar
1. Format derejesinde: Parquet/ORC/Euro (sahypalar/çyzgylar/sütünler).
2. Sütün kodlamak derejesinde: Dictionary, RLE, Delta, FoR/Bit-packing, Gorilla/XOR.
3. Kodek derejesinde: ZSTD, Snappy, LZ4, Gzip.
4. Haýyş/hereketlendiriji derejesinde: wektorizasiýa, sahypalary geçirmek (min/max), bloom/zone-map.
5. Saklamak derejesinde: tiered storage (hot/warm/cold), compaction, page cache.
3) Sütünli formatlar we olaryň artykmaçlyklary
Parquet: sütün sahypalary; sözlükleri, RLE/Bit-packing, min/max we null-count statistikalaryny goldamak.
ORC: akym indeksli straýplar, bloom-süzgüçler; uzak skanerler üçin täsirli.
Euro (row): akym/loglar üçin amatly, analitik skanlar üçin has erbet.
Amal: Analitika üçin Parquet/ORC ulanyň, kardinallyk pes/orta bolan ýerlerde column stats we dictionary goşuň.
4) Sütünleriň kodlary (lossless)
Dictionary: indeksler bilen çalyşýar (pes kardinallyk üçin ideal).
RLE (Run-Length Encoding): gaýtalanýan gymmatlyklar → (value, run). Sortlanan/toparlanan sütünler üçin gowy.
Delta/Delta-of-Delta: tapawudy saklaýar (san/wagt).
FoR (Frame-of-Reference) + Bit-packing: bahasy = base + offset; offset N bit bilen örtülendir.
Gorilla/XOR (Time-series): üýtgeýän uzynlykdaky goňşy gymmatlyklaryň XOR-laryny saklaýar; metrikler üçin gowy.
Nullable-bitmaskalary: aýratyn null's akymy CR-ni ýokarlandyrýar.
Maslahat: süzgüç açarlary boýunça deslapky toparlaşdyrmak/sortlamak RLE/zone-maps we CR-ni düýpgöter gowulandyrýar.
5) Umumy maksatly kodekler
ZSTD: Ortaça CPU bahasy bilen iň gowy CR; 1-22 derejelerini saklaýar. Ähliumumy saýlaw.
Snappy: çalt, pes CR; okamak tizligi ýokary bolan gyzgyn maglumatlar üçin amatlydyr.
LZ4: has çalt Snappy, CR meňzeş; köplenç - akym/log/kesh üçin.
Gzip/Deflate: ýokary CR, ýokary CPU bahasy; interaktiw analitikada seýrek aklanýar.
Düzgün: gyzgyn gatlak - Snappy/LZ4, ýyly/sowuk - ZSTD (level 3-7).
6) Wagtlaýyn hatarlar we ýazgylar
TSDB/sütünli DB: Gorilla/XOR, Delta-RLE-Bitmap, seýrek signallar üçin Sparse-run.
Logy: JSON → Parquet + ZSTD; açarlary we görnüşleri kadalaşdyryň ("int" setirini saklamaň).
Downsampling we roll-ups (lossy): agregatlary penjirelerde (1m/5m/1h) gyzgyn gatlakda saklaň; çygly - sowukda.
Sketch gurluşlary: HLL (kardinallyk), TDigest/KLL (kwantiller), CMS (ýygylyklar) - ykjam, ýöne ýakynlaşdyrma.
7) Lossless vs Lossy (haçan takyklygy ýitirip bilersiňiz)
Lossless - hasabat, maliýe, audit.
Lossy - uly penjirelerde gözegçilik, A/B-analitika, telemetriýa (aç-açan bellik bilen!).
Hil gözegçiligi: kabul ederlikli ýalňyşlygy (mysal üçin P99 ± 0. 5 p.p.) we CI-de barlamak.
8) Partiýa ýerleşdirmek, sahypalar we kompakşn
Partiýa: senesi/sebiti/tenanty → az skaner, has gowy CR.
Sahypanyň/çyzgynyň ululygy: Sahypada 64-256 KB, faýlda 64-512 MB - seek bilen CPU arasynda deňagramlylyk.
Kompakşn: Kiçi faýllary birleşdiriň (small files problem) - CR we tizlikden ýokary.
Zone-maps/Bloom: sahypalaryň geçişini çaltlaşdyrýar; süzgüçler boýunça sortlananda täsirli.
9) Gysmak we şifrlemek/gizlinlik
Amallaryň tertibi: ilki gysmak, soň şifrlemek. Ýogsam CR ≈ 1.
TDE/at-rest CR-e päsgel bermeýär (eýýäm gysylan blok şifrlenýär).
In-transit (TLS) formata täsir etmeýär.
PII-iň gysylýança maskalanmagy/tokenizasiýasy dolandyrylýan entropiýany saklaýar.
OPE/DET-şifrlemekden seresap boluň: CR-ni hasam erbetleşdirip biler we/ýa-da gizlinlige töwekgelçilik edip biler.
10) Bahasy we SLO (ykdysadyýet)
Storage: az bayt → aşakda $/TB-mo.
Compute: az IO → skanerden has çalt; ýöne dekompressiýa CPU harçlaýar.
Egress: az baýt → aşakdaky traffik/göçürme wagty.
SLO-eglişik: 'p95 _ latency' maksatly penjirede galar ýaly kodek/derejäni saýlaň.
yaml hot:
format: parquet codec: snappy target_p95_ms: 1000 max_scan_mb: 2048 warm:
format: parquet codec: zstd:4 target_p95_ms: 2500 compaction: daily cold:
format: parquet codec: zstd:7 glacier: true retention: 365d
11) Hereketlendirijiler üçin amallar (ClickHouse/Snowflake/BigQuery/Redshift/Presto)
ClickHouse: CODEC 'i sütünlerde (LZ4/ZSTD/DoubleDelta), RLE/skanlar üçin ORDER BY, TTL/kompakşn.
Snowflake/BigQuery: formatlar/toplama awtomatikasy; cluster by (sene, tenant, süzgüç açarlary).
Redshift/Presto/Trino: ZSTD bilen Parquet/ORC, gurnama 'hive. exec. compress. output ', statistika we faýllary bölmek.
12) Paýlaýynlar: gysmagy nirede goşmaly
Ingest: lake ýazylanda gysylan batçi (ZSTD/LZ4).
Transform/DBT: zerur kodek we sortlama bilen sütün nyşanlaryny dörediň.
Serve/OLAP: amatly kodek bilen materiallaşdyrylan çykyşlar; gyzgyn daşbordlar üçin deslapky agregatlar.
Export: для CSV/JSON — gzip/zstd; Parquet bermek has gowudyr.
13) Synag we tassyklama
AB profillemek: soraglar toplumy → p50/p95, bytes scanned, CPU wagt, CR.
Golden-toparlar: kodlanandan/kompakşnden soň dogrulygyny barlamak.
Regression perf tests: alertler, eger p95 ↑> X% kodek/dereje çalşylandan soň.
DQ düzgünleri: Görnüşler/diapazonlar/NULL-rate göçürilende üýtgemeli däldir.
14) Saklamak syýasaty we TTL
Tiered: hot (7-14 gün) , warm (30-90 gün) , cold (≥ 180 gün) .
Downsampling: "sowadylanda" çig ýerine agregatlary/eskizleri saklaň.
Retention/Legal hold: standartlar bilen gapma-garşylyklary aýyrmaň; kataloglary we wersiýalary saklaň.
15) Antipatternler
"Hemme ýerde Gzip level 9 ": gadyrly CPU, peýdasy ýok.
Sortlama/toparlaşdyrma ýok: erbet RLE/zone-maps → skanerler gymmat.
JSON ammar formaty hökmünde: ingest üçin amatly, analitika üçin erbet.
Gaty kiçi faýllar: metadata/seek çişiriň; CR düşýär.
Gysylýança şifrlemek: nol diýen ýaly CR.
Belliksiz Lossy: ynamyň we hasabatyň bozulmagy.
16) Durmuşa geçirmegiň ýol kartasy
1. Discovery: Soraglaryň/maglumatlaryň profilleri, SLO we býudjetler.
2. MVP: Parquet + ZSTD/Snappy, esasy sortlamak/toplamak, kompakşn.
3. Tuning: ZSTD derejeleri, sahypalaryň ölçegleri, cluster by, bloom/zone-maps.
4. Warm/Cold: tiered storage, downsampling/eskizler, egress-syýasatlar.
5. Hardening: regression perf synaglary, DQ, runbooks.
17) Goýberilmezden öň çek-sanawy
- Format: Parquet/ORC; statistika/sözlükler goşuldy.
- Süzgüç açarlary boýunça klaster; senesi/tenanty boýunça partiýa.
- Kodekler: hot = Snappy/LZ4, warm/cold = ZSTD (3-7); p95 kadaly.
- Kompakt sazlandy; small files ýok; faýllaryň/sahypalaryň maksatly ölçegleri.
- DQ we altyn toparlar ýaşyl; Görnüşler/aralyklar saklandy.
- Gysylandan soň şifrlemek; PII gizlenen; retenshn/Legal-hold berjaý edildi.
- Perf-regressiýa gözegçilik edilýär; p95/bytes scanned/CR boýunça alertler.
- Saklamak syýasatynyň we kodlaşdyrmagyň görkezmeleriniň resminamalary taýýar.
18) Kiçi şablonlar
DBT (ZSTD we toplama bilen Parquet tablisasy):sql create table if not exists analytics.sales_daily cluster by (event_date, tenant_id)
as select from {{ ref('sales_daily_view') }};
-- в конфиге модели: materialized=table, file_format=parquet, compression=zstd
Kompakşna syýasaty (psevdo):
yaml compaction:
target_file_mb: 256 small_file_threshold_mb: 32 schedule: "hourly"
Downsampling (psevdo):
yaml timeseries:
raw: keep: 14d rollup_1m: keep: 90d rollup_1h: keep: 365d rollup_1d: keep: 1825d
Netije: analitiki maglumatlary gysmak diňe bir "kodeki goşmak" däl, eýsem bitewi strategiýa: dogry format, sütünleriň kody, sortlamak we partiýa ýerleşdirmek, kompakşn we saklamak derejesi, şifrlemäge we SLO-a hormat goýmak. Başarnykly dizaýn skanerleri has çalt, hasapdan pes we öňünden aýdyp boljak öndürijiligi berýär - maglumatlara bolan ynamda eglişik etmezden.