Перейти к основному содержимому
Версия: 2.0.x

Каталоги, базы данных и таблицы

Selena использует внутренние каталоги для управления внутренними данными и внешние каталоги для доступа к внешним данным в озере данных. Данные, хранящиеся в Selena, поддерживаются внутри внутреннего каталога, который состоит из одной или нескольких баз данных. База данных управляет различными объектами, включая таблицы, материализованные представления и представления для хранения, управления и манипулирования данными. Selena использует систему привилегий, которая контролирует права пользователей на выполнение операций над объектами, тем самым повышая безопасность данных.

img

Каталоги

Каталоги подразделяются на внутренние и внешние каталоги. Каждый cluster имеет только один внутренний каталог default_catalog, который может включать одну или несколько баз данных. Внутренний каталог cluster'а Selena управляет данными, загруженными в cluster, и материализованными представлениями. Selena может хорошо служить в качестве хранилища данных для хранения данных, что значительно повышает производительность запросов, особенно для сложной аналитики запросов на крупномасштабных данных.

Внешний каталог, с другой стороны, позволяет получить доступ к внешним данным в вашем озере данных. Вы можете использовать Selena в качестве движка запросов для прямого запроса данных в озере без загрузки данных в Selena.

Базы данных

База данных — это коллекция объектов данных, таких как таблицы, представления и материализованные представления, для хранения, управления и манипулирования данными.

Таблицы

Таблицы подразделяются на внутренние таблицы и внешние таблицы.

Внутренние таблицы

Внутренние таблицы поддерживаются во внутренних каталогах. Данные внутренних таблиц хранятся в Selena. Внутренние таблицы поддерживаются в базах данных под внутренним каталогом. Внутренняя таблица состоит из строк и столбцов, где каждая строка представляет запись, а каждый столбец представляет атрибут или поле строки данных.

примечание

Строки и столбцы внутренних таблиц здесь являются логическими концепциями. Selena использует колоночное хранилище для таблиц. Физически данные в столбце разделяются на блоки данных, кодируются, сжимаются, а затем постоянно хранятся на диске.

Selena предоставляет четыре типа внутренних таблиц: Primary Key таблицы, Duplicate Key таблицы, Aggregate таблицы и Unique Key таблицы для хранения различных данных, таких как необработанные логи, данные реального времени и агрегированные данные, чтобы удовлетворить ваши различные бизнес-потребности.

Внутренняя таблица применяет двухуровневую стратегию распределения данных, то есть partitioning + bucketing, для достижения равномерного распределения данных. Более того, replica каждого bucket равномерно распределены по BE для гарантии высокой доступности данных.

Внешние таблицы

Внешние таблицы поддерживаются во внешних каталогах. Данные внешних таблиц фактически хранятся во внешних источниках данных. Selena хранит только метаданные этих внешних таблиц, и вы можете использовать эти таблицы для запроса данных из внешних источников данных.

Материализованные представления

Материализованные представления — это специальные физические таблицы, которые содержат предварительно вычисленные результаты запросов из одной или нескольких базовых таблиц. Материализованные представления подразделяются на синхронные и асинхронные материализованные представления. Асинхронные материализованные представления более мощные, поскольку они могут хранить предварительно вычисленные результаты из нескольких базовых таблиц (внутренних и внешних таблиц) и поддерживают различные операторы агрегации. Когда сложные запросы выполняются на базовых таблицах, Selena может автоматически повторно использовать предварительно вычисленные результаты, хранящиеся в материализованных представлениях, для достижения прозрачного ускорения запросов, ускорения запросов в озерах данных и создания моделирования данных.

Представления

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

Привилегии

Привилегии определяют, какие пользователи могут выполнять какие операции над какими объектами. Selena применяет два типа моделей привилегий: контроль доступа на основе идентификации и контроль доступа на основе ролей. Вы можете сначала назначить привилегии ролям, а затем назначить роли пользователям. В этом случае привилегии передаются пользователям через роли. Или вы можете напрямую назначить привилегии идентификаторам пользователей.

Хранение данных в архитектуре разделения хранилища и вычислений

Начиная с v1.5.2, Selena вводит новую архитектуру разделения хранилища и вычислений (shared-data). Хранение данных отделено от BE. Данные постоянно хранятся в удаленном объектном хранилище или HDFS, в то время как локальные диски используются для кэширования горячих данных для ускорения запросов.