- ハイブの外部テーブルの紹介
- Hiveでの外部テーブルの作業と作成
- 1。 パーティション化された外部表
- 2. 外部テーブルに対する操作SELECT、JOIN、ORDER BY、GROUP BY、CLUSTER BYなどの操作は、外部テーブルに実装されています。 外部テーブルを他のテーブルと簡単に結合して、複雑なデータ操作を実行できます。 パーティション分割、バケット化、およびインデックス作成の概念は、管理テーブルまたは内部テーブルと同じ方法で外部テーブルにも実装されます。 Hiveのすべての構成プロパティは、外部テーブルにも適用できます。 たとえば、skipを設定します。ヘッダ。ライン。 Count=1、データファイルからヘッダー行をスキップできます。HIVEの内部および外部テーブルでは、ORC、AVRO、TEXTFILE、SEQUENCE FILE、PARQUETなどのすべてのファイル形式がサポートされています。 テーブルの作成時には、位置マッピングを使用して列にデータを挿入し、その順序は維持されます。
- 機能
- 結論
- 推奨記事
ハイブの外部テーブルの紹介
外部テーブルは、ハイブ
外部テーブルとは、ハイブ
外部テーブルとは、ハイブ
外部テーブルとは、ハイブ
外部テーブルとは、ハイブ
外部テーブルとは、ハイブ
外部テーブルとは、ハイブ
外部テーブルとは、ハイブ
外部テーブルとは、ハイブ部ファイルのスキーマまたはメタデータを記述します。 基本的に、HIVE管理テーブルまたは内部テーブルと外部テーブルの2種類のテーブルがあります。 外部テーブルを定義する主な目的は、ハイブの外部に格納されたデータにアクセスしてクエリを実行することです。 これらのデータファイルは、Pig、Azure storage Volumes(ASV)、または任意のリモートHDFSの場所などの他のツールに保存することができます。 Hiveは、外部テーブルのデータの所有権を持たないことを前提としているため、管理対象テーブルや内部テーブルのようにデータを管理する必要はありません。 また、外部テーブルの場合、テーブルの削除時にデータは削除されません。
Hiveでの外部テーブルの作業と作成
デフォルトでは、Hiveのテーブルディレクトリはデータベースディレクトリの下に作成されます。 例外はデフォルトのデータベースです。 場所user/hive/warehouseにはディレクトリがないため、デフォルトのデータベーステーブルにはこの場所の下に直接作成されたディレクトリがあります。 デフォルトの場所を使用したくない場合は、外部テーブルを作成することをお勧めします。
無料のデータサイエンスコースを開始
Hadoop、データサイエンス、統計&その他
外部テーブルは一般的にデータがハイブの外部にある場合に使用されます。
以下のコマンドでキーワード”EXTERNAL”を使用して外部テーブルを作成しましょう。外部テーブルは、以下のコマンドを使用して、既存のテーブルのスキーマとデータをコピーすることによっても作成できます。
CREATE EXTERNAL TABLE if not exists students
(
Roll_id Int,
Class Int,
Name String,
Rank Int)
Row format delimited fields terminated by ‘,’
Location ‘/data/students_details’;
出力:
CREATE EXTERNAL TABLE if not exists students_v2 LIKE students
Location ‘/data/students_details’;
CREATE EXTERNAL TABLE if not exists students_v2 LIKE students
Location ‘/data/students_details’;
XTERNALキーワードを省略すると、ベーステーブルがEXTERNALの場合、作成される新しいテーブルはexternalになります。 同様に、ベーステーブルがexternalキーワードで管理されている場合、作成される新しいテーブルはexternalになります。作成される表のタイプを識別するために、DESCRIBE FORMATTED句を使用できます。 詳細テーブルの説明の最後に、出力テーブルタイプは「管理テーブル」または「外部テーブル」のいずれかになります。
パーティションテーブルは、データを論理サブセグメントまたはパーティションに分割するのに役立ち、クエリのパフォーマ パーティションテーブルは、以下のように作成できます。/p>
CREATE EXTERNAL TABLE if not exists students
( roll_id Int,
name String,
Rank Int)
partitioned by (class Int)
Row format delimited fields terminated by ‘\t’
出力:
外部テーブルのパーティションまたは構造が変更された場合、このコマンドを使用することでメタデータ情報を更新できます。
MSCK REPAIR TABLE external_table_name
1。 パーティション化された外部表
パーティション化されていない外部表の作成時には、LOCATION句が必要です。 ただし、パーティション化された外部表の場合は必須ではありません。 LOCATION句とともにパーティションを追加するには、ALTER TABLE文が必要です。
ALTER TABLE students ADD PARTITION (class =10)
Location ‘here://master_server/data/log_messages/2012/01/02’;
ハイブv0.8から。0以降では、同じクエリに複数のパーティションを追加できます。 また、パーティションの場所は、古い場所からデータを移動または削除することなく、以下のクエリで変更することができます。
ALTER TABLE students_v2 partition( class = 10)
Set location ‘s2n://buckets/students_v2/10’;
パーティションを削除するには、以下のクエリが使用されます。
ALTER TABLE students DROP IF EXISTS PARTITION (class = 12);
このコマンドは、管理テーブルまたは内部テーブルのパーテ ただし、外部表の場合、データは削除されません。
2. 外部テーブルに対する操作SELECT、JOIN、ORDER BY、GROUP BY、CLUSTER BYなどの操作は、外部テーブルに実装されています。 外部テーブルを他のテーブルと簡単に結合して、複雑なデータ操作を実行できます。 パーティション分割、バケット化、およびインデックス作成の概念は、管理テーブルまたは内部テーブルと同じ方法で外部テーブルにも実装されます。 Hiveのすべての構成プロパティは、外部テーブルにも適用できます。 たとえば、skipを設定します。ヘッダ。ライン。 Count=1、データファイルからヘッダー行をスキップできます。HIVEの内部および外部テーブルでは、ORC、AVRO、TEXTFILE、SEQUENCE FILE、PARQUETなどのすべてのファイル形式がサポートされています。 テーブルの作成時には、位置マッピングを使用して列にデータを挿入し、その順序は維持されます。
外部テーブルのデータ型:外部テーブルでは、コレクションデータ型とプリミティブデータ型(integer、string、characterなど)もサポートされています。 コレクションデータ型(配列、構造体、マップなど)の要素の区切り文字を指定する必要があります。Hiveで外部テーブルを使用する場合はどうすればよいですか?通常、内部テーブルはHiveに作成されます。 ただし、特定のシナリオでは、外部テーブルが役立つ場合があります。 これらは次のとおりです。
- データがHiveまたはHDFSの場所の外に配置されている場合、外部テーブルを作成すると、テーブルを使用している可能性のある他のツールがこれらのファイルにロックをかけないので、外部テーブルを作成するのに役立ちます。
- 既存のテーブルにデータが存在しない場合(つまり、SELECT句を使用して)、外部テーブルを作成できます。
- Hiveがデータを所有したり、他のデータコントロールを持たせたくない場合は、外部テーブルを作成する必要があります。
- 外部テーブルを削除すると、基本データは削除されないため、外部テーブルは偶発的なデータの損失も防止します。 これは、ハイブのセキュリティ機能として機能します。 これが、TRUNCATEが外部テーブルでも機能しない理由です。
機能
Hiveには、管理対象テーブルまたは外部テーブルのいずれかでのみ使用できる特定の機能があります。 ARCHIVE/UNARCHIVE/TRUNCATE/CONCATENATE/MERGEのようなコマンドは、内部テーブルに対してのみ機能します。ACIDは、管理対象テーブルまたは内部テーブルに対してのみ機能します。
結論
このチュートリアルでは、Hiveで外部テーブルをいつ、どのように使用するかを見ました。 このチュートリアルのハイライトは、管理対象以外のテーブルに背景を作成し、ハイブの外部でデータを分析することです。
推奨記事
これは、Hiveの外部テーブルのガイドです。 ここでは、Hiveに外部テーブルを導入すること、および機能、およびクエリについて説明します。 また、他の関連記事を参照して詳細を学ぶこともできます–
- Hiveでのパーティショニング
- Hiveでのマップ結合
- Hiveデータ型
- Hiveインストール
- Hiveクラスターへのガイド