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

HadoopHadoopBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL hadoop(("Hadoop")) -.-> hadoop/HadoopHiveGroup(["Hadoop Hive"]) hadoop/HadoopHiveGroup -.-> hadoop/manage_db("Managing Database") hadoop/HadoopHiveGroup -.-> hadoop/create_tables("Creating Tables") hadoop/HadoopHiveGroup -.-> hadoop/load_insert_data("Loading and Inserting Data") hadoop/HadoopHiveGroup -.-> hadoop/basic_hiveql("Basic HiveQL Queries") hadoop/HadoopHiveGroup -.-> hadoop/group_by("group by Usage") hadoop/HadoopHiveGroup -.-> hadoop/storage_formats("Choosing Storage Formats") hadoop/HadoopHiveGroup -.-> hadoop/compress_data_query("Compress Data in Query") subgraph Lab Skills hadoop/manage_db -.-> lab-288961{{"Hadoop を使った宝石データの圧縮"}} hadoop/create_tables -.-> lab-288961{{"Hadoop を使った宝石データの圧縮"}} hadoop/load_insert_data -.-> lab-288961{{"Hadoop を使った宝石データの圧縮"}} hadoop/basic_hiveql -.-> lab-288961{{"Hadoop を使った宝石データの圧縮"}} hadoop/group_by -.-> lab-288961{{"Hadoop を使った宝石データの圧縮"}} hadoop/storage_formats -.-> lab-288961{{"Hadoop を使った宝石データの圧縮"}} hadoop/compress_data_query -.-> lab-288961{{"Hadoop を使った宝石データの圧縮"}} end

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

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