本文为您介绍如何使用INSERT INTO语句在一个作业中写入一个Sink或多个Sink。
背景信息
INSERT语句支持使用Hints使用OPTIONS选项给结果表传递参数,详情请参见SQL Hints。
写入一个Sink示例
--源表
CREATE TEMPORARY TABLE datagen_source (
name VARCHAR,
score BIGINT
) WITH (
'connector' = 'datagen'
);
--结果表
CREATE TEMPORARY TABLE blackhole_sink(
name VARCHAR,
score BIGINT
) WITH (
'connector' = 'blackhole'
);
--DML
INSERT INTO blackhole_sink SELECT UPPER(name), score FROM datagen_source;
写入多个Sink示例
重要
写入多个Sink语句时,需要以BEGIN STATEMENT SET;
开头,以END;
结尾。
本文以写入两个Sink为例。
--源表
CREATE TEMPORARY TABLE datagen_source (
name VARCHAR,
score BIGINT
) WITH (
'connector' = 'datagen'
);
--结果表A
CREATE TEMPORARY TABLE blackhole_sinkA(
name VARCHAR,
score BIGINT
) WITH (
'connector' = 'blackhole'
);
--结果表B
CREATE TEMPORARY TABLE blackhole_sinkB(
name VARCHAR,
score BIGINT
) WITH (
'connector' = 'blackhole'
);
--DML
BEGIN STATEMENT SET; --写入多个Sink时,必填。
INSERT INTO blackhole_sinkA
SELECT UPPER(name), sum(score)
FROM datagen_source
GROUP BY UPPER(name);
INSERT INTO blackhole_sinkB
SELECT LOWER(name), max(score)
FROM datagen_source
GROUP BY LOWER(name);
END; --写入多个Sink时,必填。