Learning Platform
Глоссарий Troubleshooting
Урок 05.08 · 25 мин
Продвинутый
RetentionArchivingDisposalRPO/RTOStorage Tiers

Хранение, архивирование и утилизация данных

Введение

Сценарий: FinSecure Bank (ФинСекьюр Банк)

FinSecure хранит 2.5 ТБ клиентских данных. Рост — 15% ежегодно, затраты на хранение выросли на 40% за год. Регуляторы требуют хранить финансовые данные 7 лет. GDPR требует удаления персональных данных по запросу клиента. Юридический отдел: “Мы храним всё, потому что удалить страшнее.” Результат: 30% данных — дубликаты или данные с истёкшим retention-сроком, которые никто не чистил.

“Мы храним всё, потому что удалить страшнее” — типичная позиция организаций без retention governance. Но бесконечное хранение — это не осторожность, а governance failure: данные без retention-политики — это liability (юридический риск), а не asset.

В этом уроке мы разберём три этапа жизненного цикла данных после их активного использования: Retention (хранение), Archiving (архивирование) и Disposal (утилизация/уничтожение). Предварительно рекомендуем повторить урок 07 этого модуля (Freshness и Observability) и урок 05 модуля M05 (классификация данных).

Data Retention Policy Design

Регуляторные требования

Retention-политика определяется пересечением регуляторных и бизнес-требований:

РегуляцияТребованиеСрок
152-ФЗ (Россия)Удаление ПДн после отзыва согласияПо факту отзыва
GDPR Art. 5(1)(e)Хранение не дольше необходимого (storage limitation)По purpose
GDPR Art. 17Right to erasure (право на удаление)По запросу
44-ФЗ (Россия)Документы гос. закупок3 года
402-ФЗ (Россия)Бухгалтерские документы5 лет
Банковское регулированиеФинансовые транзакции5-7 лет
FDA 21 CFR Part 11Клинические данные15+ лет

Classification-Driven Retention Tiers

Retention-срок привязывается к классификации данных (урок M05-05):

КлассификацияActive RetentionArchiveTotalDisposal
Public1 годНе требуется1 годСтандартное удаление
Internal3 года2 года5 летСтандартное удаление
Confidential5 лет2 года7 летSecure overwrite
RestrictedRegulatory minimumПо регулятору7-15 летCrypto-shredding
Data Retention Policy: FinSecure Bank
Проверка знанийKnowledge check
Юридический отдел FinSecure говорит: 'Храним всё навсегда -- на всякий случай.' Почему это governance failure?
ОтветAnswer
Бесконечное хранение -- governance failure по четырём причинам: (1) Regulatory risk: GDPR Art. 5(1)(e) требует storage limitation -- хранение дольше необходимого нарушает принцип purpose limitation. (2) Cost: 2.5 ТБ растёт 15%/год, 30% -- мёртвые данные, хранение которых стоит денег. (3) Security risk: каждый ТБ данных -- потенциальная цель breach. Больше данных = больше exposure при инциденте. (4) Discovery risk: при судебном разбирательстве все сохранённые данные могут быть запрошены (e-discovery). Данные, которых не должно было быть, становятся liability.

Архивирование: Hot/Warm/Cold Lifecycle

Storage Tiers

Не все данные одинаково активны. Архивирование — это перемещение данных между уровнями хранения по мере снижения активности:

TierХарактеристикаAccess TimeСтоимостьПример
HotАктивные данныеМиллисекундыВысокая (SSD)PostgreSQL production
WarmРедко запрашиваемыеСекундыСредняя (HDD)Read replica, ClickHouse
ColdАрхив для complianceМинуты-часыНизкая (S3 IA)S3 Infrequent Access
ArchiveДолгосрочное хранениеЧасыМинимальная (Glacier)S3 Glacier Deep Archive

Archive Triggers

Данные перемещаются между tiers на основе governance-правил:

# Archive policy rules
ARCHIVE_TRIGGERS = {
    "hot_to_warm": {
        "condition": "last_accessed > 90 days",
        "action": "Move to read replica / cold storage",
        "approval": "Automated (Data Engineer review weekly)"
    },
    "warm_to_cold": {
        "condition": "last_accessed > 180 days AND past active_retention",
        "action": "Move to S3 Infrequent Access",
        "approval": "Data Owner approval"
    },
    "cold_to_archive": {
        "condition": "past active_retention AND within total_retention",
        "action": "Move to S3 Glacier",
        "approval": "Data Owner + Compliance approval"
    },
    "archive_to_dispose": {
        "condition": "past total_retention AND no legal_hold",
        "action": "Initiate disposal workflow",
        "approval": "Data Owner + Legal + CDO"
    }
}
Hot (SSD)Production PostgreSQL: активные транзакции, текущие клиенты
Warm (HDD)Read replica: исторические запросы, ad-hoc аналитика
Cold (S3 IA)S3 Infrequent Access: compliance storage, rare audit requests
DisposeCrypto-shredding или secure overwrite после истечения retention

