retention-and-archival
Policy และ automation สำหรับ data retention, archival และ deletion ตาม compliance requirements
安装与使用
请根据来源仓库和你的 AI 工具说明安装此技能。先阅读技能文件和依赖要求,再添加到工作流。
查看来源 ↗使用指南技能说明
Retention and Archival
Overview
Policy และ automation สำหรับ data retention (เก็บนานแค่ไหน), archival (ย้ายไป cold storage) และ deletion (ลบทิ้ง)
Why This Matters
- Compliance: GDPR, CCPA retention limits
- Cost: Cold storage ถูกกว่า hot storage
- Performance: น้อย data = query เร็วขึ้น
- Legal: Right to deletion
Retention Policy
# retention-policy.yaml
policies:
- table: users
retention: 7 years
reason: Legal requirement
archive_after: 2 years
delete_after: 7 years
- table: logs
retention: 90 days
reason: Operational needs
archive_after: 30 days
delete_after: 90 days
- table: analytics_events
retention: 2 years
reason: Business analytics
archive_after: 6 months
delete_after: 2 years
Automated Archival
# Archive old data to S3
def archive_old_data(table_name: str, cutoff_days: int):
cutoff_date = datetime.now() - timedelta(days=cutoff_days)
# Export to S3
query = f"""
COPY (
SELECT * FROM {table_name}
WHERE created_at < '{cutoff_date}'
)
TO 's3://archive-bucket/{table_name}/{cutoff_date.year}/'
WITH (FORMAT PARQUET, COMPRESSION GZIP)
"""
db.execute(query)
# Delete from hot storage
db.execute(f"""
DELETE FROM {table_name}
WHERE created_at < '{cutoff_date}'
""")
print(f"Archived {table_name} data older than {cutoff_days} days")
# Schedule daily
schedule.every().day.at("02:00").do(archive_old_data, 'logs', 30)
Deletion Policy
# Right to deletion (GDPR)
def delete_user_data(user_id: str):
"""Delete all user data across all tables"""
tables_with_user_data = [
'users',
'orders',
'analytics_events',
'audit_logs'
]
for table in tables_with_user_data:
db.execute(f"""
DELETE FROM {table}
WHERE user_id = '{user_id}'
""")
# Log deletion
audit_log.write({
'action': 'user_data_deletion',
'user_id': user_id,
'timestamp': datetime.now(),
'tables_affected': tables_with_user_data
})
print(f"Deleted all data for user {user_id}")
Lifecycle Management
-- Partition by date for easy archival
CREATE TABLE logs (
id UUID,
message TEXT,
created_at TIMESTAMP
) PARTITION BY RANGE (created_at);
-- Create monthly partitions
CREATE TABLE logs_2024_01 PARTITION OF logs
FOR VALUES FROM ('2024-01-01') TO ('2024-02-01');
-- Drop old partitions (fast deletion)
DROP TABLE logs_2023_01; -- Deletes entire month instantly
Summary
Retention: เก็บ data นานแค่ไหน
Archival: ย้ายไป cold storage (S3, Glacier)
Deletion: ลบตาม policy หรือ user request
Automation:
- Scheduled archival jobs
- Partition-based deletion
- Audit logging
Compliance:
- GDPR (right to deletion)
- Data retention limits
- Audit trails
使用示例
查看来源仓库中的使用示例与配置说明。
查看来源 ↗来源历史
- 收录时间
- 2026-01-20
- 索引更新时间
- 2026-01-26
- Branch
- main
收录与同步日期属于本站记录。源码修改历史请查看来源仓库。
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!