全部產品
Search
文件中心

Realtime Compute for Apache Flink:INSERT INTO語句

更新時間:Sep 04, 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時,必填。