ClickHouse

Data source: External ClickHouseEnterprise Edition+

Введение

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

ClickHouse лучше подходит для аналитических запросов, анализа журналов, статистики показателей и отображения отчётов. В отличие от транзакционных баз данных, он не подходит в качестве источника данных для частого добавления, редактирования и удаления бизнес-записей в NocoBase.

ПараметрОписание
Поддерживаемая версияClickHouse >= 20.2.
Коммерческая версияПоддерживается корпоративной версией.
Соответствующий плагин@nocobase/plugin-data-source-external-clickhouse.
Способ подключенияПодключение через порт совместимости ClickHouse с MySQL.
Рекомендации по использованиюВ основном для просмотра, фильтрации, статистики и отображения отчётов.

Сценарии, в которых подходит внешний ClickHouse:

  • Подключение аналитических данных: журналов, событий, показателей, данных для управления рисками и т. д.
  • Создание в NocoBase операционных панелей, статистических отчётов или страниц запросов
  • Предоставление бизнес-пользователям доступа к запросам только для чтения, чтобы сократить необходимость прямого доступа через клиент базы данных
  • Управление правами доступа и визуализация существующих данных ClickHouse
Внимание

В NocoBase ClickHouse рекомендуется использовать как источник аналитических данных только для чтения. Не используйте его как источник для записи обычных бизнес-таблиц и не рекомендуется настраивать на страницах операции добавления, редактирования и удаления.

Установка плагина

Этот плагин является коммерческим. Подробные сведения об активации см. в руководстве: Руководство по активации коммерческих плагинов

Добавление источника данных

В разделе «Управление источниками данных» нажмите «Add new», выберите ClickHouse и заполните сведения для подключения. 20260709211117

Основные параметры подключения:

ПараметрОписание
Data source nameИдентификатор источника данных, используемый для ссылок на него в блоках страниц, правах доступа, рабочих процессах и API. После создания изменить нельзя.
Data source display nameНазвание источника данных, отображаемое в интерфейсе. Рекомендуется использовать понятное бизнес-пользователям название, например «Хранилище журналов ClickHouse» или «Хранилище показателей».
Host / PortАдрес хоста ClickHouse и порт совместимости с MySQL. Не указывайте HTTP-порт или собственный TCP-порт.
DatabaseНазвание базы данных ClickHouse, к которой требуется подключиться.
Username / PasswordУчётные данные для подключения к ClickHouse. NocoBase может считывать только объекты, к которым у этой учётной записи есть доступ; права на частные объекты других учётных записей не предоставляются и такие объекты не считываются.
Table prefixПрефикс имени таблицы. После настройки NocoBase считывает только таблицы данных с этим префиксом и создаёт в NocoBase имена таблиц без префикса.
Use SSLИспользовать ли SSL. Обычно требуется включить при подключении к ClickHouse Cloud или в защищённой среде подключения.
Enabled the data sourceВключить ли этот источник данных. После отключения настройки источника сохраняются, но блоки страниц, права доступа, рабочие процессы и API больше не смогут считывать его данные.
Совет

Плагин ClickHouse подключается через протокол совместимости с MySQL. Перед настройкой убедитесь, что в службе ClickHouse включён порт совместимости с MySQL, а сеть, брандмауэр и права учётной записи разрешают NocoBase доступ.

Область подключения

На странице ClickHouse нет таблицы с флажками «Collections». Область подключения в основном определяется Database, правами учётной записи подключения и Table prefix.

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

Внимание

Один внешний источник данных может одновременно подключить не более 500 таблиц данных или представлений. Если в ClickHouse много объектов, рекомендуется заранее сузить область с помощью базы данных, прав учётной записи или Table prefix.

Синхронизация и настройка полей

Структура таблиц внешнего ClickHouse поддерживается на стороне базы данных. NocoBase не создаёт во внешнем ClickHouse поля, не изменяет типы полей и не удаляет реальные поля.

Если структура таблиц на стороне ClickHouse изменилась, в источнике данных можно выполнить «Sync from database», чтобы повторно считать метаданные таблиц и полей. Синхронизация обновит сохранённые в NocoBase таблицы данных, поля, первичные ключи, уникальные ключи и сведения о сопоставлении типов полей, но не удалит реальные таблицы или данные в ClickHouse.

После синхронизации полей в NocoBase можно настроить заголовок поля, тип поля (Field type) и интерфейс поля (Field interface). Если требуется создать поле связи NocoBase, его метаданные также сохраняются в NocoBase; реальные внешние ключи в таблицу ClickHouse автоматически не добавляются.

Сопоставление типов полей

NocoBase преобразует типы полей ClickHouse в совместимый с MySQL формат, а затем сопоставляет их с подходящими значениями Field type и Field interface. Способ отображения в интерфейсе можно изменить в настройках поля.

Основные варианты сопоставления:

Тип поля ClickHouseNocoBase Field typeДоступный Field interface
Int8Int16Int32UInt8UInt16UInt32integerunixTimestampsortInteger、Sort、Unix timestamp、Select、Radio group.
Int64UInt64bigIntunixTimestampsortInteger、Sort、Unix timestamp、Created at、Updated at.
Float32Float64floatNumber、Percent.
DecimaldecimaldoubleNumber、Percent、Currency.
StringFixedStringtextstringInput、Textarea、Markdown、URL.
DateDate32dateOnlyDate.
DateTimeDateTime64datetimeNoTzdatetimeTzdateDate、Time、Created at、Updated at.
UUIDstringuuidInput、UUID.
BoolBooleanintegerbooleansortCheckbox、Switch、Integer.
ArrayjsonarrayJSON.
Nullable(...)Сопоставляется по внутреннему типу поляЗависит от внутреннего типа поля.
LowCardinality(...)Сопоставляется по внутреннему типу поляЗависит от внутреннего типа поля.
Внимание

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

Первичный ключ и уникальный идентификатор записи

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

Если подключается таблица или представление без уникального поля, в настройках таблицы данных необходимо вручную задать «Record unique key». При отсутствии доступного уникального идентификатора блок страницы может неправильно отображать сведения о записи; также не рекомендуется настраивать операции редактирования или удаления.

20260709211300 20260709211239

Ссылки по теме