Retention և պահպանման քաղաքականություն
1) Սկզբունքներ
1. Purpose & Minimization. Տաճարը ճիշտ է և ճիշտ այնպես, որքան անհրաժեշտ է վերամշակման նպատակները։
2. Policy as Code. Ռեթենշենը կատարյալ քաղաքականություն է, ոչ թե PDF։
3. Defense in Depth. TTL/ILM + կոդավորումը + Legal Hold։
4. Reversibility & Proof. Հեռացումը ստուգում է 'գործողությունների լոգներ, ծպտյալ սպրեդդինգ, պահպանման զեկույց։
5. Cost & Carbon Aware. Retenshen-ը հաշվի է առնում/GB-mes-ը և պահեստավորման ածխածնի հետքը/egress-ը։
2) Տվյալների դասակարգումը և «ռետենշենի քարտեզը»
Վերլուծեք դասարանների հավաքածուները նպատակներով և աջ հիմքերով
Վիրահատական (OLTP) 'պատվերներ, վճարումներ, նստարաններ։
Վերլուծական (MSH/ամսաթվերը) 'իրադարձություններ, լոգ փաստեր, կտրվածքներ։
Անձնական (PII/ֆինանսներ/առողջություն) պահանջում են հատուկ օրենքներ և սուբյեկտների իրավունքներ։
Տեխնիկական 'լոգներ, մետրեր, թրեյսներ, CI արտեֆակտներ։
Փաստաթղթերը/լրատվամիջոցները ՝ WORM/արխիվ/լեգասներ։
Յուրաքանչյուր դասարանի համար տվեք ՝ սեփականատերը, նպատակը, իրավական հիմքը, պայմանները, պաշտպանության մակարդակը, պաշտպանությունը, պաշտպանությունը և ունեցվածքը։
3) ILM 'կյանքի տվյալների ցիկլը
Տիպիկ փոխակրիչ
1. Ingest (hot) www.NVMe/SSD, հարցումների բարձր հաճախականությունը։
2. Warm-ը ավելի քիչ կարդացվում է, ագրեսիան, կոլոնիկը։
3. Cold/Archive-ը օբյեկտիվ/հիբրիդային է, երկար հասանելիություն։
4. Purge/Corete-ը երաշխավորված հեռացում է (համեղ կրկնօրինակներ/bakaps)։
ILM-2019 (YAML) օրինակը
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) Քաղաքական գործիչները որպես կոդ (օգտակար էսքիզներ)
4. 1 Admission քաղաքականությունը (պարտադիր թեգեր/TTL)
yaml policy: require-retention-tags deny_if_missing: [owner, purpose, classification, retention]
default_retention:
logs: "30d"
traces: "7d"
metrics:"90d"
4. 2 Gate CI/CD (Rego) - deploy արգելք առանց rentenshen
rego package policy. retention deny[msg] {
some d input. datasets[d].retention == ""
msg:= sprintf("Retention missing for dataset %s", [d])
}
4. 3 S3/օբյեկտի (lifecycle հատվածը)
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) Retention հոսքերում և հերթերում
Kafka:- `retention. ms`/`retention. bytes '- պատուհանի ռետենշեն։
- Compaction (`cleanup. policy = compact ") - մենք կառուցում ենք ստեղնաշարի վերջին արժեքը։
- Tiered Storage-ը «պոչը» է սառը տիրույթի մեջ։
- DLQ-ը առանձին retenshen և TTL-ն է։
Օրինակ
properties cleanup. policy=delete,compact retention. ms = 604800000 # 7d for tail removal
min. cleanable. dirty. ratio=0. 5 segment. ms=86400000
Երաշխիքներ
Հիմնական տեղանունների գրանցումը բացատրվում է էքսպլեյի/վերահաշվարկի բիզնես պատուհանի միջոցով։
Իրադարձությունների համար բիլինգը/աուդիտը առանձին երկար ռետենշեն կամ WORM-ն է։
6) Տվյալների և ռետենշենի հիմքերը
Ռելյացիոն
Ամսաթվի/միջակայքի կուսակցումը, հին կուսակցությունների detach & drop։
Ժամացույցի դաշտերը TTL հարցումների ինդեքսներ են։
Տեմպորալ սեղաններ (105-versioned) + purge հին տարբերակների պոլիս։
SQL սքեթը (PostgreSQL)
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:
- TTL-ի մակարդակի վրա (MongoDB TTL index, Redis 'EXPIRE ", Cassandra TTL)։
- Downsampling-ը մետրիկի համար (հում 7d - aggragata 90d - երկար 425d)։
- Retention-ի քաղաքականությունները TSDB-ում (Influx/ClickHouse Materialized Views)։
7) Logs, metriks, treiss
Լոգները 'սահմանափակել դաշտերը, քողարկել PD, TTL 7-30d, արխիվը 90-180d։
Մետրիկները 'հում բարձր հաճախականությամբ' 7-14d; downsample (5m/1h) — 90–365д.
Թրեյսները ՝ tail-sampling և «հետաքրքիր» (սխալներ/պոչեր) ավելի երկար են։
Քաղաքականությունը (օրինակ)
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) Հեռացում ՝ տեսակներ և երաշխիքներ
Տրամաբանական (soft-intete) 'գրառման նշանը։ հարմար է վերականգնելու համար, չի համապատասխանում «հեռացման իրավունքը»։
Ֆիզիկական (hard-corete) 'տվյալների/տարբերակների իրական հեռացումը/կրկնօրինակը։
Կրիպտոգրաֆիկ (crypto-erasure) 'հեռացում/փոխարինումը wwww.ru, որից հետո տվյալները չեն վերականգնվում։
Կասկադային 'դերիվացիաների հեռացման միջոցով (քեշի, ինդեքսներ, վերլուծություն)։
Workflow անձնական (կեղծ)
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) Հեռացման իրավունք, Legal Hold և eDiscovery
Հեռացման/ուղղման իրավունքը 'SLA կատարումը (օրինակ, 30 օր), ուղեղի գործողությունները, քվիտանիան։
Legal Hold 'իրավաբանական խնդրով' այս հավաքածուների/կոդերի համար կոդավորման սառեցում։ գերակայություն TTL-ի վրա։
Edicovery: Տվյալների կատալոգը, ամբողջական տեքստի/կոդավորման որոնումը արտեֆակտների, էքսպորտը ռուսական ձևերում։
Legal Hold (YAML) նշանի օրինակ
yaml legal_hold:
dataset: payments scope: ["txn_id:123", "user:42"]
from: "2025-10-31"
until: "2026-03-31"
reason: "regulatory investigation"
10) Bakaps vs արխիվները vs WORM
Bakaps - կորստի/պոռնկի վերականգնման համար։ կարճ, արագ RTO։
Արխիվները երկարաժամկետ պահեստավորում են ռուսական/վերլուծության, էժան, երկար հասանելիության համար։
WORM-ը անփոփոխ կրողներ են կոմպլենսների համար (ֆինանսներ/հաշվետվություններ); «write-once, read-many»։
Կանոնները
Մի հաշվարկեք բեքապը որպես «դարի արխիվ»։
Վերականգնման փորձերը (DR-օրեր), ժամանակի և ամբողջական զեկույցը։
Beapas-ի կատալոգը, որը ունի ռենտեն, կոդավորումը և բաները առանձին կոդերից։
11) Գաղտնիությունը և անանունացումը
Կեղծանունացում 'PII-ի հետաձգված կապումը կոդավորման աղյուսակի միջոցով (թույլ է տալիս crypto-erasure-ը բանալին)։
Անանունացում 'անդառնալի տեխնոլոգիաներ (k-անունություն, աղմուկ, ընդհանրացում); ստուգեք մեթոդը, ռեդենտգենյան ռիսկը և ժամկետի ժամկետը։
12) Հաշվետվություններ և հաշվետվություններ
Հսկիչ վահանակներ 'ցուցանակների մասնաբաժինը վալիդային ռենտենով, ILM-ի փուլերով, սխալներով։
Ալերտներ 'տաք տիրույթում ծավալի ավելցուկ, «քայքայված» տերմինալներ, որոնք Լեգալ Հոլդն են։
Հաշվետվություններ ՝ ամսական աուդիտ (զանգահարում, միջին ժամկետի, ձախողումների), ծպտյալ շրեդինգի տպագրություն։
13) Ինտեգրումը գործընթացներին 'գեյտեր և հեղափոխություն
Desport-gate: Նոր ամսաթիվը չի անցնում առանց «owner/purpose/retention»։
Releant-gate: 108, որոնք ավելացնում են ռետենշենը առանց սեփականատիրոջ/հիմնավորման, արգելափակվում են։
Cost-gate-ը 'hot/warm-ի ծավալը գերազանցում է բյուջեն, ILM-ի խստացումը։
System-gate-ը 'Logy/Treiss-ի ներառման արգելքը առանց դիմակավորման և TTL-ի։
14) Anti-patterna
«Մենք ամեն ինչ ընդմիշտ ենք պահում, հանկարծ կօգտագործվի»։
Կոշտ կոդավորված TTL-ն քաղաքական ծրագրերում։
PD-ը լոգարաններում և թրեյսներում առանց դիմահարդարման/TTL/2019։
Թերի հեռացում (թողեցին քեշի/MSH/bakas)։
Legal Hold-ի բացակայությունը հետազոտության տակ տվյալների լվացքն է։
Մեկ ընդհանուր բանալին է ամեն ինչի վրա, անհնար է ճշգրիտ «ծպտյալ-ստերեոտլ»։
Զրոյական դիտարկումը. <<հավատում ենք, որ ջնջվել>>, բայց ապացույցներ չկան։
15) Ճարտարապետի չեկի թերթիկը
1. Յուրաքանչյուր ամսաթվի համար կա owner, purpose, classifox, retention, storage tier։
2. ILM/TTL քաղաքականությունները հայտարարված են որպես կոդ և օգտագործվում են ինքնաբերաբար։
3. PD-ն քողարկվում է լոգարաններում/treiss; արգելված են «սպիտակ» հավաքածուներից դուրս։
4. Կան անձնական հեռացման գործընթացներ (SLA, աուդիտ, քվիտանիա)։
5. Crypto-erasure-ը հնարավոր է (108-տենանտ/108-դենսացիա բանալիներ, KFC/rotation)։
6. Բեքապներ ՝ 108, ծածկագրում, վերականգնման թեստեր, առանձին բանալիներ։
7. Legal Hold/eDiscovery-ը աջակցվում է, գերագնահատում TTL-ի վրա, գործողությունների ամսագրերը կատարվում են։
8. Kafka/հերթը ՝ www.rtenshen/compaction/tiering, DLQ-ն ունի առանձին քաղաքականություն։
9. Մեթրիկներն ու ալերտները ռետենշենի և տիրամիի ծավալների պահպանման համար տրամադրված են։
10. RED LC-ում ռևին և խաղացողները արգելափակում են արտեֆակտները առանց ռետենշենի։
16) Մինի բաղադրատոմսեր
16. 1 ClickHouse: «կտրեք պոչը» 180 օրից բարձր
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 Crypto-erasure (գաղափար)
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)
Եզրակացություն
Պահեստավորման քաղաքականությունը ձեր տվյալների պլատֆորմի «կմախքն» է, նրանք նկարագրում են, թե որքան են ապրում տվյալների տարբեր դասարաններ, որտեղ նրանք գտնվում են ամեն պահի, ինչպես են էժան ժամանակի ընթացքում, և երբ անհետանում են առանց հետքի 'օրինական, թափանցիկ և ստուգողական։ Դարձրեք վերափոխված քաղաքականություն որպես կոդ, միացրեք ILM-ը անվտանգության և արժեքի հետ, միացրեք դիտողությունն ու խաղացողները, և դուք կստանաք մի համակարգ, որը միաժամանակ արդյունավետ է, կոմպլեկտիվ և պատրաստ է աճի։