Основы драйвера базы данных¶
Драйвер Glarus BI:
Предоставляет Glarus BI основную информацию о базе данных, такую как возможности базы данных, свойства подключения и т.д.
Предоставляет Glarus BI информацию о схеме базы данных — таблицах (или эквивалентных элементах), полях в этих таблицах, связях внешних ключей (для баз данных, поддерживающих внешние ключи).
Эта функциональность используется процессом sync Glarus BI и хранится в базе данных приложения.
сохранённая информация используется в визуальном конструкторе запросов и других местах, чтобы показать пользователям, какие таблицы/столбцы/и т. д. доступны.
Компилирует язык запросов MBQL в прямые запросы.
Запросы MBQL генерируются визуальным конструктором запросов.
Glarus BI процессор запросов преобразует запросы MBQL в прямые запросы.
Выполняет прямые запросы и возвращает результаты.
Напишите свой драйвер как модуль и упакуйте его как плагин¶
Драйверы Glarus BI организованы в модули и упакованы в виде подключаемых плагинов. Модули — это исходный код; плагины — это файлы JAR, созданные из этого исходного кода.
Плагин Glarus BI — это файл JAR, который содержит скомпилированные файлы классов и манифест плагина, в котором перечислены сведения о драйвере. В большинстве случаев плагины поддерживают ленивую загрузку, что означает, что Glarus BI не будет инициализировать драйверы, пока не подключится к базе данных, которая будет использовать драйвер.
Чтобы Glarus BI могла использовать ваш драйвер, всё что вам нужно сделать — поместить созданный вами JAR-файл драйвера в каталог /plugin
, который вы найдёте в том же каталоге, где вы запускаете свой glarusBI.jar. Он может выглядеть, например, следующим образом:
/Users/cam/metabase/glarusBI.jar
/Users/cam/metabase/plugins/my-plugin.jar
Вы можете изменить каталог плагина, установив переменную окружения MB_PLUGINS_DIR
.
Пример каталога модуля¶
Давайте взглянем на драйвер SQLite:
|-- deps.edn
|-- resources
| `-- metabase-plugin.yaml
|-- src
| `-- metabase
| `-- driver
| `-- sqlite.clj
`-- test
`-- metabase
|-- driver
| `-- sqlite_test.clj
`-- test
`-- data
`-- sqlite.clj
Здесь нужно вызвать три файла:
deps.edn
¶
Файл deps.edn
определяет зависимости драйвера.
resources/metabase-plugin.yaml
¶
Манифест вашего драйвера содержит подробную информацию о вашем драйвере.
src/metabase/driver/sqlite.clj
¶
Это основной файл для вашего драйвера. Подробнее об этом мы поговорим в реализации мультиметодов.
Дополнительная информация¶
Узнать больше о манифестах плагинов.