Retention we saklamak syýasaty
1) Ýörelgeler
1. Purpose & Minimization. Gaýtadan işlemegiň maksatlaryna görä saklaýarys.
2. Policy as Code. Retenshen PDF däl-de, ýerine ýetirilýän syýasatdyr.
3. Defense in Depth. TTL/ILM + şifrlemek + auditler + Legal Hold.
4. Reversibility & Proof. Aýyrmak barlanýar: hereketleriň ýazgylary, kripto-şredding, berjaý edilendigi hakynda hasabat.
5. Cost & Carbon Aware. Retenshen $/GB-aýy we saklamak/egress uglerod yzyny göz öňünde tutýar.
2) Maglumatlaryň klassifikasiýasy we "retenşen kartasy"
Toplumlary maksatlar we hukuk esaslary bilen synplara bölüň:- Operasiýa otaglary (OLTP): sargytlar, tölegler, sessiýalar.
- Analitik (DWH/seneler): wakalar, log-faktlar, bölekler.
- Şahsy (PII/maliýe/saglyk): ýörite möhletleri we subýektleriň hukuklaryny talap edýär.
- Tehniki: loglar, metrikler, treýslar, artefaktlar CI.
- Resminamalar/Media: WORM/Arhiw/Legasi.
Her synp üçin: eýesi, maksady, hukuk binýady, möhletleri, gorag derejesi, häzirki we maksatly ammarlary beriň.
3) ILM: maglumatlaryň durmuş sikli
Adaty konweýer:1. Ingest (hot) → NVMe/SSD, haýyşlaryň ýokary ýygylygy.
2. Warm → az okalýar, gysyş, sütün formatlary.
3. Cold/Archive → obýekt/lenta, uzak giriş.
4. Purge/Delete → kepillendirilen aýyrma (goşmak bilen replikalar/bellikler).
ILM profili (YAML) mysaly:yaml dataset: events_main owner: analytics purpose: "product analytics"
classification: "pseudonymized"
lifecycle:
- phase: hot; duration: 7d; storage: nvme; format: row
- phase: warm; duration: 90d; storage: ssd; format: parquet; compress: zstd
- phase: cold; duration: 365d; storage: object; glacier: true
- phase: purge; duration: 0d privacy:
pii: false dp_delete_window: 30d # SLA on personal deletions if ligaments appear
4) Kod hökmünde syýasatlar (peýdaly eskizler)
4. 1 Admission-syýasat (hökmany bellikler/TTL)
yaml policy: require-retention-tags deny_if_missing: [owner, purpose, classification, retention]
default_retention:
logs: "30d"
traces: "7d"
metrics:"90d"
4. CI/CD-de 2 Gate (Rego) - Retenşensiz deploýyň gadagan edilmegi
rego package policy. retention deny[msg] {
some d input. datasets[d].retention == ""
msg:= sprintf("Retention missing for dataset %s", [d])
}
4. 3 S3/obýekt (lifecycle bölegi)
yaml
Rules:
- ID: logs-ttl
Filter: { Prefix: "logs/" }
Transitions:
- { Days: 7, StorageClass: STANDARD_IA }
- { Days: 30, StorageClass: GLACIER }
Expiration: { Days: 180 }
NoncurrentVersionExpiration: { NoncurrentDays: 30 }
5) Akymlarda we nobatlarda retention
Kafka:- `retention. ms`/`retention. bytes '- penjire retenshen.
- Compaction (`cleanup. policy = compact ') - açaryň soňky manysyny saklaýarys.
- Tiered Storage - "guýrugy" sowuk atyş jaýyna alyp gidýäris.
- DLQ - aýratyn retenşen we TTL.
properties cleanup. policy=delete,compact retention. ms = 604800000 # 7d for tail removal
min. cleanable. dirty. ratio=0. 5 segment. ms=86400000
Kepillikler:
- Esasy topikleriň retenşenini kesgitläň ≈ repleýiň/sanamagyň iş penjiresi.
- Wakalar üçin billing/audit - aýratyn uzyn retenşen ýa-da WORM.
6) Maglumat bazalary we retenşenler
Relýasiýa:- Senesine/diapazonyna görä partiýa, detach & drop köne partiýa.
- Seneli meýdanlar - TTL soraglary üçin indeksler.
- Wagtlaýyn tablisalar (system-versioned) + polisler purge köne wersiýalary.
sql
-- Monthly instalments
CREATE TABLE audit_events (id bigserial, occurred_at timestamptz, payload jsonb) PARTITION BY RANGE (occurred_at);
-- Cleaning over 365 days
DELETE FROM audit_events WHERE occurred_at < now() - interval '365 days';
VACUUM (FULL, ANALYZE) audit_events;
NoSQL/Time-series:
- Açar derejesinde TTL (MongoDB TTL index, Redis 'EXPIRE', Cassandra TTL).
- Metrikler üçin downsampling (çig 7d → aggregatlar 90d → uzyn 365d).
- TSDB-de retention syýasaty (Influx/ClickHouse Materialized Views).
7) Loglar, metrikler, söwdalar
Logy: meýdanlary çäklendirmek, gizlemek PD, TTL 7-30d, arhiw 90-180d.
Metrikler: çig ýokary ýygylykly - 7-14d; downsample (5m/1h) — 90–365д.
Söwda: tail-sampling we "gyzykly" (ýalňyşlyklar/guýruklar) saklamak has uzyn.
yaml observability:
logs: { ttl: "30d", archive: "90d", pii_mask: true }
metrics: { raw: "14d", rollup_5m: "90d", rollup_1h: "365d" }
traces: { sample: "tail-10%", ttl: "7d", error_ttl: "30d" }
8) Aýyrmak: görnüşleri we kepillikleri
Logiki (soft-delete): ýazgy belligi; dikeldiş üçin amatly, "aýyrmak hukugyna" laýyk gelmeýär.
Fiziki (hard-delete): maglumatlaryň/wersiýalaryň/göçürmeleriň hakyky aýrylmagy.
Kriptografiki (crypto-erasure): şifrlemek açarlaryny aýyrmak/çalyşmak, şondan soň maglumatlar dikeldilmeýär.
Kaskad: derivasiýalary (keshler, indeksler, analitika) aýyrmak.
request → locate subject data (index by subject_id) → revoke tokens & unsubscribe jobs → delete in OLTP → purge caches → enqueue erasure in DWH/lakes → crypto-shred keys (per-tenant/per-dataset) → emit audit proof (receipt)
9) Aýyrmak hukugy, Legal Hold we eDiscovery
Aýyrmak/düzetmek hukugy: Ýerine ýetirmegiň SLA-lary (mysal üçin ≤ 30 gün), yzarlanylýan hereketler, kwitansiýalar.
Legal Hold: kanuny haýyş edilende - görkezilen toplumlar/açarlar üçin aýyrmagy doňdurmak; TTL-den ileri tutulýan syýasat.
eDiscovery: maglumatlar katalogy, artefaktlar boýunça doly tekstli/atributly gözleg, ylalaşylan formatlarda eksport.
yaml legal_hold:
dataset: payments scope: ["txn_id:123", "user:42"]
from: "2025-10-31"
until: "2026-03-31"
reason: "regulatory investigation"
10) Bellikler vs arhiwler vs WORM
Ekaplar - ýitgiden/zaýalanmakdan dikeltmek üçin; gysga retenşen, çalt RTO.
Arhiwler - audit/analitika üçin uzak möhletli saklamak, arzan, uzak elýeterlilik.
WORM - gabat gelmek üçin üýtgemeýän göterijiler (maliýe/hasabat); "write-once, read-many" syýasaty.
- "Asyrlar üçin arhiw" diýip hasaplamaň.
- Dikeldiş repetisiýalary (DR-günler), wagt we doly hasabat.
- Retenşenli, şifrlenen we açarly bekaplaryň katalogy ammardan aýratyn.
11) Gizlinlik we adynyň aýdylmazlygy
Lakamlaşdyrma: açar tablisasy arkaly PII-ni yza süýşürmek (açar boýunça crypto-erasure-a mümkinçilik berýär).
Anonymizasiýa: yzyna gaýtaryp bolmajak enjamlar (k-anonimlik, ses, umumylaşdyrma); usuly, reidentifikasiýa töwekgelçiligini we möhleti dokumentleşdiriň.
12) Laýyklyga gözegçilik etmek we hasabat bermek
Gözegçilik panelleri: walid retenşenli datasetleriň paýy, ILM fazalary boýunça göwrümler, aýyrmak ýalňyşlyklary.
Alertler: "Legal Hold" -dan geçýän "asylan" aýyrmalar.
Hasabatlar: aýyrmagyň aýlyk barlagy (haýyşlaryň sany, ortaça möhlet, şowsuzlyklar), kripto-şredingiň çap edilmegi.
13) Proseslere integrasiýa: geýtler we rewyu
Design-gate: Täze dataset 'owner/purpose/retention' -siz aglamaýar.
Release-gate: eýesiz/esassyz retenşeni artdyrýan migrasiýalar petiklenýär.
Cost-gate: hot/warm-daky göwrümi býudjetden ýokary - ILM-berkitmek üçin trigger.
Security-gate: PD-ni gizlenmezden we TTL-siz girmäge gadaganlyk.
14) Anti-patternler
"Hemme zady hemişelik saklaýarys - birden peýdaly bolar".
Syýasata girizilmedik programmalarda berk kodlanan TTL.
Gizlenmezden/TTL/aýyrmazdan bloglarda we trekslerde PD.
Doly däl aýyrmak (/DWH/arka gaplarda galdyryldy).
"Legal Hold" -yň ýoklugy - derňelýän maglumatlary silmek.
Hemme zat üçin bir umumy şifrlemek açary - nokat hökmünde "kripto-pozmak" mümkin däl.
Gözegçilik derejesi: "aýrylandygymyza ynanýarys", ýöne subutnama ýok.
15) Arhitektoryň çek-sanawy
1. Her bir dataset üçin owner, purpose, classification, retention, storage tier barmy?
2. ILM/TTL syýasaty kod hökmünde yglan edildi we awtomatiki usulda ulanylýarmy?
3. PD-ler ýazgylarda/söwdalarda gizlenýärler; "ak" toplumlaryň daşynda gadagan?
4. Şahsy aýyrmalar (SLA, audit, kwitansiýalar) barmy?
5. Crypto-erasure mümkin (per-tenant/per-dataset açarlary, KMS/rotation)?
6. Bellikler: meýilnama, şifrlemek, dikeldiş synaglary, aýratyn açarlar?
7. Legal Hold/eDiscovery: goldanylýarmy, TTL-den agdyklyk edýärmi?
8. Kafka/nobatlar: berlen retenshen/compaction/tiering, DLQ-de aýratyn syýasatlar barmy?
9. Retenşeni berjaý etmek üçin metrikler we alertler we tiramalar boýunça göwrümler sazlandymy?
10. SDLC-de rewyu we geýtlar retenşensiz artefaktlary petikleýärmi?
16) Kiçi reseptler
16. 1 ClickHouse: 180 günden uly "guýrugy kesmek"
sql
ALTER TABLE events DELETE WHERE event_date < today() - 180;
OPTIMIZE TABLE events FINAL;
16. 2 Redis: TTL и lazy-purge
bash
SET session:123 value EX 3600
CONFIG SET maxmemory-policy allkeys-lru
16. 3 Tail-sampling
yaml tail_sampling:
policies:
- name: keep-errors-and-slow latency_threshold_ms: 500 status_codes: ["5xx"]
rate_limit_per_min: 5000 default_ttl: "7d"
16. 4 Kripto-erasure (pikir)
keys:
dataset: users_pii key_id: kms://pii/users/tenant-42 erase(user_id=42):
rotate_or_destroy (key_id) # inability to restore former purge_indexes blocks ("user _ id = 42")
audit("crypto-erasure", user_id)
Netije
Saklamak syýasaty, maglumat platformasyňyzyň "skeletidir": dürli maglumat synplarynyň näçeräk ýaşaýandygyny, her pursatda nirede ýerleşýändigini, wagtyň geçmegi bilen nädip arzanlaýandygyny we yzsyz ýok bolanda kanuny, aç-açan we barlanyp bilinjekdigini suratlandyrýarlar. Kod hökmünde syýasata täzeden serediň, ILM-i howpsuzlyk we baha bilen birleşdiriň, gözegçilik we geýtleri açyň - şol bir wagtyň özünde täsirli, oňat we ösmäge taýyn ulgam alarsyňyz.