Текущий сценарий:
У нас есть таблица базы данных для регистрации данных аудита, и запрос запускается по таблице на основе object_id
большую часть времени и редко в диапазоне created_date
. В таблице audit_log
хранятся данные за последний месяц, а через месяц данные перемещаются в таблицу archive_audit_log
. Эти таблицы находятся в Amazon
RDS
.
CREATE TABLE IF NOT EXISTS audit_log (
id INT AUTO_INCREMENT,
object_id INT NOT NULL,
created_date DATE,
old_value TEXT,
new_value TEXT,
PRIMARY KEY (id)
) ENGINE=INNODB;
Приблизительно ~ 1M + записей в таблице.
И соответствующая таблица архивации с точно такой же структурой.
CREATE TABLE IF NOT EXISTS archive_audit_log (
id INT AUTO_INCREMENT,
object_id INT NOT NULL,
created_date DATE,
old_value TEXT,
new_value TEXT,
PRIMARY KEY (id)
)ENGINE=ARCHIVE;
Приблизительно ~ 40M + записей в таблице и продолжает расти, и текущий размер в одной из баз данных (90 ГБ). Эти данные не могут быть удалены из-за наших договорных обязательств с клиентами.
Проблемы, с которыми я сталкиваюсь:
Пользовательский интерфейс обычно истекает, как и когда мы запрашиваем archive_audit_log
.
На импорт / экспорт, ежедневное резервное копирование и многое другое уходит больше времени.
Решение Я думаю:
Я думаю переместить данные archive_audit_log
в S3
в несколько файлов, а затем выполнить запрос, используя сервис Amazon Athena, чтобы получить результат.
Я хочу знать, использует ли кто-то AWS Athena
для такого варианта использования, прежде чем сжечь мою руку?
Кроме того, есть ли limitation
или restriction
, которые применяются к числу запросов против количества записей в результатах?
Спасибо за чтение вопроса, любые указатели будут оценены.