创建数据写入任务

为了方便介绍,本节的数据源采用随机数据源(random),实际使用中可以根据实际情况创建数据源。

在实时计算控制台上,点击项目管理>项目列表,单击项目名进入目标项目。


点击开发>新建作业,创建数据写入的Flink SQL作业。



写入ADB PG的作业举例。 --SQL

--********************************************************************--

--Author: sqream_test

--CreateTime: 2020-04-27 19:13:44

--********************************************************************--

CREATE TABLE s_member_cart

(

a1 bigint ,

a2 tinyint ,

a3 smallint ,

a4 int ,

a5 boolean ,

a6 FLOAT ,

a7 DECIMAL ,

a8 double ,

a9 date ,

a10 time ,

a11 timestamp ,

a12 tinyint

) WITH (

type='random'

);

-- ads sink.

CREATE TABLE adsSink (

`B1` bigint ,

`B2` tinyint ,

`B3` smallint ,

`B4` int ,

`B5` boolean,

`B6` FLOAT ,

`B7` FLOAT ,

`B8` double ,

`B9` date ,

`B10` time ,

`B11` timestamp ,

`B12` varchar,

`B15` varchar

--PRIMARY KEY(b1)

) with (

--type='print'

type='adbpg',

version='1.1',

url='jdbc:postgresql://gp-xxxx:3432/testblink',

tableName='test',

userName='xxxx',

password='xxxxxx',

timeZone='Asia/Shanghai',

useCopy='0'

);

INSERT INTO adsSink

SELECT a1,a2,a3,a4,a5,a6,a6,a8,a9,a10,a11, case when a12 >0 then 'value1' else 'value2' end as b12,'{ "customer": "value", "items": {"product": "Beer","qty": 6}}'

from s_member_cart;

--insert into adsSink2 select a2, sum(a4) from s_member_cart group by a2;

参数说明

参数

参数说明

是否必填

备注

type

源表类型

固定值:adbpg。

url

JDBC连接地址

分析型数据库PostgreSQL版数据库的JDBC连接地址 。格式为‘jdbc:postgresql://:/’,其中yourNetworkAddress:内网地址。PortId:连接端口。yourDatabaseName:连接的数据库名称。示例:url='jdbc:postgresql://gp-xxxxxx.gpdb.cn-chengdu.rds.aliyuncs.com:3432/postgres'

tableName

表名

无。

username

账号

无。

password

密码

无。

maxRetryTimes

写入重试次数

默认为3。

useCopy

是否采用copy API写入数据

参数取值如下

1:采用copy API方式写入数据。

0:采用其他方式写入数据,例如BATCH INSERT或BATCH UPSERT。blink 3.6.0 版本默认为0,3.6.4及以上版本默认值为1;当取值为0时,会根据writeMode字段选择数据写入方式。

batchSize

一次批量写入的条数

默认值为5000。

exceptionMode

数据写入过程中出现异常时的处理策略

支持以下两种处理策略

ignore(默认值):忽略出现异常时写入的数据。

strict:数据写入异常时,Failover报错。

conflictMode

当出现主键冲突或者唯一索引冲突时的处理策略

支持以下三种处理策略

ignore (默认值):忽略主键冲突,保留之前的数据。

strict:主键冲突时,Failover报错。

update:主键冲突时,更新新到的数据。

upsert:主键冲突时,采用upsert方式写入数据。

targetSchema

Schema名称

默认值为public。

writeMode

在useCopy字段基础上,更细分的写入方式

blink 3.6.4 以后版本开始支持,在useCopy字段为0的场景下,可以设定writeMode字段采用其他写入方式,参数取值如下:

0 :采用BATCH INSERT方式写入数据。

1(默认值):采用COPY API写入数据。

2:采用BATCH UPSERT方式写入数据。upsert含义见

类型映射

实时计算字段类型

分析型数据库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