統合データクエスト Hadoop 統合

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

はじめに

データゴニアの神秘的な世界では、勇敢なデータナイトであるライオンハートが壮大な探求に出ました。王国の繁栄はデータの力を活用することにかかっており、ライオンハートの使命は、各地に散らばる多様なデータセットを統一することでした。信頼できるハドープツールを手に、彼はこれから直面するチャレンジに立ち向かうために出発しました。

王国の広大な畑には、作物の収量、土壌条件、気象パターンに関する貴重な情報がありました。鉱山では、鉱床と採掘率に関するデータが統合されるのを待っていました。賑やかな都市には、貿易、商業、人口動態の記録があふれていました。ライオンハートの目標は、これらの異なるデータソースを統一的で包括的なデータセットに結合して、王国の意思決定者を強力にし、進歩を促進することでした。

サンプルデータを作成する

このステップでは、Hive におけるUNION演算子の力を調べるために、いくつかのサンプルデータファイルを作成します。

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

su - hadoop

次に、/home/hadoop/dataディレクトリに移動し、cropsという新しいディレクトリを作成します。

mkdir -p /home/hadoop/data/crops

次に、cropsディレクトリにwheat.csvcorn.csvという 2 つのファイルを作成し、以下の内容を入れます。

wheat.csv

North,2020,50
South,2020,45
East,2020,48
West,2020,42

corn.csv

North,2020,50
South,2020,58
East,2020,62
West,2020,55

これらのファイルを作成するには、好きなテキストエディタを使用できます。

Hive テーブルにデータを読み込む

このステップでは、Hive テーブルを作成し、サンプルデータを読み込みます。

まず、ターミナルで以下のコマンドを実行して Hive CLI を起動します。

hive

Hive CLI に入ったら、agricultureというデータベースを作成します。

CREATE DATABASE agriculture;

次に、agricultureデータベースに切り替えます。

USE agriculture;

適切なスキーマでwheatというテーブルを作成します。

CREATE TABLE wheat (
  region STRING,
  year INT,
  yield INT
) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

wheat.csvのデータをwheatテーブルに読み込みます。

LOAD DATA LOCAL INPATH '/home/hadoop/data/crops/wheat.csv' OVERWRITE INTO TABLE wheat;

cornテーブルに対しても同じ手順を繰り返します。

CREATE TABLE corn (
  region STRING,
  year INT,
  yield INT
) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

LOAD DATA LOCAL INPATH '/home/hadoop/data/crops/corn.csv' OVERWRITE INTO TABLE corn;

SELECT文を使ってテーブル内のデータを確認できます。

SELECT * FROM wheat;
SELECT * FROM corn;

UNION 演算を実行する

データを Hive テーブルに読み込んだので、2 つ以上のクエリの結果を結合するためにUNION演算子を使用できます。

Hive CLI で、以下のクエリを実行します。

CREATE TABLE result_1
AS
SELECT region, year, yield FROM wheat
UNION
SELECT region, year, yield FROM corn;

SELECT * FROM result_1;

このクエリは、wheatテーブルとcornテーブルの結果を結合し、すべての地域、年、収量を含む統一的なデータセットを作成します。

また、結果セットに重複する行を含むUNION ALLも実行できます。

SELECT region, year, yield FROM wheat
UNION ALL
SELECT region, year, yield FROM corn;

UNIONまたはUNION ALL演算で使用するすべてのクエリで、列名とデータ型が一致していることに注意してください。

高度な UNION 演算(オプション)

より複雑なクエリを組み合わせたり、フィルタリングや集約などの他の Hive 構文と組み合わせて、UNION演算子をさらに探求することができます。

たとえば、GROUP BYクエリの結果と別のクエリを組み合わせることができます。

CREATE TABLE result_2
AS
SELECT region, SUM(yield) AS total_yield FROM wheat GROUP BY region
UNION
SELECT region, yield FROM corn;

SELECT * FROM result_2;

または、結果を結合する前に結果をフィルタリングすることもできます。

SELECT region, year, yield FROM wheat WHERE year = 2020
UNION
SELECT region, year, yield FROM corn WHERE year = 2020 AND yield > 60;

さまざまな組み合わせを試してみて、UNION演算子が複数のソースからのデータを統合するのにどのように役立つかを確認してください。

まとめ

この実験では、Hadoop エコシステムにおけるデータウェアハウシングと分析の強力なツールである Apache Hive におけるUNION演算子の使用方法を探求しました。サンプルデータセットを作成し、Hive テーブルに読み込むことで、UNIONUNION ALLを使用して複数のクエリの結果を結合する方法を学びました。この強力な機能により、さまざまなソースからのデータを統合し、包括的な分析と情報に基づいた意思決定を可能にします。

データナイトであるライオンハートの旅を通じて、私たちはデータ統合の変革的な力を目の当たりにしました。王国の農地、鉱山、都市からの異なるデータセットを統一することで、ライオンハートは包括的な視点を持つ意思決定者に力を与え、データゴニアの領域における進歩と繁栄の道を切り開きました。

この実験は、Hive とUNION演算子に関する実践的な経験を提供するだけでなく、洞察を解き放ち、イノベーションを促進するためのデータ統合の重要性を思い起こさせるものでもありました。これらの技術を習得することで、私たち自身もデータナイトになることができ、複雑なデータチャレンジに打ち勝ち、より明るい未来を築くためのツールを手に入れることができます。