Skip to content

Синхронизация данных из PostgreSQL в Elasticsearch

Notifications You must be signed in to change notification settings

8ubble8uddy/postgres-to-elastic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PostgreSQL to Elasticsearch

python dockerfile last updated lint code style tests

Описание

Целью данного проекта является реализация ETL-скрипта на Python для синхронизации данных из БД PostgreSQL в поисковый движок Elasticsearch. Данные содержат информацию о фильмах и связанных с ними людях. Отказоустойчивость процесса обеспечивается перехватом ошибок падения хранилищ с применением техники backoff, суть которой в снижении потока запросов при восстановлении соединения. Также программа сохраняет состояние системы, чтобы при перезапуске продолжать работу с места остановки, а не начинать процесс заново. Для проверки получения определённых фильмов на заданный запрос написан набор Postman-тестов.

Технологии

Python PostgreSQL Elasticsearch Redis Pydantic Postman Docker

Как запустить проект:

Клонировать репозиторий и перейти внутри него в директорию /infra:

git clone https://github.com/8ubble8uddy/postgres-to-elastic.git
cd postgres-to-elastic/infra/

Создать файл .env и добавить настройки для проекта:

nano .env
# PostgreSQL
POSTGRES_DB=movies_database
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_HOST=postgres
POSTGRES_PORT=5432

# Elasticsearch
ELASTIC_HOST=elastic
ELASTIC_PORT=9200

# Redis
REDIS_HOST=redis
REDIS_PORT=6379

Развернуть и запустить проект в контейнерах:

docker-compose up

Вместе с Elasticsearch запускается связанный с ним веб-интерфейс для визуализации данных Kibana:

http://127.0.0.1:5601

Автор: Герман Сизов

About

Синхронизация данных из PostgreSQL в Elasticsearch

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published