本文为您介绍如何创建分析型数据库PostgreSQL版结果表。

注意 本文档仅适用于Blink 3.6.0及以上版本。

DDL定义

实时计算支持使用分析型数据库PostgreSQL版作为结果输出。示例代码如下。
create table rds_output(
  id INT,
    len INT,
    content VARCHAR,
    PRIMARY KEY(id)
) with (
  type='adbpg',
  url='jdbc:postgresql://<yourNetworkAddress>:<PortId>/<yourDatabaseName>',
  tableName='<yourDatabaseTableName>',
  userName='<yourDatabaseUserName>',
  password='<yourDatabasePassword>'
);

实现原理

实时计算写入分析型数据库PostgreSQL结果表可以分为以下两个阶段:
  1. 将实时计算每行的结果数据拼接为一行SQL。
  2. 在目标数据库执行拼接后的SQL。

WITH参数

参数 参数说明 是否必填 备注
type 源表类型 固定值为adbpg
url JDBC连接地址 分析型数据库PostgreSQL版数据库的JDBC连接地址。格式为'jdbc:postgresql://<yourNetworkAddress>:<PortId>/<yourDatabaseName>',其中:
  • yourNetworkAddress:内网地址。
  • PortId:连接端口。
  • yourDatabaseName:连接的数据库名称。
示例:url='jdbc:postgresql://gp-xxxxxx.gpdb.cn-chengdu.rds.aliyuncs.com:3432/postgres'
tableName 表名
username 账号
password 密码
maxRetryTimes 写入重试次数 默认为3。
useCopy 是否采用copy API写入数据 参数取值如下:
  • 0(默认值):采用INSERT方式写入数据。
  • 1:采用copy API方式写入数据。
batchSize 一次批量写入的条数 默认值为5000。
exceptionMode 数据写入过程中出现异常时的处理策略 支持以下两种处理策略:
  • ignore(默认值):忽略出现异常时写入的数据。
  • strict:数据写入异常时,Failover报错。
conflictMode 当出现主键冲突或唯一索引冲突时的处理策略 支持以下三种处理策略:
  • ignore(默认值):忽略主键冲突,保留之前的数据。
  • strict:主键冲突时,Failover报错。
  • update:主键冲突时,更新新到的数据。
targetSchema Schema名称 默认值为public。

类型映射

分析型数据库PostgreSQL和实时计算字段类型对应关系如下。
实时计算字段类型 分析型数据库PostgreSQL版字段类型
BOOLEAN BOOLEAN
TINYINT SAMLLINT
SAMLLINT SAMLLINT
INT INT
BIGINT BIGINT
DOUBLE DOUBLE PRECISION
VARCHAR TEXT
DATETIME TIMESTAMP
DATE DATE
FLOAT REAL
DECIMAL DOUBLE PRECISION
TIME TIME
TIMESTAMP TIMESTAMP