PostgreSQL
在SHOW TABLES
和DESCRIBE TABLE
查询的帮助下,从远程PostgreSQL实时访问表列表和表结构。
支持表结构修改(ALTER TABLE ... ADD|DROP COLUMN
)。如果use_table_cache
参数(参见下面的引擎参数)设置为1
,则会缓存表结构,不会检查是否被修改,但可以用DETACH
和ATTACH
查询进行更新。
host:port
— PostgreSQL服务地址database
— 远程数据库名次user
— PostgreSQL用户名称password
— PostgreSQL用户密码use_table_cache
— 定义数据库表结构是否已缓存或不进行。可选的。默认值:0
.
ClickHouse中的数据库,与PostgreSQL服务器交换数据:
CREATE DATABASE test_database
SHOW DATABASES;
┌─name──────────┐
│ test_database │
│ system │
└───────────────┘
SHOW TABLES FROM test_database;
从PostgreSQL表中读取数据:
SELECT * FROM test_database.test_table;
┌─id─┬─value─┐
│ 1 │ 2 │
└────┴───────┘
INSERT INTO test_database.test_table VALUES (3,4);
SELECT * FROM test_database.test_table;
┌─int_id─┬─value─┐
│ 1 │ 2 │
└────────┴───────┘
在PostgreSQL中修改了表结构:
当创建数据库时,参数use_table_cache
被设置为1
,ClickHouse中的表结构被缓存,因此没有被修改:
DESCRIBE TABLE test_database.test_table;
┌─name───┬─type──────────────┐
│ id │ Nullable(Integer) │
│ value │ Nullable(Integer) │
└────────┴───────────────────┘
DETACH TABLE test_database.test_table;
ATTACH TABLE test_database.test_table;
DESCRIBE TABLE test_database.test_table;
┌─name───┬─type──────────────┐
│ id │ Nullable(Integer) │
│ value │ Nullable(Integer) │