Инкрементное хранение данных - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть дневные данные временных рядов, на которых я запускаю модель.Модель работает в Spark.

Я хочу запускать модель только ежедневно и добавлять результаты к историческим результатам.Для успешного запуска модели важно иметь «объединенный единый источник данных», содержащий исторические данные.

Я должен использовать сервис AWS для сохранения результатов.Если я буду хранить в S3, я буду хранить до 1 файла в день (слишком много файлов).Если я храню в Redshift, он не сливается + не переносится, поэтому становится сложным.Данные, обращенные к клиенту, находятся в Redshift, поэтому удаление таблицы и ежедневная перезагрузка не возможны.

Я не уверен, как разумно (определяемый как минимальная стоимость и последующая обработка) хранить инкрементные данные без ежедневной повторной обработки, чтобы получить один файл.

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Вы также можете переключиться на ETL. Pentaho Data Integrator .

. Он оснащен готовыми плагинами для S3, Redshift (и очень эффективным).другие), и есть один шаг для сравнения с предыдущими значениями.Исходя из моего опыта, он работает довольно быстро.Кроме того, он работает для вас в течение ночи и отправляет вам утреннее сообщение о том, что все прошло нормально (или нет).

Примечание для модераторов: это агностическая точка зрения, я мог бы порекомендовать многих других,но этот шов наиболее подходит для нужд ОП.

0 голосов
/ 25 сентября 2018

S3 по-прежнему ваш лучший выстрел.Поскольку к вашей работе, кажется, нет необходимости обращаться в режиме реального времени, это скорее скользящий набор данных.

Если вас беспокоит объем создаваемого файла, вы можете сделать как минимум две вещи:

  1. Управление жизненным циклом объекта S3 Вы можете определить свои объекты длябыть удаленным или перейти в другой класс хранения (дешевле) через x дней.Дополнительные примеры: https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-configuration-examples.html

  2. Уведомление S3 По сути, вы можете настроить прослушиватель в вашем сегменте S3, «прослушивая» все объекты, которые соответствуют указанному префиксу и суффиксу, для запуска других сервисов AWS.Одна простая вещь, которую вы можете сделать, это запустить лямбду, выполнить обработку, а затем вы можете делать все, что захотите.https://docs.aws.amazon.com/AmazonS3/latest/user-guide/enable-event-notifications.html

Используйте S3 в качестве базы данных, когда это возможно.Это чертовски дешево, и это основа AWS.

...