Сжатие данных о алмазах с использованием Hadoop

HadoopHadoopBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

Добро пожаловать в Королевскую Академию Магических Искусств, престижный учебное заведение, посвященное изучению и овладению таинственным знанием. В этом царстве команда выдающихся исследователей алмазов имеет задачу раскрыть секреты зачарованных алмазов, чьи мистические свойства являются ключом к пониманию самой сути реальности.

Ваша роль опытного исследователя алмазов - использовать мощь экосистемы 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 - shell, выполнив следующую команду:

hive

Теперь создайте новую базу данных Hive под названием gemstone_db:

CREATE DATABASE gemstone_db;

Используйте новую базу данных:

USE gemstone_db;

Далее создайте таблицу под названием gemstones с колонками для id, name, color, origin и enchantment:

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_compressed с такой же схемой, как и у исходной таблицы gemstones:

CREATE TABLE gemstones_compressed (
  id INT,
  name STRING,
  color STRING,
  origin STRING,
  enchantment STRING
) STORED AS ORC
TBLPROPERTIES ('orc.compress'='SNAPPY');
  • Укажите предложение STORED AS ORC, чтобы использовать формат файлов Optimized Row Columnar (ORC), который обеспечивает эффективное сжатие и хранение.
  • Установите свойство таблицы orc.compress в значение SNAPPY, что позволяет использовать сжатие Snappy для файлов ORC.

Затем вставьте данные из исходной таблицы gemstones в таблицу gemstones_compressed:

INSERT INTO TABLE gemstones_compressed SELECT * FROM gemstones;

Запрос к сжатым данным

Теперь, когда данные о алмазах сжаты, вы можете эффективно запрашивать их с использованием Hive.

Во - первых, выполните простой запрос COUNT(*) к таблице gemstones_compressed, чтобы проверить целостность данных:

SELECT COUNT(*) FROM gemstones_compressed;

Затем выполните запрос с GROUP BY, чтобы подсчитать количество алмазов для каждого цвета:

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

Резюме

В этом практическом занятии вы узнали, как использовать возможности сжатия Hive для оптимизации эффективности хранения и обработки больших наборов данных. Создав сжатую таблицу в формате ORC и загрузив в нее данные, вы смогли значительно уменьшить размер занимаемого места на диске, сохраняя при этом производительность запросов.

Во время всего процесса вы приобрели практический опыт в создании баз данных и таблиц Hive, загрузке данных и запросах к сжатым данным. Эти практические знания будут бесценны при дальнейшем исследовании мистических свойств зачарованных алмазов, позволяя вам более эффективно выявлять скрытые паттерны и получать новые знания.