Searchability и Restore SLA

Архивированные данные не исчезают из governance:

TierSearchabilityRestore SLAGovernance
HotFull-text searchМгновенноПолный доступ
WarmIndex searchМинутыОграниченный доступ
ColdMetadata only4-24 часаПо запросу + approval
ArchiveCatalog reference12-48 часовLegal/Compliance only

Сценарий: BioGenesis Lab (БиоГенезис Лаб)

Клинические данные trial Phase III архивированы в Cold storage 2 года назад. FDA запрашивает данные для post-market review. Требование: восстановить в течение 4 часов. BioGenesis определила Restore SLA для clinical data: Cold -> 4 часа, Archive -> 12 часов. Регулярное тестирование восстановления (ежеквартально) подтверждает, что SLA соблюдается.

Data Disposal/Purging Governance

Методы безопасного удаления

Удаление данных — не просто DELETE FROM. Governance требует гарантии полного уничтожения:

МетодОписаниеПрименениеГарантия
Logical deletionПометка is_deleted=trueSoft delete, legal holdДанные восстановимы
Crypto-shreddingУдаление ключа шифрованияPer-record/per-tenant encryptionДанные нечитаемы
Secure overwriteПерезапись данных (DOD 5220.22-M)Физические носителиДанные невосстановимы
Physical destructionУничтожение носителяDecommission серверовПолная гарантия

Crypto-shredding — наиболее эффективный метод для cloud-среды: если данные зашифрованы per-record ключом, удаление ключа делает данные нечитаемыми без физического удаления.

Disposal Verification

Data Disposal Verification Checklist
  1. 011. Authorization: Data Owner утвердил disposal
    Approval в JIRA ticket DG-2024-0342, утверждён CDO
    Соответствует
  2. 022. Legal Hold check: нет активных legal holds
    Legal department подтвердил: нет pending litigation
    Соответствует
  3. 033. Primary storage: данные удалены из PostgreSQL
    DELETE + VACUUM executed, verified 0 rows
    Соответствует
  4. 044. Backup rotation: данные не восстановимы из backup
    30-day backup cycle: данные будут purged через 30 дней
    ~Частично
  5. 055. Archive storage: данные удалены из S3/Glacier
    S3 objects deleted, versioning purged
    Соответствует
  6. 066. Audit trail: запись о disposal сохранена
    Disposal record: what, when, who, why, method
    Соответствует
Проверка знанийKnowledge check
FinSecure удаляет записи клиентов из PostgreSQL после отзыва согласия. Но резервные копии (backups) всё ещё содержат эти данные. Выполнено ли обязательство GDPR по удалению?
ОтветAnswer
Нет, обязательство GDPR Art. 17 не выполнено полностью. Данные существуют в backups и потенциально восстановимы. Варианты решения: (1) Если данные зашифрованы per-record -- crypto-shredding (удалить ключ шифрования, данные в backup нечитаемы). (2) Если не зашифрованы -- дождаться backup rotation (30 дней) и документировать 'reasonable efforts' + timeline. (3) Принудительная ротация backup (дорого). GDPR допускает 'reasonable time' для backup cleanup, но требует документированный процесс и timeline. Ключевое: disposal policy должна учитывать ВСЕ locations: active DB + replicas + backups + archives + caches.

Backup Governance: RPO/RTO

Определения

  • RPO (Recovery Point Objective): максимально допустимая потеря данных. RPO=0 означает zero data loss (синхронная репликация). RPO=24h означает допустимую потерю данных за последние 24 часа.
  • RTO (Recovery Time Objective): максимально допустимое время простоя. RTO=1h означает восстановление в течение часа.

RPO/RTO по критичности данных

СистемаRPORTOСтратегияСтоимость
Core Banking01 часSynchronous replicationВысокая
Payment Processing5 мин30 минAsync replication + WALВысокая
Analytics/BI24 часа48 часовDaily backupsСредняя
Development/Staging72 часа1 неделяWeekly snapshotsНизкая
Marketing campaigns24 часа72 часаDaily backupsНизкая

Governance: кто определяет RPO/RTO

Business Owner, не DBA, определяет RPO/RTO. DBA реализует техническое решение. Data Council утверждает.

Сценарий: FinSecure Bank

Core Banking: RPO=0, RTO=1h. Потеря даже одной транзакции — регуляторное нарушение. Стоимость: synchronous replication across AZ ($$$). Analytics: RPO=24h, RTO=48h. Потеря дневных данных — задержка отчётов, не catastrophe. Стоимость: daily pg_dump ($). Governance-решение: RPO/RTO определяет Business Owner (VP Banking для core, VP Analytics для BI). DBA предлагает технические варианты с cost estimate. Data Council утверждает бюджет.

Тестирование Recovery

