はじめに
このチュートリアルでは、Hadoop Distributed File System (HDFS) に保存されているデータにアクセスするための外部 Hive テーブルを作成する手順を案内します。外部テーブルの設定方法とその中のデータをクエリする方法を学び、Hive SQL インターフェイスを使用して Hadoop データをシームレスに操作する方法を学びます。
💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください
このチュートリアルでは、Hadoop Distributed File System (HDFS) に保存されているデータにアクセスするための外部 Hive テーブルを作成する手順を案内します。外部テーブルの設定方法とその中のデータをクエリする方法を学び、Hive SQL インターフェイスを使用して Hadoop データをシームレスに操作する方法を学びます。
Hive は Hadoop の上に構築されたデータウェアハウスインフラストラクチャで、Hadoop の分散ファイルシステム (HDFS) に保存されているデータをクエリし、管理するための SQL ライクなインターフェイスを提供します。ユーザーは HiveQL と呼ばれる SQL ライクな言語でクエリを記述することができ、これらのクエリは Hadoop クラスタ上で実行できる MapReduce ジョブに変換されます。
HDFS (Hadoop Distributed File System) は、Hadoop アプリケーションで使用される主要なデータストレージシステムです。Hadoop クラスタ内の複数のマシンにまたがって大規模なデータセットを信頼性高く効率的に保存するように設計されています。HDFS はアプリケーションデータへの高スループットなアクセスを提供し、大規模なデータセットを持つアプリケーションに適しています。
Hive は HDFS と密接に統合されており、ユーザーが HDFS に保存されているデータを保存し、クエリすることができます。Hive は HDFS を主要なデータストレージシステムとして使用し、HDFS に保存されているデータにマッピングされるテーブルを作成する方法を提供します。
Hive と HDFS は、以下のシナリオで一般的に使用されます。
Hive では、外部テーブルとは、HDFS などの外部の場所に保存されているデータを指すテーブルです。Hive メタストア内にデータを保存する内部テーブルとは異なり、外部テーブルは単に別の場所に保存されているデータにアクセスする方法を提供します。
外部 Hive テーブルを作成するには、以下の SQL 文を使用できます。
CREATE EXTERNAL TABLE IF NOT EXISTS table_name (
col1 data_type,
col2 data_type,
...
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '/path/to/hdfs/directory';
この文の各部分を分解してみましょう。
CREATE EXTERNAL TABLE IF NOT EXISTS table_name
: 指定された名前で新しい外部テーブルを作成します。テーブルがすでに存在する場合は作成をスキップします。(col1 data_type, col2 data_type, ...)
: テーブルの列とそのデータ型を定義します。ROW FORMAT DELIMITED
: 外部の場所にあるデータが特定の文字で区切られていることを指定します。FIELDS TERMINATED BY ','
: フィールドの区切り文字をコンマに設定します。STORED AS TEXTFILE
: データがテキストファイル形式で保存されていることを Hive に伝えます。LOCATION '/path/to/hdfs/directory'
: データが保存されている HDFS ディレクトリを指定します。HDFS の /user/hive/data/sales.csv
パスに CSV ファイルが保存されていると仮定して、以下のように外部 Hive テーブルを作成できます。
CREATE EXTERNAL TABLE IF NOT EXISTS sales (
product STRING,
quantity INT,
price DOUBLE
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '/user/hive/data/sales.csv';
これにより、product
、quantity
、price
の 3 つの列を持つ sales
という名前の外部 Hive テーブルが作成されます。データはコンマで区切られた CSV 形式であることが想定されています。
外部 Hive テーブルを作成したら、関連する HDFS ディレクトリに保存されているデータを、他の Hive テーブルと同じようにクエリすることができます。テーブルに対してクエリを実行すると、データは自動的に HDFS から読み込まれます。
前のセクションで示したように、sales
という名前の外部 Hive テーブルを作成したと仮定します。以下に実行できるクエリの例を示します。
-- Select all rows from the sales table
SELECT * FROM sales;
-- Select specific columns from the sales table
SELECT product, quantity, price FROM sales;
-- Filter the data based on a condition
SELECT * FROM sales WHERE quantity > 10;
-- Perform aggregations on the data
SELECT product, SUM(quantity) AS total_quantity, AVG(price) AS avg_price
FROM sales
GROUP BY product;
これらのクエリは、sales
テーブルに関連付けられた HDFS ディレクトリからデータを取得し、結果をユーザーに返します。
Hive で外部テーブルを使用することにはいくつかの利点があります。
外部 Hive テーブルの作成とクエリの方法を理解することで、Hive と HDFS の機能を効果的に活用して、ビッグデータを管理および分析することができます。
この Hadoop を中心としたチュートリアルでは、HDFS に保存されているデータにアクセスするための外部 Hive テーブルの作成方法を学びました。外部テーブルを設定することで、基礎となる HDFS ファイルシステムと直接やり取りする必要なく、慣れ親しんだ Hive SQL 構文を使用してデータをクエリおよび操作することができます。このアプローチにより、Hadoop データの操作プロセスが簡素化され、Hive エコシステムの強力な機能を活用することが可能になります。