OceanBase

Введение

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

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

ПараметрОписание
Поддерживаемые версииOceanBase >= 4.3.
Коммерческая версияПоддерживается корпоративная версия.
Соответствующий плагин@nocobase/plugin-data-source-oceanbase.
Режим базы данныхПоддерживается только режим совместимости с MySQL.

Внешний OceanBase подходит для следующих сценариев:

  • подключение бизнес-базы данных в существующем арендаторе OceanBase в режиме совместимости с MySQL
  • создание интерфейса управления в NocoBase без переноса исторических данных
  • настройка прав доступа, обработка процессов, исправление данных или отображение отчетов для существующих таблиц
  • поддержка структуры базы данных со стороны DBA, скриптов миграции или исходной системы
Внимание

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

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

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

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

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

20240507204820

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

ПараметрОписание
Data source nameИдентификатор источника данных, используемый в блоках страниц, правах доступа, рабочих процессах и API. После создания изменить его нельзя.
Data source display nameИмя источника данных, отображаемое в интерфейсе. Рекомендуется использовать понятное бизнес-пользователям имя, например «Бизнес-база OceanBase» или «База отчетов».
Host / PortАдрес и порт подключения OceanBase в режиме совместимости с MySQL. Фактический порт зависит от настроек арендатора или прокси.
DatabaseИмя базы данных OceanBase, к которой необходимо подключиться.
Username / PasswordИмя пользователя и пароль для подключения к OceanBase. NocoBase может считывать только объекты, к которым у этой учетной записи есть доступ; права на частные объекты других учетных записей не предоставляются и такие объекты не считываются.
Table prefixПрефикс имени таблицы. После настройки NocoBase считывает только таблицы и представления, соответствующие этому префиксу, и создает в NocoBase имена таблиц без префикса.
Collections / Add all collectionsУправляет областью подключения. При включении «Add all collections» NocoBase подключает все таблицы и представления в текущей области; после отключения подключаются только объекты, выбранные в «Collections».
Enabled the data sourceОпределяет, включен ли этот источник данных. После отключения конфигурация источника сохраняется, но блоки страниц, права доступа, рабочие процессы и API больше не смогут считывать его данные.
Совет

Если объектов в OceanBase много, сначала сузьте область с помощью Database, Table prefix и «Collections». Подключайте только таблицы и представления, используемые текущим приложением: это упростит последующую настройку прав доступа, создание страниц и синхронизацию.

Выбор таблиц данных

После заполнения сведений о подключении нажмите «Load Collections», чтобы загрузить доступные в OceanBase таблицы данных и представления. Результаты загрузки зависят от учетной записи подключения, Database, Table prefix и настроек «Collections».

По умолчанию включен параметр «Add all collections», то есть подключаются все таблицы и представления в текущей области. Если необходимо подключить только часть объектов, отключите «Add all collections», а затем выберите нужные таблицы или представления в списке.

add_new_database_configure_load_collection

Внимание

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

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

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

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

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

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

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

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

Тип поля OceanBaseNocoBase Field typeДоступный Field interface
TINYINTSMALLINTMEDIUMINTintegerbooleansortInteger、Sort、Checkbox、Switch、Select、Radio group。
INTINTEGERintegerunixTimestampsortInteger、Sort、Unix timestamp、Select、Radio group。
BIGINTbigIntsnowflakeIdunixTimestampsortInteger、Sort、Unix timestamp、Created at、Updated at。
FLOATDOUBLEfloatNumber、Percent。
DECIMALdecimalNumber、Percent、Currency。
CHARVARCHARstringuuidnanoidencryptionInput、Email、Phone、Password、Color、Icon、Select、Radio group、UUID、Nano ID。
TEXTtextTextarea、Markdown、Vditor、Rich text、URL。
DATEdateOnlyDate。
TIMEtimeTime。
DATETIMEdatetimeNoTzdatetimeTzdateDate、Time、Created at、Updated at。
TIMESTAMPdatetimeTzdateDate、Time、Created at、Updated at。
JSONjsonarrayJSON。
Внимание

Неподдерживаемые типы полей OceanBase отображаются отдельно в настройках полей. Для использования таких полей в NocoBase как обычных требуется разработать адаптацию.

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

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

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

edit_collection

edit_collection_configure

Связанные ссылки