1

T1 と T2 の 2 つのハイブ テーブルがあります。T1 は、列 date1,hour1 でパーティション分割された外部テーブルです。また、date2 という別の日付列もあります (date1 とは異なります)。

T2 は、date2 でパーティション分割されたハイブ テーブルです。

データは 1 時間ごとに増分的に取得され、動的パーティションを使用してテーブル T1 に簡単に追加できます。

T1 からデータを選択し、date2 で分割されたデータを T2 に段階的にロードする効率的な方法が必要です。

これが私が今していることです

insert into T2

select
    *,
    date2
from

    (
      select * from T1 where date1="a constant date" and hour1 = "a constant hour"
    ) T1SubQuery
left outer join
    T2
on
    T1SubQuery.idColumn = T2.idColumn
where
    T2.idColumn is null

左外部結合と「T1.idColumnがnullの場所」を実行して、「どこにないか」をシミュレートしています。そして、データの重複を避けるためにそれを行っています。クエリは複数回実行でき、冪等にしたいと考えています。

質問

  1. T2 のどのパーティションがこのクエリで使用されますか? 使用するパーティションの数を最小限に抑えるにはどうすればよいですか?

  2. この種の冪等増分データロードを行う最も効率的な方法は何ですか?

4

1 に答える 1