Required settings
- Host name
- Port (default is
5432) - Service account
Creating a service account
Please make sure you create a service account that has the ability to create on the database and is the owner of all the schemas you plan to sync into.
Advanced features
Partition mirroring
Partition mirroring creates each partitioned PostgreSQL source table as a partitioned destination table with the same partitions. Artie writes to the parent table, and PostgreSQL routes each row to its partition.
When it runs
Partitions added to the source are mirrored at most once a day, so create them at least a day before rows arrive, for example with pg_partman’s
premake.
Key behaviors
- Supports
RANGE,LIST, andHASHpartitions,DEFAULTpartitions, and sub-partitions. - Only runs
CREATE TABLE IF NOT EXISTS, one table per transaction, with a 5-second lock timeout. A partition that times out waiting for a lock is created on the next run. - Never detaches, drops, renames, truncates, or moves rows. If you detach, split, merge, or rename source partitions, update the destination manually.
- If a backfill is set to drop the destination table first, Artie truncates it instead, so the partitions stay in place.
- Doesn’t convert an existing unpartitioned destination table. The deploy fails if that table is about to be backfilled.
What happens if a row arrives before its partition exists?
What happens if a row arrives before its partition exists?
Without a
DEFAULT partition, the write fails and Artie retries it until the partition is created. With a DEFAULT partition, the row lands in the default, and the new partition can’t be created until you move those rows out of the default partition.Which tables can't be mirrored?
Which tables can't be mirrored?
A partition replicated on its own instead of through its parent, foreign-table partitions, tables unified across schemas, table or partition names longer than 63 bytes, and partition key columns with uppercase letters or special characters, because Artie lowercases destination column names.