本文為您介紹如何使用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時,必填。