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

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

img

Каталоги

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

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

Базы данных

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

Таблицы

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

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

Внутренние таблицы находятся во внутренних каталогах, а их данные физически хранятся в StarRocks. Внутренние таблицы располагаются в базах данных внутреннего каталога. Внутренняя таблица состоит из строк и столбцов: каждая строка — это запись, а столбец — атрибут или поле строки данных.

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

StarRocks предоставляет четыре типа внутренних таблиц — Primary Key, Duplicate Key, Aggregate и Unique Key — для хранения разнообразных данных (сырые логи, потоковые данные в реальном времени, агрегированные данные), чтобы удовлетворить различные бизнес‑потребности.

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

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

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

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

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

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

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

Привилегии

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

Разделение хранения данных и вычислений

Начиная с версии v3.0, StarRocks вводит архитектуру раздельного хранения и вычисления (shared‑data). Хранение данных отделено от BE‑узлов. Данные постоянно хранятся во внешнем объектном хранилище или HDFS, а локальные диски используются как кеш «горячих» данных для ускорения запросов.