Hadoop を使った宝石データの圧縮

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

はじめに

魔法の芸術のロワイヤルアカデミーへようこそ。ここは、神秘的な知識の研究と習得に専念する著名な機関です。この世界では、尊敬される宝石研究者チームが、現実の構造自体を理解する鍵を握る魔法的な宝石の秘密を解き明かすことが求められています。

熟練した宝石研究者としてのあなたの役割は、Hadoop エコシステム、特に Hive の力を利用して、膨大な宝石データを分析して圧縮することです。その目的は、ストレージと処理効率を最適化し、これらの魔法的なアーティファクトに潜む複雑なパターンと隠された謎を解き明かすことができるようにすることです。

宝石データリポジトリをセットアップする

このステップでは、宝石データを格納するための Hive テーブルを作成し、サンプルレコードで埋めます。

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

su - hadoop

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

hive

次に、gemstone_db という名前の新しい Hive データベースを作成します。

CREATE DATABASE gemstone_db;

新しいデータベースを使用します。

USE gemstone_db;

次に、idnamecolororigin、および enchantment の列を持つ gemstones という名前のテーブルを作成します。

CREATE TABLE gemstones (
  id INT,
  name STRING,
  color STRING,
  origin STRING,
  enchantment STRING
) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

最後に、/home/hadoop/gemstone_data.csv ファイルからのサンプルデータを gemstones テーブルに読み込みます。

LOAD DATA LOCAL INPATH '/home/hadoop/gemstone_data.csv' OVERWRITE INTO TABLE gemstones;

宝石データを圧縮する

ストレージと処理効率を最適化するために、Hive の組み込み圧縮機能を使って宝石データを圧縮します。

まず、元の gemstones テーブルと同じスキーマを持つ新しいテーブル gemstones_compressed を作成します。

CREATE TABLE gemstones_compressed (
  id INT,
  name STRING,
  color STRING,
  origin STRING,
  enchantment STRING
) STORED AS ORC
TBLPROPERTIES ('orc.compress'='SNAPPY');
  • 効率的な圧縮と保存を提供する最適化行コラム形式 (ORC) ファイル形式を使用するには、STORED AS ORC 句を指定します。
  • ORC ファイルに対して Snappy 圧縮を有効にするには、orc.compress テーブルプロパティを SNAPPY に設定します。

次に、元の gemstones テーブルからのデータを gemstones_compressed テーブルに挿入します。

INSERT INTO TABLE gemstones_compressed SELECT * FROM gemstones;

圧縮されたデータを照会する

これで宝石データが圧縮されたので、Hive を使って効率的に照会できます。

まず、データの整合性を確認するために、gemstones_compressed テーブルに対して簡単な COUNT(*) 照会を実行します。

SELECT COUNT(*) FROM gemstones_compressed;

次に、GROUP BY 照会を実行して、各色の宝石の数をカウントします。

SELECT color, COUNT(*) AS count FROM gemstones_compressed GROUP BY color;

まとめ

この実験では、Hive の圧縮機能を活用して、大規模なデータセットのストレージと処理効率を最適化する方法を学びました。圧縮された ORC テーブルを作成し、そこにデータを読み込むことで、クエリ性能を維持したまま、ストレージ領域を大幅に削減することができました。

このプロセスを通じて、Hive データベースとテーブルの作成、データの読み込み、圧縮されたデータの照会に関する実践的な経験を得ました。この実践的な知識は、魔法の宝石の神秘的な特性に関する研究を続ける際に非常に貴重であり、より効率的に隠されたパターンと洞察を明らかにすることができます。