Skip to main content
Skip to main content

PostgreSQL

Allows to connect to databases on a remote PostgreSQL server. Supports read and write operations (SELECT and INSERT queries) to exchange data between ClickHouse and PostgreSQL.

Gives the real-time access to table list and table structure from remote PostgreSQL with the help of SHOW TABLES and DESCRIBE TABLE queries.

Supports table structure modifications (ALTER TABLE ... ADD|DROP COLUMN). If use_table_cache parameter (see the Engine Parameters below) is set to 1, the table structure is cached and not checked for being modified, but can be updated with DETACH and ATTACH queries.

Creating a Database

Engine Parameters

  • host:port — PostgreSQL server address.
  • database — Remote database name.
  • user — PostgreSQL user.
  • password — User password.
  • schema — PostgreSQL schema.
  • use_table_cache — Defines if the database table structure is cached or not. Optional. Default value: 0.

Data Types Support

PostgreSQLClickHouse
DATEDate
TIMESTAMPDateTime
REALFloat32
DOUBLEFloat64
DECIMAL, NUMERICDecimal
SMALLINTInt16
INTEGERInt32
BIGINTInt64
SERIALUInt32
BIGSERIALUInt64
TEXT, CHARString
INTEGERNullable(Int32)
ARRAYArray

Examples of Use

Database in ClickHouse, exchanging data with the PostgreSQL server:

Reading data from the PostgreSQL table:

Writing data to the PostgreSQL table:

Consider the table structure was modified in PostgreSQL:

As the use_table_cache parameter was set to 1 when the database was created, the table structure in ClickHouse was cached and therefore not modified:

After detaching the table and attaching it again, the structure was updated: