Hive テーブルの作成: 内部テーブル、変更、ドロップ (例付き)
表 Operaなどのオプション 作成、変更、削除 Hive のテーブルについては、このチュートリアルで確認できます。
以下のスクリーンショットでは、列を含むテーブルを作成し、テーブル名を変更しています。
1. 「empid」と「empname」などの XNUMX つの列名を持つテーブル guru_sample を作成します。
2. guru99データベースに存在するテーブルの表示
3. テーブルの下に表示される Guru_sample
4. テーブル「guru_sample」を「guru_sampleNew」に変更します
5. 再度、「show」コマンドを実行すると、新しい名前 Guru_sampleNew が表示されます。
Dropping table guru_sampleNew:
テーブルの種類とその使用法
に来ます テーブル類 これは、従来のリレーショナル データベースを作成する方法とまったく同じです。 フィルタリングや結合などの機能をテーブルに対して実行できます。
ハイブ 次の XNUMX 種類のテーブル構造を扱います。 内部と外部 テーブルは、Hive でのスキーマの読み込みと設計に応じて異なります。
内部テーブル
- 内部テーブルは本質的に密結合です。 このタイプのテーブルでは、まずテーブルを作成してデータをロードする必要があります。
- これを次のように呼ぶことができます スキーマ上のデータ.
- このテーブルを削除すると、データとスキーマの両方が削除されます。
- このテーブルの保存場所は /user/hive/warehouse になります。
内部テーブルを選択するのはどのような場合ですか?
- 処理データがローカル ファイル システムで利用可能な場合
- Hive に削除を含むデータのライフサイクル全体を管理させたい場合
内部テーブルのサンプル コード スニペット
1. 内部テーブルを作成するには
Hive>CREATE TABLE guruhive_internaltable (id INT,Name STRING); Row format delimited Fields terminated by '\t';
2. データを内部テーブルにロードします
Hive>LOAD DATA INPATH '/user/guru99hive/data.txt' INTO table guruhive_internaltable;
3. テーブルの内容を表示する
Hive>select * from guruhive_internaltable;
4. 内部テーブルを削除するには
Hive>DROP TABLE guruhive_internaltable;
guruhive_internaltable をドロップした場合、そのメタデータとそのデータは Hive から削除されます。
次のスクリーンショットから、出力を確認することができます。
上記のコードとスクリーンショットから、次のことを行います。
- 内部テーブルを作成する
- データを内部テーブルにロードします
- テーブルの内容を表示する
- 内部テーブルを削除するには
外部テーブル
- 外部テーブルは本質的に疎結合です。 データは HDFS で利用可能になります。テーブルは HDFS データ上に作成されます。
- 別の言い方をすれば、それが創造しているようにも言えます。 データのスキーマ.
- テーブルの削除時にはスキーマのみが削除され、データは以前と同様に HDFS で引き続き使用できます。
- 外部テーブルでは、スキーマが更新されるたびにデータを削除するのではなく、HDFS に保存されたデータに対して複数のスキーマを作成するオプションが提供されます。
外部テーブルを選択するのはどのような場合ですか?
- HDFS で利用可能なデータを処理する場合
- ファイルが Hive の外部で使用されている場合に便利です
外部テーブルのサンプル コード スニペット
1. 外部テーブルの作成
Hive>CREATE EXTERNAL TABLE guruhive_external(id INT,Name STRING) Row format delimited Fields terminated by '\t' LOCATION '/user/guru99hive/guruhive_external;
2. テーブルの作成時に場所を指定しない場合は、データを手動でロードできます。
Hive>LOAD DATA INPATH '/user/guru99hive/data.txt' INTO TABLE guruhive_external;
3. テーブルの内容を表示する
Hive>select * from guruhive_external;
4. 内部テーブルを削除するには
Hive>DROP TABLE guruhive_external;
次のスクリーンショットから、出力を確認することができます。
上記のコードでは、次のことを行います。
- 外部テーブルを作成する
- データを外部テーブルにロードします
- テーブルの内容を表示する
- 外部テーブルを削除しています
内部テーブルと外部テーブルの違い
機能 | 内部 | 外部 |
---|---|---|
スキーマ | スキーマ上のデータ | データのスキーマ |
ストレージの場所 | /usr/ハイブ/ウェアハウス | HDFS の場所 |
データ可用性 | ローカルファイルシステム内 | HDFS内 |