Bir iş içinde tek veya birden fazla havuza veri yazmak için INSERT INTO deyimini kullanın.
SQL ipuçları desteği
INSERT deyimi, bir havuz tablosuna parametre aktarmak amacıyla OPTIONS anahtar sözcüğüyle SQL ipuçlarını destekler. Daha fazla bilgi için bkz. SQL Hints.
Tek bir havuza yazma
Tek bir INSERT INTO deyimini herhangi bir sarmalayıcı olmadan doğrudan çalıştırın.
-- 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;
Birden fazla havuza yazma
Birden fazla INSERT INTO deyimini, BEGIN STATEMENT SET; ve END; kullanarak bir ifade kümesi içinde sarmalayın.
Önemli
Birden fazla havuza yazan bir ifade BEGIN STATEMENT SET; ile başlamalı ve END; ile bitmelidir.
Aşağıdaki örnekte aynı kaynaktan iki farklı havuza veri yazılır.
-- 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.