ホームページ > Java > &#&チュートリアル > Hive で増分データ更新を効率的に実行するにはどうすればよいですか?

Hive で増分データ更新を効率的に実行するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-29 19:44:11
オリジナル
439 人が閲覧しました

How to Efficiently Perform Incremental Data Updates in Hive?

Hive での効率的な増分データ更新

Hive は、メイン テーブル内でデータを増分更新するためのさまざまなアプローチを提供します。最も効果的な方法を見てみましょう。

完全外部結合

ACID モードでのマージ操作が利用できない場合は、完全外部結合を利用して、対象となるエントリを見つけることができます。更新:

insert overwrite target_data [partition() if applicable]
SELECT
  case when i.PK is not null then i.PK   else t.PK   end as PK,
  case when i.PK is not null then i.COL1 else t.COL1 end as COL1,
  ...
  case when i.PK is not null then i.COL_n else t.COL_n end as COL_n
FROM
    target_data t --restrict partitions if applicable
    FULL JOIN increment_data i on (t.PK=i.PK);
ログイン後にコピー

行を含むすべての結合Number

または、UNION ALL と row_number() を使用して完全結合を回避できます。

INSERT INTO target_data (pk, col1, col2, ...)
SELECT pk, col1, col2, ...
FROM increment_data
WHERE pk NOT IN (SELECT pk FROM target_data)
UNION ALL
SELECT pk, col1, col2, ...
FROM target_data;
ログイン後にコピー

このソリューションは、すべての列を新しいデータ。

パーティション最適化

パフォーマンスを向上させるために、WHERE Partition_col IN (increment_data から個別の Partition_col を選択) 句を使用して、上書きされる target_data テーブル内のパーティションを制限できます。さらに、パーティション リストを WHERE 句のパラメータとして渡すと、操作をさらに高速化できます。

以上がHive で増分データ更新を効率的に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート