प्रतिधारण और प्रतिधारण नीतियां
1) सिद्धांत
1. उद्देश्य और न्यूनतम। हम ठीक उसी तरह और ठीक उतना ही संग्रहीत करते हैं जितना हमें प्रसंस्करण उद्देश्यों के लिए
2. कोड के रूप में नीति। प्रतिधारण एक निष्पादन योग्य नीति है, न कि पीडीएफ।
3. गहराई में रक्षा। TTL/ILM + एन्क्रिप्शन + ऑडिट + लीगल होल्ड।
4. प्रतिवर्तनीयता और प्रमाण। विलोपन सत्यापन योग्य है: एक्शन लॉग, क्रिप्टो श्रेडिंग, अनुपालन रिपोर्ट।
5. लागत और कार्बन जागरूक। प्रतिधारण $/जीबी-महीने और भंडारण/एग्रेस के कार्बन पदचिह्न को ध्यान में रखता है।
2) डेटा वर्गीकरण और "रिटेंसचेन मानचित्र"
लक्ष्यों और कानूनी आधारों के साथ कक्षाओं में सेट तोड़ें:- परिचालन (OLTP): आदेश, भुगतान, सत्र।
- विश्लेषणात्मक (DWH/दिनांक): घटनाएँ, लॉग तथ्य, स्लाइस।
- व्यक्तिगत (पीआईआई/वित्त/स्वास्थ्य): विषयों के विशेष शब्दों और अधिकारों की आवश्यकता होती है।
- तकनीकी: लॉग, मैट्रिक्स, ट्रेल्स, सीआई कलाकृतियाँ।
- दस्तावेज ़/मीडिया: WORM/संग्रह/legasi।
प्रत्येक वर्ग के लिए, सेट: मालिक, उद्देश्य, कानूनी ढांचा, तिथियां, सुरक्षा का स्तर, वर्तमान और लक्ष्य भंडारण।
3) ILM डेटा लाइफसाइकिल
विशिष्ट कन्वेयर:1. Ingest (गर्म) → NVMe/SSD, उच्च अनुरोध दर।
2. गर्म → कम अक्सर पढ़ा, संपीड़न, स्तंभ प्रारूप।
3. कोल्ड/आर्काइव → ऑब्जेक्ट/टेप, लंबी पहुँच।
4. पर्ज/डिलीट → गारंटीकृत विलोपन (प्रतिकृति/बैकअप सहित)।
एक ILM प्रोफ़ाइल (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 प्रवेश नीति (आवश्यक टैग/टीटीएल)
yaml policy: require-retention-tags deny_if_missing: [owner, purpose, classification, retention]
default_retention:
logs: "30d"
traces: "7d"
metrics:"90d"
4. CI/CD (रेगो) में 2 गेट - प्रतिशोध के बिना तैनाती का निषेध
rego package policy. retention deny[msg] {
some d input. datasets[d].retention == ""
msg:= sprintf("Retention missing for dataset %s", [d])
}
4. 3 S3/object (जीवनचक्र का टुकड़ा)
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) धागे और कतारों में प्रतिधारण
काफ्का:- 'पुनर्मिलन। ms '/' प्रतिधारण। बाइट्स '- विंडो प्रतिधारण।
- संपीड़न ('सफाई। नीति = कॉम्पैक्ट ') - अंतिम कुंजी मूल्य संग्रहीत करें
- टायर्ड स्टोरेज - हम "टेल" को एक कोल्ड शूटिंग गैलरी में ले जाते हैं।
- DLQ एक अलग प्रतिधारण और TTL है।
properties cleanup. policy=delete,compact retention. ms = 604800000 # 7d for tail removal
min. cleanable. dirty. ratio=0. 5 segment. ms=86400000
वारंटी:
- कुंजी विषय प्रतिधारण को पारिभाषित करें - पुनरावृत्ति/पुनर्गणना व्यवसाय विंडो।
- बिलिंग/ऑडिट घटनाओं के लिए, एक अलग लंबा प्रतिधारण या WORM।
6) डेटाबेस और प्रतिधारण
संबंधपरक:- तिथि/सीमा से विभाजन, पुराने पक्षों को अलग करना और छोड़ ना।
- तिथि क्षेत्र - टीटीएल निवेदन के लिए सूची।
- टेम्पोरल टेबल (सिस्टम-वर्शन) + पुराने संस्करणों की शुद्ध नीतियां।
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/टाइम-सीरीज़:
- मुख्य स्तर पर टीटीएल (MongoDB TTL इंडेक्स, Redis 'EXPIRE', Cassandra TTL)।
- मेट्रिक्स के लिए डाउनसैम्पलिंग (कच्चे 7 डी → कुल 90 डी → लंबे 365 डी)।
- TSDB में प्रतिधारण नीतियां (dedup/एकत्रीकरण के साथ प्रभाव/क्लिकहाउस भौतिक दृश्य)।
7) लॉग, मैट्रिक्स, ट्रेल्स
लॉग: फ़ील्ड, मास्क पीडी, टीटीएल 7-30 डी, संग्रह 90-180 डी को सीमित करें।
मेट्रिक्स: कच्ची उच्च आवृत्ति - 7-14 डी; डाउनसैम्पल (5m/1h) - 90- 365д।
ट्रेल्स: पूंछ-नमूना और "दिलचस्प" (कीड़े/पूंछ) को लंबे समय तक रखना।
नीति (उदाहरण):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) निष्कासन: प्रकार और वारंटी
तार्किक (सॉफ्ट-डिलीट): एक रिकॉर्ड को चिह्नित करना; वसूली के लिए सुविधाजनक, "हटाने का अधिकार" फिट नहीं है।
भौतिक (हार्ड-डिलीट) - डेटा/संस्करणों/प्रतिकृतियों का वास्तविक विलोपन।
क्रिप्टोग्राफिक (क्रिप्टो-इरेज़र): एन्क्रिप्शन कुंजियों को मिटाएँ/बदलें, जिसके बाद डाटा बहाल नहीं किया जाता है.
कैस्केड: व्युत्पन्न (कैश, इंडेक्स, एनालिटिक्स) का अंत-टू-एंड विलोपन।
व्यक्तिगत विलोपन वर्कफ़्लो (छद्म):
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) हटाने का अधिकार, कानूनी पकड़ और ईडिस्कवरी
हटाने/सही करने का अधिकार: निष्पादन का एसएलए (उदाहरण के लिए, ≤30 दिन), पता लगाया क्रिया, प्राप्तियां।
कानूनी पकड़: कानूनी अनुरोध पर - निर्दिष्ट सेट/कुंजियों के लिए विलोपन फ्रीज; टीटीएल पर प्राथमिकता नीति।
eDiscown: डेटा कैटलॉग, पूर्ण-पाठ/विशेषता कलाकृति खोज, सुसंगत प्रारूपों में निर्यात।
कानूनी पकड़ (YAML) अंकन का उदाहरण:yaml legal_hold:
dataset: payments scope: ["txn_id:123", "user:42"]
from: "2025-10-31"
until: "2026-03-31"
reason: "regulatory investigation"
10) बैकअप बनाम अभिलेखागार बनाम WORM
बैकअप - हानि/क्षति से उबरने के लिए; लघु प्रतिशोध, तेजी से आरटीओ।
अभिलेखागार - ऑडिट/एनालिटिक्स, सस्ते, लंबी पहुंच के लिए दीर्घकालिक प्रतिधारण।
WORM - अनुपालन के लिए अपरिवर्तनीय मीडिया (वित्त/रिपोर्टिंग); "राइट-एक बार, रीड-कई" नीतियां।
नियम:- बैकअप को "सदियों के लिए अभिलेख" के रूप में न गिनें।
- रिकवरी रिहर्सल (डीआर दिन), समय और पूर्णता रिपोर्ट।
- भंडारण से अलग प्रतिधारण, एन्क्रिप्शन और कुंजियों के साथ बैकअप की निर्देशिका।
11) गोपनीयता और गुमनामी
अलियासिंग: पीआईआई ने कुंजी तालिका के माध्यम से बाध्यकारी में देरी की (कुंजी द्वारा क्रिप्टो-मिटाने की अनुमति देता है)।
गुमनामी: अपरिवर्तनीय तकनीक (के-गुमनामी, शोर, सामान्यीकरण); दस्तावेज़ विधि, पुन: पहचान और समाप्ति तिथि का जोखिम।
12) अनुपालन निगरानी और रिपोर्टिंग
नियंत्रण पैनल: वैध प्रतिधारण के साथ डेटासेट का अनुपात, ILM चरणों द्वारा मात्रा, विलोपन त्रुटियां।
अलर्ट: हॉट डैश में लक्ष्य मात्रा से अधिक, लीगल होल्ड को समाप्त करने वाले "त्रिशंकु" विलोपन।
रिपोर्ट: मासिक विलोपन ऑडिट (अनुरोधों की संख्या, औसत शब्द, विफलताएं), क्रिप्टो-श्रेडिंग प्रिंटआउट।
13) प्रक्रियाओं में एकीकरण: द्वार और समीक्षा
डिजाइन-गेट: नए डेटासेट को 'मालिक/उद्देश्य/प्रतिधारण' के बिना समीक्षा नहीं मिलती है।
रिलीज-गेट: मालिक/औचित्य के बिना प्रतिधारण को बढ़ाने वाले पलायन अवरुद्ध हैं।
लागत-गेट: गर्म/गर्म में मात्रा बजट से अधिक है - ILM कसने के लिए ट्रिगर।
सुरक्षा-गेट: बिना भेस और टीटीएल के लॉग/ट्रेल्स में पीडी समावेश का निषेध।
14) एंटी-पैटर्न
"हम सब कुछ हमेशा के लिए रखते हैं - यह अचानक काम आएगा।"
नीतियों में प्रदान नहीं किए गए अनुप्रयोगों में हार्ड-कोडित टीटीएल।
बिना मास्किंग/टीटीएल/विलोपन के लॉग और ट्रेस में पीडी।
अपूर्ण विलोपन (कैश/DWH/बैकअप में छोड़ दिया गया)।
जांच के अंतर्गत कानूनी पकड़ - डेटा क्षरण की कमी।
हर चीज के लिए एक सामान्य एन्क्रिप्शन कुंजी - "क्रिप्टो-मिटाना" इंगित करना असंभव है।
शून्य अवलोकन: "हम मानते हैं कि हमने हटा दिया", लेकिन कोई सबूत नहीं है।
15) आर्किटेक्ट चेकलिस्ट
1. प्रत्येक डेटासेट के लिए एक मालिक, उद्देश्य, वर्गीकरण, प्रतिधारण, भंडारण टियर है?
2. क्या ILM/TTL नीतियों को कोड के रूप में घोषित किया गया है और स्वचालित रूप से लागू किया गया है?
3. पीडी लॉग/ट्रैक में नकाबपोश हैं; "सफेद" सेट के बाहर प्रतिबंधित
4. क्या व्यक्तिगत विलोपन प्रक्रियाएं (एसएलए, ऑडिट, रसीदें) हैं?
5. क्रिप्टो-मिटाना संभव है (प्रति किरायेदार/प्रति डेटासेट कुंजी, केएमएस/रोटेशन)?
6. बैकअप: शेड्यूल, एन्क्रिप्शन, रिकवरी टेस्ट, अलग-अलग कुंजी?
7. कानूनी पकड ़/ईडिस्कवरी: समर्थित, टीटीएल पर प्रबल, गतिविधि लॉग बनाए रखा?
8. काफ्का/कतारें: निर्दिष्ट प्रतिधारण/संपीड़न/tiering, DLQ की अलग नीतियां हैं?
9. शूटिंग दीर्घाओं पर रेटेंसचेन और वॉल्यूम के अनुपालन के लिए मेट्रिक्स और अलर्ट कॉन्फ़िगर किए गए हैं?
10. क्या Retenschen के बिना SDLC में समीक्षा और द्वार कलाकृतियों को अवरुद्ध कर रहे हैं?
16) मिनी व्यंजनों
16. 1 क्लिकहाउस: 180 दिनों में 'पूंछ काट दो'
sql
ALTER TABLE events DELETE WHERE event_date < today() - 180;
OPTIMIZE TABLE events FINAL;
16. 2 रेडिस: TTL и आलसी-पर्ज
bash
SET session:123 value EX 3600
CONFIG SET maxmemory-policy allkeys-lru
16. ट्रेल्स के लिए 3 टेल-सैंपलिंग
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 क्रिप्टो-इरेज़र (विचार)
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)
निष्कर्ष
प्रतिधारण नीतियां आपके डेटा प्लेटफॉर्म की "कंकाल" हैं: वे वर्णन करते हैं कि डेटा के विभिन्न वर्ग कितने समय तक रहते हैं, प्रत्येक क्षण में वे कैसे सस्ते होते हैं, और जब वे एक ट्रेस के बिना गायब हो जाते हैं - कानूनी, पारसावश। प्रतिधारण को कोड जैसी नीति बनाएं, आईएलएम को सुरक्षा और लागत से जोड़ें, अवलोकन और द्वार सक्षम करें - और आपको एक ऐसी प्रणाली मिलती है जो प्रभावी, अनुपालन और विकास के लिए तैयार हो।