Архивирование и удаление данных в Data Vault — это важные процессы для управления объемом хранилища и обеспечения производительности. Data Vault подходит для работы с историческими данными, поэтому подход к архивированию и удалению должен быть основан на стратегиях сохранения исторических записей и требований бизнеса.
Основные аспекты архивирования и удаления данных
-
Архивирование:
- Перемещение устаревших данных в отдельные архивные хранилища для их долгосрочного хранения.
- Сохранение данных, которые могут понадобиться для анализа, соответствия требованиям законодательства или аудита.
-
Удаление:
- Удаление данных, которые больше не нужны для анализа или не подлежат хранению по юридическим причинам.
- Удаление записей может быть основано на возрастных критериях, бизнес-правилах или политике хранения данных.
-
Балансировка:
- Обеспечение оптимального объема данных в оперативных таблицах для высокой производительности.
- Учет потребностей пользователей в доступе к историческим данным.
Стратегия архивирования в 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 лет
-
Архивирование:
- Создание архивных таблиц для сателлитов и линков.
- Перемещение данных с LoadDate старше 5 лет.
-
Удаление:
- Удаление персональных данных из сателлитов после 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. Они помогают поддерживать производительность хранилища, снижать затраты на хранение и соблюдать законодательные требования. Сочетание автоматизации и хорошо спланированной стратегии позволяет эффективно управлять объемом данных и обеспечивать доступ к необходимым историческим данным.