Архивирование и удаление данных в Data Vault — это важные процессы для управления объемом хранилища и обеспечения производительности. Data Vault подходит для работы с историческими данными, поэтому подход к архивированию и удалению должен быть основан на стратегиях сохранения исторических записей и требований бизнеса.


Основные аспекты архивирования и удаления данных

  1. Архивирование:

    • Перемещение устаревших данных в отдельные архивные хранилища для их долгосрочного хранения.
    • Сохранение данных, которые могут понадобиться для анализа, соответствия требованиям законодательства или аудита.
  2. Удаление:

    • Удаление данных, которые больше не нужны для анализа или не подлежат хранению по юридическим причинам.
    • Удаление записей может быть основано на возрастных критериях, бизнес-правилах или политике хранения данных.
  3. Балансировка:

    • Обеспечение оптимального объема данных в оперативных таблицах для высокой производительности.
    • Учет потребностей пользователей в доступе к историческим данным.

Стратегия архивирования в Data Vault

1. Архивирование сателлитов

Сателлиты содержат исторические данные и могут быстро расти. Архивирование старых записей может включать:

  • Перемещение данных за устаревший период (например, более 5 лет) в архивную базу данных.
  • Использование партиционирования, чтобы выделить устаревшие данные для удобной обработки.

Пример SQL для архивирования сателлитов:

INSERT INTO Archive_Sat_PassengerDetails
SELECT *
FROM Sat_PassengerDetails
WHERE LoadDate < DATEADD(YEAR, -5, GETDATE());

DELETE FROM Sat_PassengerDetails
WHERE LoadDate < DATEADD(YEAR, -5, GETDATE());

2. Архивирование линков

Линки содержат связи между объектами, которые редко изменяются. Старые записи можно архивировать вместе с соответствующими сателлитами.

Пример SQL для архивирования линков:

INSERT INTO Archive_Link_PassengerFlights
SELECT *
FROM Link_PassengerFlights
WHERE FlightDate < DATEADD(YEAR, -5, GETDATE());

DELETE FROM Link_PassengerFlights
WHERE FlightDate < DATEADD(YEAR, -5, GETDATE());

Стратегия удаления данных

1. Удаление данных на уровне сателлитов

При удалении данных из сателлитов следует убедиться, что они не нужны для аудита или отчетности.

Пример SQL для удаления устаревших данных:

DELETE FROM Sat_PassengerDetails
WHERE LoadDate < DATEADD(YEAR, -10, GETDATE());

2. Удаление записей, связанных с политикой хранения

Некоторые записи (например, личные данные пользователей) должны быть удалены через определённый срок или по требованию для соблюдения законодательства (например, GDPR - для Евросоюза, CCPA - для США, 152-ФЗ - для Российской Федерации).

Пример SQL для удаления данных на основании политики:

DELETE FROM Sat_PassengerDetails
WHERE PassengerID IN (
    SELECT PassengerID 
    FROM DeletionRequests
);

Практический пример: Архивирование и удаление в Data Vault

Сценарий: Архивирование данных о пассажирах старше 5 лет

  1. Архивирование:

    • Создание архивных таблиц для сателлитов и линков.
    • Перемещение данных с LoadDate старше 5 лет.
  2. Удаление:

    • Удаление персональных данных из сателлитов после 10 лет хранения.
    • Удаление ссылок на устаревшие записи в линках.

SQL-скрипт для автоматизации:

-- Архивирование устаревших данных
INSERT INTO Archive_Sat_PassengerDetails
SELECT *
FROM Sat_PassengerDetails
WHERE LoadDate < DATEADD(YEAR, -5, GETDATE());

DELETE FROM Sat_PassengerDetails
WHERE LoadDate < DATEADD(YEAR, -5, GETDATE());

-- Удаление данных старше 10 лет
DELETE FROM Sat_PassengerDetails
WHERE LoadDate < DATEADD(YEAR, -10, GETDATE());

Заключение

Архивирование и удаление данных — это важные процессы для управления данными в Data Vault. Они помогают поддерживать производительность хранилища, снижать затраты на хранение и соблюдать законодательные требования. Сочетание автоматизации и хорошо спланированной стратегии позволяет эффективно управлять объемом данных и обеспечивать доступ к необходимым историческим данным.