Обзор динамического раздела в Hive

Опубликовано: 28 Августа, 2022

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

Обзор :
Hive — это система хранения, разработанная Facebook. По сути, это система хранилища данных, которая выполняет операции со структурированными данными. Он в основном используется для выполнения таких операций, как аналитика и задания MapReduce. Он также предоставляет функции чтения, записи и управления большими наборами данных. Hive в основном популярен, потому что он может служить альтернативой традиционному подходу к операциям с базами данных. Hive использует индексирование, которое помогает внутренним запросам быть эффективными. Он также может работать со сжатыми данными, которые хранятся в экосистеме Hadoop.

Виды разбиения:
Существует два типа разбиения следующим образом.

  1. Статическое разбиение
  2. Динамическое разделение

Динамическое разделение:
Динамическое разбиение на разделы — это стратегический подход к загрузке данных из неразделенной таблицы, когда единственная вставка в таблицу разделов называется динамическим разделом. При динамическом секционировании значения секционированной таблицы существуют по умолчанию, поэтому нет необходимости передавать значения для этих столбцов вручную.

Особенности динамического разделения:
Ниже приведены некоторые особенности динамического разбиения.

  • Для обработки больших объемов данных, хранящихся в распределенном хранилище, лучшим выбором является динамическое секционирование.
  • Динамическое секционирование может быть выполнено для внешней таблицы куста и управляемой таблицы.
  • В динамическом разделении нет требования к предложению 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")