Перейти к основному содержимому

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

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

img

Каталоги

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

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

Базы данных

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

Таблицы

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

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

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

примечание

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

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

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

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

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

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

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

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

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

Привилегии

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

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

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