Обзор динамического раздела в Hive
В этой статье мы обсудим обзор Hive и сосредоточимся на динамическом разбиении и, наконец, завершим операции с динамическим разделением в Hive. Давайте обсудим это один за другим.
Обзор :
Hive — это система хранения, разработанная Facebook. По сути, это система хранилища данных, которая выполняет операции со структурированными данными. Он в основном используется для выполнения таких операций, как аналитика и задания MapReduce. Он также предоставляет функции чтения, записи и управления большими наборами данных. Hive в основном популярен, потому что он может служить альтернативой традиционному подходу к операциям с базами данных. Hive использует индексирование, которое помогает внутренним запросам быть эффективными. Он также может работать со сжатыми данными, которые хранятся в экосистеме Hadoop.
Виды разбиения:
Существует два типа разбиения следующим образом.
- Статическое разбиение
- Динамическое разделение
Динамическое разделение:
Динамическое разбиение на разделы — это стратегический подход к загрузке данных из неразделенной таблицы, когда единственная вставка в таблицу разделов называется динамическим разделом. При динамическом секционировании значения секционированной таблицы существуют по умолчанию, поэтому нет необходимости передавать значения для этих столбцов вручную.
Особенности динамического разделения:
Ниже приведены некоторые особенности динамического разбиения.
- Для обработки больших объемов данных, хранящихся в распределенном хранилище, лучшим выбором является динамическое секционирование.
- Динамическое секционирование может быть выполнено для внешней таблицы куста и управляемой таблицы.
- В динамическом разделении нет требования к предложению where.
- Если вы хотите выполнить разбиение таблиц, не зная количества столбцов, в этом случае вы можете использовать динамическое разбиение.
Операции динамического разбиения:
Теперь давайте выполним некоторые операции динамического разбиения на разделы. Вы можете предпочесть Ubuntu, которая будет быстрой, потому что операции следующие.
Шаг 1 :
В первую очередь нам необходимо создать базу данных, в которой необходимо выполнить операцию создания таблицы.
hive>Create database dynamic_Demo; hive>use dynamic_demo //here we have selected the above created database.
Шаг 2 :
После выбора базы данных из доступного списка. Теперь мы включим динамический раздел, используя следующие команды.
hive> set hive.exec.dynamic.partition=true; hive> set hive.exec.dynamic.partition.mode=nonstrict;
Шаг 3 :
Создайте любую таблицу с подходящим именем для хранения данных.
hive>CREATE TABLE food_prices ( series_reference string, Period string, data_value int, status string, units string, subject string, product string, series_title string, year string )ROW FORMAT DELIMITED fields terminated by "," TBLPROPERTIES ("skip.header.line.count"="1");
Шаг-4:
Теперь на следующем шаге давайте загрузим данные, которые мы создали с помощью следующей команды.
hive>load data local inpath "/home/bigdata/Downloads/food_prices.csv" into table food_prices;
Шаг-5:
Чтобы создать секционированную таблицу, мы должны выполнить следующую команду.
create table partitioned_food_prices ( series_reference string, Period string, data_value int, status string, units string, subject string, product string, series_title string )partitioned by (year string);
Шаг-6:
Теперь мы загрузим данные в секционированную таблицу, используя следующую команду.
hive> insert overwrite table partitioned_food_prices partition(year) select * from default.food_prices;
Шаг-7:
давайте выполним некоторые операции запроса.
hive>select * partitioned_food_prices limit 5
Шаг 8:
Последним шагом является удаление столбца динамического раздела.
hive>alter table partioned_food_prices drop partition (year = "2019")