1. ホーム
  2. hadoop

[解決済み] Hiveの内部テーブルと外部テーブルの違い?

2022-09-13 02:16:01

質問

Hiveの外部テーブルと内部テーブルの違いについて教えてください。 テーブルをドロップするときに違いが出るのはわかるのですが。内部テーブルではデータとメタデータが削除され、外部テーブルではメタデータのみが削除されるという意味がよくわかりません。 どなたかノードの観点から説明していただけませんか?

どのように解決するのですか?

Hiveはマスターノードにリレーショナルデータベースを持ち、状態を把握するために使用しています。 例えば CREATE TABLE FOO(foo string) LOCATION 'hdfs://tmp/'; と入力すると、このテーブルスキーマはデータベースに保存されます。

パーティショニングされたテーブルがある場合、パーティションはデータベースに格納されます(これにより、hiveはファイルシステムに移動してパーティションを見つけることなく、パーティションのリストを使用することができます)。このような種類のものが「メタデータ」です。

内部テーブルを削除すると、データも削除されますが、メタデータも削除されます。

外部テーブルを削除すると、メタデータだけが削除されます。つまり、hiveはそのデータについて今は知らないということです。データ自体には触れないのです。