Skip to main content

Enhanced PostgreSQL to Elasticsearch Data Synchronization

Project description

⚡ pg2elastic

Enhanced PostgreSQL to Elasticsearch Data Synchronization

📚 Description

pg2elastic is fork of official pgsync. Everything that pgsync got, pg2elastic got too.

Welcome to pg2elastic, a fork of the official pgsync package, designed to provide seamless and efficient data synchronization between PostgreSQL databases and Elasticsearch clusters. Building upon the solid foundation of pgsync, pg2elastic inherits all of its powerful capabilities and takes them a step further.

Key Features:

  • High-Performance Sync: pg2elastic inherits the robust data synchronization engine from pgsync, ensuring lightning-fast and reliable transfers.
  • Real-time Indexing: Seamlessly mirror your PostgreSQL data into Elasticsearch indices, keeping them in sync in real-time.
  • Schema Mapping: Easily define and customize the mapping of PostgreSQL schemas to Elasticsearch indexes, giving you full control over the data structure.
  • Efficient Data Types Handling: pg2elastic effortlessly handles data type conversions, ensuring accurate representation across platforms.
  • Continuous Enhancements: We are committed to actively maintaining and enhancing pg2elastic, incorporating the latest advancements in both PostgreSQL and Elasticsearch technologies.
  • Whether you're working on a data-driven application or performing complex data analysis, pg2elastic empowers you with a streamlined and feature-rich solution for harmonizing your PostgreSQL and Elasticsearch ecosystems.

🛠️ Prerequisites

PGSync Requirements


✨ Key Enhancements

  • Loguru, Better Logging Module
  • PG_SCHEMA environment variable to enhance performance by eliminating the need to scan all schemas
  • REDIS_USERNAME environment variable to specify redis username
  • REDIS_PASSWORD environment variable to specify redis password
  • REDIS_ENDPOINT environment variable to specify redis connection endpoint

🚀 Deployment

Manual Deployment

You need to run pg2elastic command in order to initialize it.

  • Create a .env file using the cp .env.sample .env command and replace the existing environment variables with personal configuration settings.

  • Download dependencies using python setup.py develop

  • Start the app in pre-production mode by using pg2elastic command for development

If you do not run the full setup, you will get errors when running this package.


✅ Testing

$ export PG_SCHEMA=
$ flake8 pg2elastic tests
$ python setup.py test

🔊 Logs

This project comes with a loguru module for logging, the configurations for loguru can be found in pg2elastic bin file.


🚚 Deployment

$ python setup.py sdist bdist_wheel
$ twine upload dist/*

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pg2elastic-0.0.9.tar.gz (104.5 kB view hashes)

Uploaded Source

Built Distribution

pg2elastic-0.0.9-py3-none-any.whl (58.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page