Skip to main content

Replication PostreSQL to Elasticsearch via Logical replication slots

Install

$ pip install pg-replicate-elastic

wal2json

Note: Use my fork as we tested it to be 100% sure it work with it and no breaking changes happen, wal2json .

$ git clone https://github.com/hmilkovi/wal2json.git
$ PATH=/path/to/bin/pg_config:$PATH
$ USE_PGXS=1 make
$ USE_PGXS=1 make install

You need to set up at least two parameters at postgresql.conf:

wal_level = logical
max_replication_slots = 1

After changing these parameters, a restart is needed.

Usage

pg_replicate_elastic --config=<absolute path to json config>

Construct configuration file in json format where:

  • replication_slot json object for replication slot name and if is temporary
  • tables is array of tables we want to replicate
  • es_connection connection string to Elasticsearch
  • postgres json object for PostreSQL connection
  • inital_sync boolean for inital syncronization that needs to be done first time to replicate old data

Example configuration

{
	"replication_slot": {
		"name": "elasticsearch_slot",
		"is_temp": true
	},
	"tables": [{
		"name": "poc",
		"primary_key": "a"
		"exclude_columns": "c,z"
	}],
	"es_connection": "http://127.0.0.1:9200/",
	"postgres": {
		"port": 5432,
		"host": "127.0.0.1",
		"database": "poc",
		"username": "test",
		"password": "test"
	},
	"inital_sync": false
}

Note

wal2json is not my software so for licence check their licence

Metadata

Release files for pg-replicate-elastic 1.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pg-replicate-elastic 1.0.3
File Size Uploaded
pg-replicate-elastic-1.0.3.tar.gz 5.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pg-replicate-elastic 1.0.3
File Interpreter ABI Platform
pg_replicate_elastic-1.0.3-py2-none-any.whl Python 2 none any Details

Total release size: 10.6 kB

Release files / pg-replicate-elastic-1.0.3.tar.gz

Download URL pg-replicate-elastic-1.0.3.tar.gz
Size 5.0 kB
Tags Source
SHA-256 checksum
How to use checksums
908a25aff2ce65c05dff60510142b4ac24b3b7ac1597fb238b9465e80f654c6f
BLAKE2b-256 checksum
How to use checksums
11e3a82597fdde02b2ed9ea85c834073274cd9e5e4e65aea4c066b4e4bf54859
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / pg_replicate_elastic-1.0.3-py2-none-any.whl

Download URL pg_replicate_elastic-1.0.3-py2-none-any.whl
Size 5.6 kB
Tags Python 2
SHA-256 checksum
How to use checksums
5343ea630030dcbcda4c24fc0fc408cf15de2c1792e54f3d2f1d002039f1677a
BLAKE2b-256 checksum
How to use checksums
7766f5699e89037913f07e642f61b997d76402a82af5afcd943dde27ae04efa0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.0.3 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page