Базовые DML-операции в Apache Hive: основы NoSQL Big Data для начинающих

Базовые DML-операции в Apache Hive: основы NoSQL Big Data для начинающих

В прошлый раз мы говорили про индексы в Hive. Сегодня поговорим про DML-операции в этой распределённой Big Data платформе. Также рассмотрим применение этих операций к данным, хранящимся в этой СУБД. Читайте далее про DML-операции в Hive и их особенности.

 

DML-операции в СУБД Apache Hive

 DML-операции (Data Manipulation Language) — это язык манипулирования данных, команды которого могут использоваться для хранения, извлечения, изменения, удаления и обновления данных. В Hive используются такие команды манипулирования данными, как [1]:

  • LOAD — команда, которая отвечает за загрузку данных из файловой системы в существующую Hive-таблицу;
  • INSERT — команда отвечающая за ручное заполнение (вставку данных) в таблицы Hive;
  • UPDATE — обновление (редактирование) имеющихся данных в таблицах (или партициях);
  • SELECT — команда для получения (вывода на экран) данных из одной или нескольких таблиц в Hive;
  • EXPORT — SQL-команда для выгрузки имеющихся данных в таблице в файловую систему (посредством записи в файл);
  • DELETE/DROP — командs, отвечающие за удаление конкретных данных (по условию) из таблицы или всей таблицы целиком.

Применение каждой из этих команд мы подробнее рассмотри далее.

 

Работа с DML-операциями в Hive: несколько практических примеров

Для того, чтобы начать работу с данными, необходимо создать таблицу для их хранения:

CREATE TABLE IF NOT EXISTS book (
id_book int,
name        char(25),
price         int,
author      char(25),
date_issue date,
amout       int,
raiting      int)

Для того, чтобы загрузить данные из файла в таблицу, используется SQL-команда LOAD (при этом количество столбцов таблицы должно соответствовать количеству столбцов в файле) [1]:

LOAD DATA LOCAL INPATH ‘/home/hive/bookdata’ INTO TABLE book

Если файл находится в локальном хранилище (в локальной файловой системе), то при загрузке данных необходимо указывать оператор LOCAL и путь к файлу, отвечающий за локальную загрузку данных. В случае, если загрузка данных производится из других хранилищ (файловых систем), оператор LOCAL не указывается, а для того, чтобы загрузить данные из другого источника, необходимо указать URL этого источника. Для того, чтобы полностью заменить содержимое таблицы содержимым файла, необходимо указать оператор OVERWRITE [1]:

LOAD DATA LOCAL INPATH ‘/home/hive/bookdata’ OVERWRITE INTO TABLE book

Для того, чтобы заполнить таблицу данными, используется SQL-операция INSERT [1]:

INSERT INTO TABLE book (id_book, name, price, author, date_issue, amout, raiting) VALUES (1, ‘Война и мир’, 1000, ‘Толстой Л.Н.’, ‘1867-01-01’, 100, 5)

Для команды INSERT также доступен режим замены данных новыми с помощью команды OVERWRITE [1]:

INSERT OVERWRITE INTO TABLE book (id_book, name, price, author, date_issue, amout, raiting) VALUES (1, ‘Война и мир’, 1000, ‘Толстой Л.Н.’, ‘1867-01-01’, 100, 5)

Команда SELECT используется для получения (вывода) данных на экран. Данная команда также является одной из CRUD-операций. Следующий код на диалекте HiveQL отвечает за чтение всех данных, имеющихся в таблице book [1]:

SELECT * FROM book

SQL-операция UPDATE служит для изменения (или редактирования) записей в таблице. Следующий код на диалекте HiveQL отвечает за изменение цены на книги с рейтингом 4 [1]:

UPDATE book SET price = 900 WHERE raiting = 4

Для того, чтобы выгрузить данные из таблицы и сохранить их в файл (в файловой системе HDFS), используется команда EXPORT:

EXPORT TABLE book TO ‘book_from_hive’

Для того, чтобы удалить существующую таблицу в Hive используется команда DROP, которая также является одной из CRUD-операций:

DROP TABLE book

Для удаления определённой записи из таблицы по условию используется команда DELETE:

DELETE FROM book WHERE price=1000

Таким образом, благодаря поддержке DML-операций, Hive обеспечивает разработчика весьма удобным и интуитивно понятным интерфейсом для работы с объектами Big Data в распределенной среде. Это делает Apache Hive весьма удобным средством для работы с Big Data.

Больше подробностей про применение Apache Hive в проектах анализа больших данных вы узнаете на практических курсах по NoSQL в нашем лицензированном учебном центре обучения и повышения квалификации ИТ-специалистов в Москве:

MPA: CLOUDERA IMPALA DATA ANALYTICS
ADQM: ЭКСПЛУАТАЦИЯ ARENADATA QUICKMARTS
ADBR: Arenadata DB для разработчиков
ADB: Эксплуатация Arenadata DB
HBASE: Администрирование кластера HBase
HIVE: Hadoop SQL администратор Hive
NoSQL: Интеграция Hadoop и NoSQL

Записаться на курс

Смотреть раcписание

 

Источники

  1. https://data-flair.training/blog/hive-dml-commands/#UPDATE-command

 

 

Добавить комментарий