全部产品
Search
文档中心

Realtime Compute for Apache Flink:UNION ALL

更新时间:Jun 19, 2025

Topik ini menjelaskan bagaimana kompatibilitas antara penyebaran dan data state terpengaruh setelah Anda memodifikasi UNION ALL dalam pernyataan SQL untuk penyebaran tersebut.

Modifikasi yang tidak memengaruhi atau sebagian memengaruhi kompatibilitas

Mengubah urutan kueri input dalam UNION ALL tidak memengaruhi kompatibilitas data state dari operator stateful hilir.

create table MyTable2 (
  a int,
  b bigint,
  c varchar,
  d int
);

-- Pernyataan SQL asli: 
select a, sum(b), max(c) from (
  select a, b, c from MyTable union all select a, b, c from MyTable2
) group by a;


-- Ubah urutan kueri input dalam UNION ALL. Setelah modifikasi ini, penyebaran tetap sepenuhnya kompatibel dengan data state.
select a, sum(b), max(c) from (
  select a, b, c from MyTable2 union all select a, b, c from MyTable
) group by a;

Modifikasi yang menyebabkan ketidaksesuaian penuh

Menambahkan atau menghapus kueri input dari UNION ALL menyebabkan ketidaksesuaian data state untuk operator stateful hilir.

create table MyTable2 (
  a int,
  b bigint,
  c varchar,
  d int
);

-- Pernyataan SQL asli: 
select a, sum(b), max(c) from (
  select a, b, c from MyTable union all select a, b, c from MyTable2
) group by a;

create table MyTable3 (
  a int,
  b bigint,
  c varchar,
  d int
);

-- Tambahkan kueri input ke UNION ALL. Setelah modifikasi ini, penyebaran menjadi tidak kompatibel dengan data state.
select a, sum(b), max(c) from (
  select a, b, c from MyTable
  union all
  select a, b, c from MyTable2
  union all
  select a, b, c from MyTable3
) group by a;