Utilice la instrucción INSERT INTO para escribir en uno o varios sinks dentro de un job.
Compatibilidad con SQL hints
La instrucción INSERT admite SQL hints mediante la palabra clave OPTIONS para pasar parámetros a una tabla sink. Para obtener más información, consulte SQL Hints.
Escritura en un solo sink
Ejecute una única instrucción INSERT INTO directamente, sin necesidad de un contenedor.
-- 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;
Escritura en varios sinks
Agrupe varias instrucciones INSERT INTO en un conjunto de instrucciones mediante BEGIN STATEMENT SET; y END;.
Importante
Toda instrucción que escriba en varios sinks debe comenzar con BEGIN STATEMENT SET; y finalizar con END;.
A continuación se muestra un ejemplo que escribe datos en dos sinks a partir del mismo origen.
-- 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.