全部产品
Search
文档中心

实时计算Flink版:INSERT INTO语句

更新时间:Sep 03, 2024

本文为您介绍如何使用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时,必填。