Recovery без тестирования — fiction. Governance требует:

Quarterly Recovery Testing Schedule:
  Q1: Core Banking full recovery drill (target: RTO < 1h)
  Q2: Payment Processing failover test (target: RPO < 5 min)
  Q3: Analytics restore from backup (target: RTO < 48h)
  Q4: Full disaster recovery simulation (all systems)

Each test:
  1. Simulate failure (controlled)
  2. Execute recovery procedure
  3. Measure actual RPO/RTO
  4. Document gaps vs target
  5. Update runbook if needed

Storage Classification Matrix

Сводная матрица связывает классификацию данных с storage governance:

КлассификацияStorage TierRetentionEncryptionDisposalBackup RPO
PublicHot -> Warm1 годAt rest (AES-256)Standard delete24 часа
InternalHot -> Warm -> Cold3+2 годаAt rest + in transitSecure overwrite24 часа
ConfidentialHot -> Cold5+2 годаAt rest + in transit + per-fieldCrypto-shredding4 часа
RestrictedHot (isolated)Regulatory minAt rest + in transit + per-recordCrypto-shredding + auditRPO=0

Сценарий: DataTech Solutions (ДатаТех Солюшенз)

DataTech строит первую Storage Classification Matrix. При ограниченном бюджете доступны только два storage tier: Hot (SSD) и Cold (HDD). Маппинг: Restricted + Internal (active) -> Hot (быстрый доступ для governance-проверок, шифрование, частые backups). Public + Internal (archived) -> Cold (низкая стоимость, longer restore SLA допустим). Ключевой фактор — governance requirements, не объём данных.

Автоматизация Retention Enforcement

Policy-as-Code: TTL и автоматическое удаление

Ручное retention enforcement не масштабируется. Автоматизация:

# Automated retention enforcement
def enforce_retention(table_name, classification, retention_policy):
    """Проверить и применить retention policy для таблицы."""
    records = get_records_past_retention(table_name, retention_policy)

    if not records:
        return {"table": table_name, "action": "none", "reason": "all within retention"}

    # Check legal hold
    if has_active_legal_hold(table_name):
        return {"table": table_name, "action": "hold", "reason": "active legal hold"}

    # Determine disposal method by classification
    disposal_methods = {
        "public": "standard_delete",
        "internal": "secure_overwrite",
        "confidential": "crypto_shredding",
        "restricted": "crypto_shredding_with_audit"
    }

    method = disposal_methods.get(classification, "manual_review")

    # Create disposal ticket for approval
    return {
        "table": table_name,
        "action": "dispose",
        "records": len(records),
        "method": method,
        "requires_approval": classification in ("confidential", "restricted")
    }

Compliance Reporting

Ежемесячный retention compliance report:

Retention Compliance Report -- March 2026
==========================================
Total datasets:           200
Within retention:         170 (85%)
Past retention (pending):  20 (10%)  <- requires disposal workflow
Past retention (overdue):   5 (2.5%) <- governance violation
Under legal hold:           5 (2.5%) <- retention suspended

Overdue datasets:
  - raw_campaigns_2022 (Internal, expired 2025-01, 14 months overdue)
  - staging_temp_exports (Public, expired 2024-06, 21 months overdue)
  - ...

Action required: CDO review of 5 overdue datasets by March 31.

Итоги

  • Retention Policy: classification-driven сроки хранения (Public 1 год -> Restricted 7-15 лет)
  • Archiving Lifecycle: Hot -> Warm -> Cold -> Archive -> Dispose с governance-правилами на каждом переходе
  • Disposal Governance: crypto-shredding для Confidential/Restricted, disposal verification checklist, backup rotation
  • RPO/RTO: Business Owner определяет, DBA реализует. Квартальное тестирование recovery
  • Storage Classification Matrix: связывает classification с storage tier, encryption, disposal method, backup frequency
  • Automated Enforcement: policy-as-code для TTL, scheduled purge с approval workflow, compliance reporting
  • “Храним всё навсегда” — governance failure: regulatory risk + cost + security exposure

Это завершает модуль M04: Качество Данных и Observability. Вы изучили: шесть измерений качества, обнаружение нарушений, дедупликацию, автоматизацию тестов с dbt и Great Expectations, Data Observability, и governance жизненного цикла данных от retention до disposal. В следующем модуле мы перейдём к M05: Приватность и Compliance.

Проверьте понимание

Результат: 0 из 0
Аналитический
Вопрос 1 из 5. BioGenesis хранит данные клинического trial Phase III. FDA требует 15-летнее хранение для regulatory submission. GDPR требует удаления по завершении purpose. Trial завершён 3 года назад, данные в пределах FDA retention window. Каков правильный governance-подход?

Закончили урок?

Отметьте его как пройденный, чтобы отслеживать свой прогресс

Войдите чтобы оценить урок

Прогресс модуля
0 из 8