Что такое представления и почему они так важны для Impala

Impala, курсы hadoop, обучение impala hadoop

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

Как работает механизм представлений в Apache Impala: особенности работы с виртуальными таблицами

Представление (view) — это виртуальная таблица (фактически не существует в базе данных), которая хранится в виде файла SQL-запроса в файловой системе (а также в базе данных). В отличие от обычных таблиц, представление в Impala не является самостоятельной частью набора данных, так как создается на основе данных, которые находятся в реальных таблицах. Следовательно, изменение данных в исходной (реальной) таблице базы данных немедленно отражается в содержимом всех представлений, которые были созданы на основе этой таблицы [1].

Impala, курсы hadoop, обучение impala hadoop
Процесс создания представления

Представления в Impala имеют следующие особенности:

  1. Сокрытие структуры таблиц базы данных — когда пользователю нужна таблица с определенным набором данных, ему достаточно сделать простой запрос выборки (select) из подготовленного представления.
  2. Обеспечение защиты данных — пользователю могут предоставляться права только на представление, благодаря чему он не будет иметь доступа к данным, находящимся в тех же таблицах, но не предназначенных для использования.
  3. Увеличение скорости выполнения SQL-запросов — запрос на выборку данных для представления фиксируется и компилируется в момент его создания. Следовательно, при обращении к таблицам через представление, база данных не создает новый запрос, а использует уже имеющийся, что значительно ускоряет работу по получению данных [1].

Особенности работы с представлениями в Impala: несколько практических примеров

За создание представления отвечает SQL-команда CREATE VIEW. В отличие от создания обычной таблицы, при создании представления не требуется указывать типы данных полей. Следующий код на диалекте SQL Impala отвечает за создание представления customers_view [2]:

CREATE VIEW IF NOT EXISTS customers_view AS
SELECT name, age FROM customers
mpala, курсы hadoop, обучение impala hadoop
Созданное представление

Из кода видно, что представление customers_view создается на основе выборки данных (имени и возраста) из таблицы customers (за это отвечает оператор AS SELECT FROM). Стоит также отметить, что представление с именем «customers_view» будет создано только в том случае, если в базе данных не встречается представление с таким же именем (за это отвечает оператор IF NOT EXISTS). Это делается для того, чтобы избежать получения некорректных результатов при обращении к нескольким представлениям с одинаковыми именами, но разной структурой. В Impala существует возможность изменять содержимое представлений путем добавления новых данных или удаления старых. За изменение представления отвечает команда ALTER VIEW. Изменение представления также происходит на основе выборки данных из соответствующей таблицы. Данные, которые не указываются в выборке, автоматически удаляются из представления.  Например, можно изменить ранее созданное представление, добавив столбцы id и salary [2]:

ALTER VIEW customers_view AS SELECT id, name, salary FROM customers

Для того, чтобы посмотреть содержимое измененного представления, можно использовать простую выборку с помощью оператора SELECT [2]:

SELECT * FROM customers_view
impala, курсы hadoop, обучение impala hadoop
Измененное представление

За удаление существующего представления отвечает команда DROP VIEW. При удалении желательно указывать базу данных, из которой будет удалено представление. Если не указать конкретную базу данных, Impala может удалить представления с указанным в запросе именем из всех существующих на сервере баз данных. Следующий код на диалекте SQL Impala отвечает за удаление представления из базы данных my_db [2]:

DROP VIEW my_db.customers_view

Таким образом, благодаря поддержке механизма представлений, Impala обеспечивает высокий уровень безопасности хранения данных и скорости выполнения SQL-запросов, что делает ее весьма полезным средством для работы с Big Data.

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

HBASE: Администрирование кластера HBase
HIVE: Hadoop SQL администратор Hive

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

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

Источники

  1. https://data-flair.training/blog/impala-create-view-statement/
  2. https://coderlessons.com/tutorials/bolshie-dannye-i-analitika/izuchite-apache-impala/impala-kratkoe-rukovodstvo

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

Поиск по сайту