В этом посте объясняется, как иметь базу данных Mongo, которая динамически обновляется каждый раз, когда на S3 поступает новый файл.
Contents
Введение
Когда мы имеем дело с непрерывным потоком данных от клиентов для запуска расширенных аналитических приложений в режиме реального времени, часто бывает трудно изолировать рабочую нагрузку. По этой причине настройка автоматической непрерывной репликации данных с базой данных, с которой вы работаете, может оказаться чрезвычайно полезной.
Предпосылки
- MongoDB установлен на вашем компьютере
- Создайте учетную запись AWS
- Установите и настройте интерфейс командной строки AWS
Кодирование
Требуемые пакеты
Среди всех требуемых библиотек (см. требования.txt) в первую очередь необходимы две библиотеки…
Boto3 — API для подключения к сервисам AWS ( страница документации )
PyMongo — инструмент для подключения и работы с MongoDB ( страница документации )
pip установить boto3
pip установить pymongo
Настройте начальные переменные
Подключитесь к учетной записи AWS с помощью boto3 и укажите сервис (S3), к которому вы хотите получить доступ. Укажите имя ведра, из которого вы хотите получить.
Подключитесь к базе данных Mongo с помощью экземпляра MongoClient библиотеки PyMongo. Укажите базу данных и имя коллекции, где вы хотите хранить данные.
s3_client = boto3.client('s3')
Bucket_name = 'имя-бакета'
db_name = 'test-env'
coll_name = 'test-coll'
client = MongoClient('localhost', 27017)
Для обновлений БД при выполнении (не непрерывно)
Следующий скрипт поможет вам обновить базу данных mongo при выполнении…
Программа извлекает последний файл из S3, который будет сравниваться с содержимым существующего файла, если существует новое значение, база данных обновляется этим содержимым, иначе в базе данных не происходит никаких обновлений. Это позволит поддерживать поток данных без избыточности и оперативных обновлений.
Для непрерывных обновлений БД…
Для непрерывного обновления базы данных без каких-либо триггеров, например, каждые 5 или 10 минут, программа должна получать последний файл с S3, и выполняется тот же механизм обновления данных, что и выше.
Для этой цели мы будем использовать приложение dash для запуска программы в непрерывном темпе.
Dash — это интерактивное веб-приложение на основе Python. (Вводное руководство )
Конечные примечания
Надеюсь, эта статья поможет вам в вашей работе. Спасибо за чтение. Не стесняйтесь оставлять любые комментарии.
Статья является переводом medium.com