# Интеграция с DBeaver

> ПРИМЕЧАНИЕ: Интеграция с DBeaver требует наличия [Manticore Buddy](../Installation/Manticore_Buddy.md). Если она не работает, убедитесь, что Buddy установлен.

[DBeaver](https://dbeaver.io/) — это программное приложение SQL-клиента и инструмент администрирования баз данных. Для баз данных MySQL он использует программный интерфейс JDBC для взаимодействия с ними через JDBC-драйвер.

Manticore позволяет использовать DBeaver для работы с данными, хранящимися в таблицах Manticore, так же, как если бы они хранились в базе данных MySQL. В настоящее время протестирована и рекомендуется версия 25.2.0. Другие версии могут работать, но могут вызывать проблемы.

## Настройки для использования

Чтобы начать работу с Manticore в DBeaver, выполните следующие шаги:

- Выберите опцию `New database connection` в интерфейсе DBeaver
- Выберите `SQL` -> `MySQL` в качестве драйвера базы данных DBeaver
- Установите параметры `Server host` и `Port` в соответствии с хостом и портом вашего экземпляра Manticore (оставьте поле `database` пустым)
- Установите `root/<пустой пароль>` в качестве учетных данных для аутентификации


## Доступные функции

Поскольку Manticore не полностью поддерживает MySQL, при работе с Manticore доступна только часть функциональности DBeaver.

Вы сможете:
- Просматривать, создавать, удалять и переименовывать таблицы
- Добавлять и удалять столбцы таблиц
- Вставлять, удалять и обновлять данные столбцов

Вы не сможете:
- Использовать механизмы проверки целостности базы данных (`MyISAM` будет установлен как единственный доступный механизм хранения)
- Использовать процедуры, триггеры, события MySQL и т.д.
- Управлять пользователями базы данных
- Устанавливать другие параметры администрирования базы данных


## Обработка типов данных

Некоторые типы данных MySQL в настоящее время не поддерживаются Manticore и, следовательно, не могут быть использованы при создании новой таблицы с помощью DBeaver. Кроме того, несколько поддерживаемых типов данных преобразуются в наиболее похожие типы Manticore, при этом точность типа игнорируется при таком преобразовании. Ниже приведен список поддерживаемых типов данных MySQL, а также типы Manticore, в которые они преобразуются:

- `BIGINT UNSIGNED` => `bigint`
- `BOOL` => `boolean`
- `DATE`, `DATETIME`, `TIMESTAMP`  => `timestamp`
- `FLOAT` => `float`
- `INT` => `int`
- `INT UNSIGNED`, `SMALLINT UNSIGNED`, `TINYINT UNSIGNED`, `BIT` => `uint`
- `JSON` => `json`
- `TEXT`, `LONGTEXT`, `MEDIUMTEXT`, `TINYTEXT`, `BLOB`, `LONGBLOB`, `MEDIUMBLOB`, `TINYBLOB`  => `text`
- `VARCHAR`, `LONG VARCHAR`, `BINARY`, `CHAR`, `VARBINARY`, `LONG VARBINARY`  => `string`

Более подробную информацию о типах данных Manticore вы можете найти [здесь](../Creating_a_table/Data_types.md#Data-types).

### О типах дат

Manticore способен обрабатывать типы данных `DATE`, `DATETIME` и `TIMESTAMP`, однако для этого требуется, чтобы [Buddy](../Starting_the_server/Docker.md#Manticore-Columnar-Library-and-Manticore-Buddy) Manticore был включен. В противном случае попытка работы с одним из этих типов приведет к ошибке.

Обратите внимание, что тип `TIME` не поддерживается.

## Возможные подводные камни

- Опция `Preferences` -> `Connections` -> `Client identification` в DBeaver не должна быть отключена или переопределена.
  Для корректной работы с DBeaver Manticore необходимо отличать его запросы от других. Для этого он использует информацию об уведомлении клиента, отправляемую DBeaver в заголовках запросов. Отключение уведомления клиента нарушит это обнаружение и, следовательно, корректную функциональность Manticore.

- При попытке обновить данные в вашей таблице в первый раз вы увидите всплывающее сообщение `No unique key` и вам будет предложено определить пользовательский уникальный ключ.
  Когда вы получите это сообщение, выполните следующие шаги:

  - Выберите опцию `Custom Unique Key`
  - Выберите только столбец `id` в списке столбцов
  - Нажмите `Ok`

  После этого вы сможете безопасно обновлять свои данные.

