Hadoop Hive データ探検

HadoopBeginner
オンラインで実践に進む

はじめに

2165 年、地球は何十年にもわたる壊滅的な戦争によって荒廃しました。生き残った人類は遠い惑星に避難し、新しいコロニーを建設して文明を再建しました。キシロニア惑星にあるそんなコロニーの 1 つには、ブラクスターズと呼ばれる技術的に高度な種が住んでいました。

ブラクスターズは、Hadoop のような高度なシステムを利用して膨大な量の情報を保存および処理するデータ管理の技術を習得していました。キシロニアンコロニーの新たに任命されたデータエンジニアとして、あなたの使命は、コロニーの生存と成長に必要な重要なデータの効率的な保存と検索を確保するために、Hadoop Hive データベース管理システムの複雑さを学ぶことです。

あなたの目的は、膨大なデータリポジトリの管理を支援し、科学研究、資源管理、戦略的計画にとって重要な情報を整理、照会、分析するために Hadoop Hive の力を活用することです。

データベースの作成

このステップでは、Hadoop Hive で新しいデータベースを作成する方法を学びます。このデータベースは、コロニーのデータを保存および整理するための中央リポジトリとして機能します。

まず、ターミナルで以下のコマンドを実行して、hadoop ユーザーとしてログインしていることを確認します。

su - hadoop

hadoop ユーザー環境に入ったら、/home/hadoop ディレクトリに移動します。

cd /home/hadoop

次に、以下のコマンドを実行して Hive シェルを起動します。

hive

Hive シェル内で、以下の SQL ステートメントを使用して xylonia_colony という名前の新しいデータベースを作成します。

CREATE DATABASE xylonia_colony;

データベースの正常な作成を確認するには、以下のコマンドを使用してすべての利用可能なデータベースを一覧表示できます。

SHOW DATABASES;

これにより、新しく作成された xylonia_colony データベースと他の既存のデータベースが表示されるはずです。

テーブルの作成

このステップでは、コロニーの資源に関するデータを保存するために、xylonia_colony データベース内にテーブルを作成する方法を学びます。

まず、Hive シェルにいることを確認します。もしいない場合は、以下のコマンドを実行して起動します。

hive

以下のコマンドを使用して xylonia_colony データベースに切り替えます。

USE xylonia_colony;

以下の列を持つ resources という名前の新しいテーブルを作成します。resource_id (INT)、resource_name (STRING)、quantity (DOUBLE)、および unit (STRING)。以下の SQL ステートメントを使用します。

CREATE TABLE resources (
    resource_id INT,
    resource_name STRING,
    quantity DOUBLE,
    unit STRING
);

テーブルの正常な作成を確認するには、以下のコマンドを使用して xylonia_colony データベース内のすべてのテーブルを一覧表示します。

SHOW TABLES;

これにより、resources テーブルが表示されるはずです。

データの挿入

このステップでは、前のステップで作成した resources テーブルにデータを挿入する方法を学びます。

まず、Hive シェルにいることを確認します。もしいない場合は、以下のコマンドを実行して起動します。

hive

以下のコマンドを使用して xylonia_colony データベースに切り替えます。

USE xylonia_colony;

以下の SQL ステートメントを使用して、resources テーブルにサンプルデータを挿入します。

INSERT INTO resources VALUES (1, 'Oxygen', 500.0, 'Tons');
INSERT INTO resources VALUES (2, 'Water', 1000.0, 'Gallons');
INSERT INTO resources VALUES (3, 'Food', 200.0, 'Tons');

データの正常な挿入を確認するには、以下のコマンドを使用して resources テーブルを照会します。

SELECT * FROM resources;

これにより、挿入した 3 行のデータが表示されるはずです。

データの照会

このステップでは、様々な SQL ステートメントを使って resources テーブルからデータを照会する方法を学びます。

まず、Hive シェルにいることを確認します。もしいない場合は、以下のコマンドを実行して起動します。

hive

以下のコマンドを使って xylonia_colony データベースに切り替えます。

USE xylonia_colony;

quantity が 500 を超えるすべての資源を取得するために resources テーブルを照会します。

SELECT * FROM resources WHERE quantity > 500;

これにより、quantity 列の値が 500 を超える行が表示されるはずです。

また、データに対して SUMAVG のような集約関数を実行することもできます。たとえば、すべての資源の合計量を計算します。

SELECT SUM(quantity) AS total_quantity FROM resources;

これにより、resources テーブルのすべての quantity 値の合計が表示されます。

分割テーブルの作成

このステップでは、Hive で分割テーブルを作成する方法を学びます。これにより、走査する必要のあるデータ量を削減することで照会性能を向上させることができます。

まず、Hive シェルにいることを確認します。もしいない場合は、以下のコマンドを実行して起動します。

hive

以下のコマンドを使用して xylonia_colony データベースに切り替えます。

USE xylonia_colony;

sensor_id (INT)、sensor_name (STRING)、reading (DOUBLE) を持ち、dt (STRING) によって分割される sensor_data という名前の新しい分割テーブルを作成します。

CREATE TABLE sensor_data (
    sensor_id INT,
    sensor_name STRING,
    reading DOUBLE
)
PARTITIONED BY (dt STRING);

分割テーブルにデータを挿入するには、列値とともに分割キー値を指定する必要があります。たとえば:

INSERT INTO sensor_data PARTITION (dt='2023-05-01')
VALUES (1, 'Temperature Sensor', 25.5), (2, 'Humidity Sensor', 60.0);

これにより、dt 2023-05-01 によって分割された sensor_data テーブルに 2 行のデータが挿入されます。

分割テーブルを他のテーブルと同じように照会することができますが、分割キーに基づいてデータをフィルタリングすることもできます。

SELECT * FROM sensor_data WHERE dt='2023-05-01';

これにより、2023-05-01 に対応する分割のみが走査され、照会性能が向上する可能性があります。

まとめ

この実験では、Hadoop エコシステム内の強力なデータウェアハウジングツールである Hadoop Hive において、データベースとテーブルを管理する方法を学びました。新しいデータベースとテーブルを作成し、データを挿入し、SQL ステートメントを使用してデータを照会しました。また、走査する必要のあるデータ量を削減することで照会性能を向上させる分割テーブルについても検討しました。

この実践的な経験を通じて、Blaxters の高度なデータ管理システムの重要なコンポーネントである Hadoop Hive を使用してデータリポジトリを管理する実用的なスキルを身につけました。これらの技術を習得することで、ザイロニアンコロニーの科学研究、資源管理、戦略的計画立案に向けた取り組みを支援するための大きな一歩を踏み出しました。