Skip to main content

PostgreSQL

Target DataSource:

Connection

Basic Functions

FunctionDescription
Schema Migration

If the target schema does not exist, BladePipe will automatically generate and execute CREATE statements based on the source metadata and the mapping rule.

Full Data Migration

Migrate data by sequentially scanning data in tables and writing it in batches to the target database.

Incremental Data Sync

Sync of common DML like INSERT, UPDATE, DELETE is supported.

Data Verification and Correction

Verify all existing data. Optionally, you can correct the inconsistent data based on verification results. Scheduled DataTasks are supported.
For more information, see Create Verification and Correction DataJob.

Subscription Modification

Add, delete, or modify the subscribed tables with support for historical data migration. For more information, see Modify Subscription.

Table Name Mapping

Support the mapping rules, namely, keeping the name the same as that in Source, converting the text to lowercase, converting the text to uppercase, truncating the name by "_digit" suffix.

DDL Sync

PostgreSQL DDL sync is realized by triggers. The user should have the permissions on triggers and tables. For more information, see Permissions Required for PostgreSQL

Metadata Retrieval

Retrieve the target metadata with filtering conditions from the source table.

Advanced Functions

FunctionDescription
Handling of Zero Value for Time

Allow setting zero value for time to different data types to prevent errors when writing to the Target.

Custom Code

For more information, see Custom Code Processing, Debug Custom Code and Logging in Custom Code.

Data Filtering Conditions

Support data filtering using WHERE conditions, with SQL-92 as the SQL language. For more information, see Data Filtering.

Setting Target Primary Key

Change the primary key to another field to facilitate data aggregation and other operations.

Limits

LimitDescription
Primary Key Conflict Handling

PostgreSQL <= 9.4 or Greenplum <= 6 does not support conflict skipping or replacement. Performance may be affected when there are a large number of primary key conflicts.


Source

Prerequisites

PrerequisiteDescription
Permissions for Account

Required permissions (taking a self-managed database as an example):

  • GRANT ALL PRIVILEGES ON DATABASE sync_db TO sync_user (or SELECT permission on all views in the sync_db information_schema, and SELECT permission on tables, indexes, constraints to be synchronized)
  • ALTER USER sync_user REPLICATION
Incremental Data Sync Preparation

Prepare as follows:

  • Modify postgresql.conf, set wal_level=logical and wal_log_hints=on
  • Modify pg_hba.conf, set host replication sync_user CIDR netmask md5, host sync_db sync_user CIDR netmask md5, host postgres sync_user CIDR netmask md5
  • Restart PostgreSQL
Port Preparation

Allow the migration and sync node (Worker) to connect to the PostgreSQL port (e.g., port 5432).

Parameters

ParameterDescription
fullFetchSize

Fetch size for scaning full data.

eventStoreSize

Cache size for parsed incremental events.

ignoreGisSRID

Whether to ignore SRID when parsing GIS data types.

defaultGisSRID

Set the SRID for GIS data types.

Tips: To modify the general parameters, see General Parameters and Functions.


Target

Prerequisites

PrerequisiteDescription
Permissions for Account

Required permissions include SELECT, INSERT, DELETE, UPDATE, and common DDL permissions.
For Aliyun AnalyticDB for PostgreSQL, initial accounts or those with SELECT, INSERT, DELETE, UPDATE, and common DDL permissions are needed.

Port Preparation

Allow the migration and sync node (Worker) to connect to the PostgreSQL / Greenplum / Aliyun AnalyticDB for PostgreSQL port (e.g., port 5432).

Parameters

ParameterDescription
keyConflictStrategy

Strategy for handling primary key conflicts during write in Incremental DataTask:

  • IGNORE: Ignore conflicts (default)
  • REPLACE: Replace conflicts (optional)

dstWholeReplace

Convert INSERT and UPDATE operations into full row replacement in the Target.

enableTimeZoneProcess

Enable time zone conversion to datetime fields.

timezone

Target time zone, e.g., +08:00, Asia/Shanghai, America/New_York.

defaultZeroDate

Default value for replacing '0000-00-00 00:00:00' / '0000-00-00' values. Optional values include:

  • null (empty)
  • Time (14:23:33)
  • Date (1970-01-01)
  • DateTime (1970-01-01 00:00:00),
  • TimeZone Time (14:23:33+08:00 or 1970-01-01 00:00:00+08:00)
caseSensitive

Case sensitivity strategy for SQL statements, including:

  • UpperCase: Convert to uppercase
  • LowerCase: Convert to lowercase
  • Sensitive: Add qualifiers
  • NoSpecified: No conversion/No qualifiers

writeStrategy

Strategy of writing data to the Target, including:

  • ROW (single row)
  • MULTI_SQL (multiple statements)
  • BATCH (write data in batches, default option)
  • COPY (PostgreSQL COPY command)
defaultGisSRID

Set the SRID for GIS data types.

Tips: To modify the general parameters, see General Parameters and Functions.

Connection

Basic Functions

Advanced Functions

Limits

Example

FAQ

Source

Prerequisites

Parameters

Target

Prerequisites

Parameters