Я пытаюсь создать озеро данных , используя S3, откуда поступают данные из Авроры и, в конечном итоге, из других источников;Тем не менее, У меня проблемы с созданием экономически эффективного решения.
Я пытался использовать Data Migration Service (DMS) для потока данных из Авроры в S3.
Поскольку данные поступают в S3 в формате csv либо:
(1) Начальная загрузка: (column1, column2, column3, ...)
(2) Изменения в данных:(D / U / I, column1, column2, column3, ...) [D: удалить, U: обновить: I: вставить]
Я пытался преобразовать данные таким образом, чтобыS3 Bucket содержит только данные, которые не имеют префикса D / U / I.
Чтобы выполнить это преобразование, я подумал об использовании следующей модели:
Aurora -> Dirty S3 Bucket -> CuratedS3 Bucket -> Athena запрашивает у Куратор S3 Bucket
Dirty S3 Bucket содержит данные в формате (column1, column2, column3, ...) и (D / U / I, столбец 1, столбец 2, столбец 3, ...) .Когда новые данные поступают в эту корзину, отправляется сообщение SNS, и лямбда-функция должна прочитать вновь поступивший файл, преобразовать данные и поместить их в Куратор S3 , где Куратор S3Bucket содержит данные только в формате (column1, column2, column3, ...) .
Предполагая, что все данные из Авроры будут иметь столбцы create_at и updated_at , я подумал:
- Разделение данных вS3 на основе / год / месяц / день / час (с использованием create_at ):
- Однако, если данные разбиты на основе / год / месяц / день / час тогда я предполагаю, что затраты будут слишком высокими.
- Это основано на предположениях, что:
- 40000 запросов в день (вставки / обновления / удаления)
- 0,05 ГБ, средний размер файла
- $ 0,01 заГБ (для данных, возвращаемых S3)
- $ 0,01 на 1000 запросов (PUT, COPY или POST-запросов)
- $ 0,001 на 1000 запросов (GET, SELECT и все другие запросы)
- Расходы на получение данных в день = 40000 rpd * 0,05 ГБ * $ 0,01 за ГБ = 20
- Расходы на запрос данных в день = $ 0,001 * (40000 rdd / 1000) = .04
- Общие затраты = 20,04 в день
Отметим, что этот расчет приведен только для одной таблицы;Будет более 5 таблиц с одинаковыми показателями.
Таким образом, ежемесячные расходы будут превышать $ 3000 .
Есть ли намного более экономически эффективный способ потоковых данных от сияния до s3?
Или мне придется прибегнуть к получению ежедневного снимкаАврора БД с целью снижения затрат?