Use a instrução INSERT INTO para gravar dados em um ou mais sinks em um job.
Suporte a SQL hints
A instrução INSERT aceita SQL hints com a palavra-chave OPTIONS para passar parâmetros a uma tabela sink. Para obter mais informações, consulte SQL Hints.
Gravar em um único sink
Execute uma única instrução INSERT INTO diretamente, sem encapsulamento.
-- Create a source table.
CREATE TEMPORARY TABLE datagen_source (
name VARCHAR,
score BIGINT
) WITH (
'connector' = 'datagen'
);
-- Create a sink table.
CREATE TEMPORARY TABLE blackhole_sink (
name VARCHAR,
score BIGINT
) WITH (
'connector' = 'blackhole'
);
-- Write transformed data to the sink.
INSERT INTO blackhole_sink SELECT UPPER(name), score FROM datagen_source;
Gravar em múltiplos sinks
Agrupe várias instruções INSERT INTO em um conjunto de instruções usando BEGIN STATEMENT SET; e END;.
Importante
Uma instrução que grava em múltiplos sinks deve começar com BEGIN STATEMENT SET; e terminar com END;.
O exemplo a seguir grava dados em dois sinks a partir da mesma source.
-- Create a source table.
CREATE TEMPORARY TABLE datagen_source (
name VARCHAR,
score BIGINT
) WITH (
'connector' = 'datagen'
);
-- Create sink table A.
CREATE TEMPORARY TABLE blackhole_sinkA (
name VARCHAR,
score BIGINT
) WITH (
'connector' = 'blackhole'
);
-- Create sink table B.
CREATE TEMPORARY TABLE blackhole_sinkB (
name VARCHAR,
score BIGINT
) WITH (
'connector' = 'blackhole'
);
-- Write to both sinks in a single optimized execution.
BEGIN STATEMENT SET; -- Required for writing to multiple sinks.
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; -- Required for writing to multiple sinks.