Идея:
- Пусть один сервер (хост) запишет в промежуточную таблицу (пример ниже).
Когда сервер хостазаписывает в промежуточную таблицу, устанавливает created_ts
.
Когда внешний сервер успешно считывает данные, он устанавливает xchange_ts
.
При использовании обёртки сторонних данных вам может не потребоваться поле xchange_err
, но идея этого заключается в том, чтобы сообщить о неудачном импорте.
CREATE TABLE staging
( id SERIAL PRIMARY KEY
, created_ts TIMESTAMPTZ
, xchange_ts TIMESTAMPTZ
, xchange_err TEXT DEFAULT NULL
, colA type_datatype
, colB type_datatype
);
Я на самом деле не использовал postgres_fdw
, но я думаю, что внешняя таблица будет определена примерно так:
CREATE FOREIGN TABLE staging
( id INTEGER PRIMARY KEY
, created_ts TIMESTAMPTZ
, xchange_ts TIMESTAMPTZ
, xchange_err TEXT DEFAULT NULL
, colA type_datatype
, colB type_datatype
)
SERVER <server_name>
OPTIONS (schema_name '<schema_name>', table_name 'staging');