Архитектура СУБД Apache Hive: основы Big Data для начинающих

Автор
Архитектура СУБД Apache Hive: основы Big Data для начинающих

В этой статье мы поговорим про структуру системы управления базами данных (СУБД) Apache Hive. Также рассмотрим, какие базовые компоненты входят в структуру известной SQL-подобной СУБД, входящей в экосистему Hadoop. Читайте далее про основные компоненты структуры Apache Hive, которые делают эту СУБД весьма удобным и мощным средством хранения и обработки больших данных.

Основные компоненты СУБД Apache Hive

Прежде всего отметим, что Хайв — это не просто СУБД, а целая платформа экосистемы Hadoop для хранения и обработки больших данных в распределенной среде, которая позволяет проектировать структуры Big Data (таблицы, партиции, бакеты) с помощью SQL-подобного языка, называемого HiveQL (HQL, Hive Query Language). В структуру Хайв входят следующие базовые элементы:

  • база данных (database);
  • таблица (классическая и внешняя).
Hive, курсы по hive, обучение hadoop, курсы hadoop hive
Структура Apache Hive

Каждый из вышеперечисленных компонентов мы подробнее рассмотрим далее.

База данных

База данных (database) в Хайв — это пространство имен, содержащее различные отношения (таблицы). База данных имеет уникальное имя и размер. База данных в Hive представляет собой аналог базы данных в реляционных СУБД (например, Oracle, MySQL, MSSQL Server), где все таблицы (отношения) связаны между собой и ссылаются друг на друга. Для того, чтобы приступить к работе с данными и созданию таблиц, необходимо для начала создать базу данных, которая будет хранить все созданные таблицы с данными. Следующий код на языке SQL отвечает за создание базы данных:

CREATE DATABASE userdb

Для переключения на соответствующую базу данных используется ключевое слово USE:

USE userdb

После переключения на необходимую базу данных все запросы по созданию таблиц будут создавать и сохранять эти таблицы в эту базу данных [1].

Таблица

Таблица — это структура данных, которая хранит данные в базе данных в виде строк и столбцов в структурированном (упорядоченном) виде. Таблица в Хайв представляет собой аналог таблицы в реляционной базе данных, где доступ к данным происходит по индексу, который ускоряет работу по поиску данных. Основное отличие hive-таблиц от таблиц реляционных СУБД состоит в том, что после создания они хранятся в виде обычных файлов на файловой системе HDFS (Hadoop Distributed File System). В Hive таблицы делятся на 2 вида:

  • классические таблицы;
  • внешние таблицы.

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

CREATE TABLE IF NOT EXISTS employee ( eid int, name String,
salary String, destination String)
COMMENT 'Employee details'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
STORED AS TEXTFILE

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

LOAD DATA INPATH '/user/root/sample.txt'
OVERWRITE INTO TABLE employee;

Внешние таблицы — это таблицы, в которые данные загружаются из внешних источников (csv-файлов, txt-файлов и т.д.) во время создания таблицы. Для создания внешней таблицы используется ключевое слово EXTERNAL. Следующий код на диалекте HQL отвечает за создание внешней таблицы и заполнение ее данными [2]:

CREATE EXTERNAL TABLE IF NOT EXISTS employee_external ( eid int, name String,
salary String, destination String)
COMMENT 'Employee details'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
STORED AS TEXTFILE
LOCATION '/user/root/external_files/'

Таким образом, структура Apache Hive делает это средство весьма удобной и надежной платформой для хранения и обработки Big Data. Именно поэтому Hive является неотъемлемой частью экосистемы Hadoop, являющейся универсальным решением для организации обработки Big Data.

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

IMPA: 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://habr.com/ru/post/283212/
  2. https://www.tutorialspoint.com/hive/hive_create_table.htm
Комментировать

Ваш адрес email не будет опубликован. Обязательные поля помечены *