Введение
В далекой галактике тираническая Галактическая Империя завоевала бесчисленные планеты, эксплуатируя их ресурсы и угнетая их население. Лидер восстания, принцесса Лея, координирует восстание против Империи, но ее силы значительно outnumbered и outgunned. Чтобы изменить ход войны, Лея должна проанализировать огромные объемы разведывательных данных, чтобы определить слабые места Империи и спланировать стратегические удары.
Цель этого лабораторного занятия - помочь принцессе Леи и Союзу Восстания использовать силу Hadoop Hive для управления и манипулирования большими наборами данных, в частности, изучая, как изменить существующие таблицы Hive. Освоив этот навык, Лея может эффективно перестроить свои базы данных разведки, позволяя ей выявить важные инсайты и получить стратегическое преимущество против Империи.
Создайте примерную таблицу
В этом шаге мы создадим примерную таблицу Hive для работы. Эта таблица будет хранить информацию о различных планетах в галактике, включая их имена, население и ресурсы.
Во - первых, переключитесь на пользователя hadoop, выполнив следующую команду в терминале:
su - hadoop
Теперь запустите Hive CLI, выполнив следующую команду:
hive
Внутри Hive CLI создайте новую базу данных под названием rebel_intel:
CREATE DATABASE rebel_intel;
Используйте базу данных rebel_intel:
USE rebel_intel;
Создайте новую таблицу под названием planets со следующей схемой:
CREATE TABLE planets (
planet_id INT,
planet_name STRING,
population BIGINT,
resources ARRAY<STRING>
)
CLUSTERED BY (planet_id) INTO 2 BUCKETS
STORED AS ORC
TBLPROPERTIES ('transactional'='true');
Эта таблица имеет четыре столбца: planet_id (целое число для идентификатора планеты), planet_name (строка для названия планеты), population (целое число для населения планеты) и resources (массив строк, представляющий ресурсы планеты).
Выйдите из Hive CLI, набрав exit;.
Добавьте данные в таблицу
В этом шаге мы заполним таблицу planets некоторыми примерами данных. Эти данные представляют разведку, собранную Союзом Восстания о различных планетах в галактике.
Запустите Hive CLI снова:
hive
Используйте базу данных rebel_intel:
USE rebel_intel;
Вставьте некоторые примеры данных в таблицу planets:
INSERT INTO planets VALUES
(1, 'Alderaan', 2000000000, array('Agriculture', 'Energy')),
(2, 'Tatooine', 200000, array('Mining')),
(3, 'Hoth', 0, array('None')),
(4, 'Endor', 30000, array('Forestry', 'Hunting')),
(5, 'Bespin', 6000000, array('Gas Mining', 'Tourism'));
Это вставляет пять строк данных в таблицу planets, представляющие разные планеты с их соответствующими идентификаторами планет, именами, населением и ресурсами.
Выйдите из Hive CLI, набрав exit;.
Измените структуру таблицы
Теперь, когда у нас есть таблица с некоторыми данными, предположим, принцессе Леи нужно добавить еще один столбец для хранения информации о климате каждой планеты. В этом шаге мы узнаем, как изменить структуру существующей таблицы Hive.
Запустите Hive CLI:
hive
Используйте базу данных rebel_intel:
USE rebel_intel;
Измените таблицу planets, чтобы добавить новый столбец под названием climate:
ALTER TABLE planets ADD COLUMNS (climate STRING);
Эта команда добавляет новый столбец с именем climate типа STRING в таблицу planets.
Проверьте обновленную структуру таблицы:
DESCRIBE planets;
В схеме таблицы вы должны увидеть новый столбец climate.
Выйдите из Hive CLI, набрав exit;.
Обновите данные таблицы
После добавления нового столбца climate в таблицу planets мы можем теперь обновить существующие данные, чтобы включить информацию о климате для каждой планеты.
Запустите Hive CLI:
hive
Используйте базу данных rebel_intel:
USE rebel_intel;
Обновите столбец climate для каждой планеты:
UPDATE planets SET climate = 'Temperate' WHERE planet_name = 'Alderaan';
UPDATE planets SET climate = 'Arid' WHERE planet_name = 'Tatooine';
UPDATE planets SET climate = 'Frozen' WHERE planet_name = 'Hoth';
UPDATE planets SET climate = 'Tropical' WHERE planet_name = 'Endor';
UPDATE planets SET climate = 'Artificial' WHERE planet_name = 'Bespin';
Эти инструкции UPDATE устанавливают значение climate для каждой планеты в зависимости от их имен.
Проверьте обновленные данные:
SELECT * FROM planets;
Вы должны увидеть обновленные значения climate для каждой планеты.
Выйдите из Hive CLI, набрав exit;.
Резюме
В этом практическом занятии мы изучили концепцию изменения таблиц в Hadoop Hive, что является важным навыком для управления и переструктуризации больших наборов данных. Создав примерную таблицу planets, добавив данные и затем изменив структуру таблицы, чтобы включить новый столбец climate, мы узнали, как адаптировать наши модели данных, чтобы соответствовать изменяющимся требованиям.
Дизайн этого практического занятия вдохновлён знаменитым миром Star Wars, где лидер восстания, принцесса Лея, должна проанализировать разведывательные данные, чтобы выявить слабые места в обороне Галактического Империи. Освоив способность Hive изменять таблицы, Лея может эффективно перестроить свои базы разведывательных данных, открыть ценные инсайты и получить стратегическое преимущество в борьбе против'oppрессивного Империи.
Благодаря этому практическому опыту я глубже понял, как создавать, модифицировать и обновлять таблицы Hive, что являются важными навыками при работе с большими наборами данных в Hadoop-окружениях. Использование контрольных заданий также позволило мне проверить свой прогресс на каждом этапе, укрепить мой учёт и убедиться, что я успешно выполнил цели практического занятия.



