Добавление и управление базами данных¶
Подключите Glarus BI к источникам данных.
В части работы с данными Glarus BI использует стандартные механизмы предоставления и разграничения доступа, предусмотренные СУБД, добавляя при необходимости дополнительные ограничения. Для подключения Glarus BI, выполнения запросов или записи данных вы должны предоставить Glarus BI как минимум одну учётную запись пользователя СУБД («сервисного пользователя») с набором разрешений.
Для подключения множества пользователей Glarus BI к СУБД может быть использована как одна учётная запись СУБД, так и несколько. Решение о числе учётных записей СУБД и их настройках остаётся за администратором.
Для предоставления Glarus BI (и, соответственно, группе пользователей Glarus BI) доступа к БД используются «подключения», которые администратор может создать в разделе Управление > Базы данных. В настройках подключения среди множества параметров указывается сервисная учётная запись СУБД, определяющая базовые ограничения доступа группы пользователей к данным. Glarus BI может добавлять дополнительные ограничения к базовым, например, запрещать отдельные схемы, таблицы или разграничивать доступ пользователей к строкам таблиц, но не может расширять набор разрешений СУБД, так как базовый набор ограничений обеспечивается на уровне СУБД (за исключением случаев, когда пользователь СУБД имеет такие полномочия и реализует их в редакторе прямых запросов).
Примечание
Термин «база данных» в Glarus BI используется не для обозначения единицы в СУБД или самого процесса соединения, а как логический объект, который представляет ваш внешний источник данных внутри системы.
Вы можете создать несколько подключений к одной СУБД. В них могут быть указаны как одинаковые, так и различные пользователи СУБД. Далее вы можете разграничить группам пользователей Glarus BI доступ к данным на основе этих подключений в Управление > Разрешения. Например:
-
Два подключения, две различные учётные записи СУБД, несколько групп Glarus BI и множество пользователей. Группа пользователей Glarus BI «А» получит доступ ко всем таблицам через подключение для группы А и учётную запись СУБД «glarus_bi_all». Группа «Б» увидит только определённую схему или набор таблиц БД с доступом только на чтение через подключение для группы Б и учётную запись СУБД «glarus_bi_restricted».
-
Два подключения, одна учётная запись СУБД, несколько групп Glarus BI и множество пользователей. В дополнительных параметрах одного подключения может быть указан атрибут доступа «только чтение», в другом такой атрибут не задан. В разрешениях на данные доступ группам пользователей строго разграничен. В результате пользователи Glarus BI из одной группы не смогут записывать в БД, из другой — смогут.
При настройке доступа к конфиденциальным данным рекомендуем в первую очередь полагаться на разграничение доступа к данным на уровне СУБД. На уровне разрешений Glarus BI — ограничить доступ к редактору прямых запросов.
Предупреждение
Категорически запрещено использование системных учётных записей СУБД по умолчанию, таких как postgres, default, SYS as SYSDBA (или аналогичных по набору полномочий учётных записей СУБД) в настройках подключения в сочетании с разрешением редактора прямых запросов. В этом случае пользователь с доступом к редактору прямых запросов в Glarus BI получает полный контроль над СУБД: видит метаданные СУБД, может управлять настройками доступа, модифицировать и удалять любые данные.
В настройках подключения среди прочего указывается имя БД, к которой происходит подключение. Вы не ограничите доступ к БД, указав её имя, если на уровне СУБД пользователю доступны другие БД. Как и в других клиентах для взаимодействия с серверами БД (таких как psql, clickhouse–client, менеджерах БД), у пользователя остаётся доступ к другим доступным БД, схемам и таблицам, которые он может явно указать в прямом запросе или даже найти в интерфейсе (если данные сканированы системой). Такой доступ предоставляется самой СУБД. Например, обращение к таблице table1 БД glarusbi возможно запросом SELECT * FROM table1. Но при этом допусти́м запрос под этим же подключением: SELECT * FROM default.table2 к таблице, расположенной в БД default, если это допускают права пользователя БД.
Имя БД используется для:
-
адресации к таблицам по умолчанию (возможность для пользователя не указывать явно БД в коде запроса);
-
указания, куда сохранять кэш моделей при работе расширенного механизма кэширования моделей – системные задания будут использовать БД из настроек подключения (это не касается стандартного кэширования моделей, где используется отдельная БД или схема metabase_cache_хэш_число);
-
указания БД для сохранения XLSX.
Если необходимо полное и независимое использование раздельных подключений для чтения исходных данных, записи витрин и импорта XLSX, то есть возможность добавить дополнительные подключения — каждое с указанием своей БД. Это исключит все неоднозначности, но сильно отразится на скорости операции создания персистентных моделей, а также увеличит использование ресурсов сервера.
При планировании числа подключений важно учесть производительность кэширования моделей. Если исходная таблица и целевая таблица кэша находятся в разных БД, но в рамках одной СУБД на одном логическом сервере, то в одном подключении Glarus BI скорость кэширования может значительно превосходить вариант с раздельными подключениями к каждой БД. Дело в том, что при раздельных подключениях (одно подключение на одну БД) создание моделей производится последовательным чтением батчей из одного соединения и запись в другое, в то время как внутри одного соединения используются внутренние механизмы СУБД по чтению и записи данных непосредственно в одном запросе INSERT [ * ] FROM SELECT [ * ], что даёт существенный прирост скорости выполения операции, а также экономии памяти и вычислительных ресурсов сервера BI.
Добавление подключения к базе данных¶
Чтобы добавить подключение к базе данных, нажмите значок шестерёнки в правом верхнем углу и перейдите в Управление > Базы данных > Добавить базу данных.
Заполните поля для этой базы данных и нажмите Сохранить изменения внизу страницы.
Ниже приводится набор настроек подключения к СУБД на примере PostgreSQL и ClickHouse как наиболее часто используемых.
Подключение к поддерживаемым базам данных¶
Ниже перечислены типы источников Glarus BI. Состав поставки и дополнительные JAR указаны в разделе Драйверы и поддерживаемые версии СУБД.
- OData — коннектор Glarus BI
- CSV (каталог / FTP) — коннектор Glarus BI
- Athena
- BigQuery (платформа Google Cloud)
- ClickHouse
- Databricks
- Druid
- MongoDB
- MariaDB
- MySQL
- Oracle
- PostgreSQL
- Presto
- Redshift (AWS — сервис Amazon Web Services)
- Snowflake
- SparkSQL
- SQL Server
- SQLite
- Starburst
- Trino (драйвер Starburst)
- Vertica
Начиная с версии 46.6.4, Metabase не поддерживает подключения H2. Но система по‑прежнему поставляется с базой данных H2 ("Sample Database"): она используется как образец данных.
Драйверы и поддерживаемые версии СУБД¶
JDBC — основной способ подключения к реляционным источникам в Glarus BI. В таблице указаны библиотеки поставки и способ подключения. Версия библиотеки JDBC и версия сервера СУБД — разные характеристики. Для некоторых источников используются специализированные клиенты API.
| СУБД | Тип коннектора | Драйвер и версия | Поддерживаемые версии сервера |
|---|---|---|---|
| PostgreSQL | Встроенный | postgresql 42.7.7 | См. параметры подключения |
| MySQL | Встроенный | MariaDB Connector/J 2.7.10 | Поддерживаемые версии |
| MariaDB | Встроенный | MariaDB Connector/J 2.7.10 | Поддерживаемые версии |
| SQL Server | Встроенный | mssql-jdbc 13.2.1.jre11 | 2012 и новее |
| ClickHouse | Встроенный | clickhouse-jdbc 0.8.4 | См. параметры подключения |
| Oracle | Встроенный | ojdbc17 23.9.0.25.07 | 19c и новее |
| Starburst / Trino | Встроенный | trino-jdbc 476 | Проверен Trino 476; см. раздел |
| Presto | Встроенный | presto-jdbc 0.294 | Поддерживаемые версии |
| Snowflake | Встроенный | snowflake-jdbc-thin 3.26.1 | Облачный сервис: версия сервера не применима |
| Amazon Redshift | Встроенный | redshift-jdbc42 2.1.0.34 | Поддерживаемые версии |
| Databricks | Встроенный | databricks-jdbc 2.7.3 | См. параметры подключения SQL |
| Athena | Встроенный | athena-jdbc 3.6.0 | Облачный сервис: версия сервера не применима |
| Druid (Avatica) | Встроенный | avatica 1.26.0 | См. параметры подключения |
| SQLite | Встроенный | sqlite-jdbc 3.50.3.0 | См. параметры подключения |
| H2 (образец данных) | Встроенный | h2 2.1.214 | Для образца данных; новые внешние подключения H2 недоступны |
| BigQuery | Встроенный | Google Cloud BigQuery API (не JDBC) 2.54.2 | Облачный сервис: версия сервера не применима |
| MongoDB | Встроенный | MongoDB Java Sync (не JDBC) 5.5.1 | Поддерживаемые версии |
| SparkSQL | Встроенный | hive-jdbc (standalone) 4.2.0 | Совместимость установки проверяется отдельно |
| Vertica | Внешний JAR JDBC; адаптер встроен | Vertica JDBC — устанавливается администратором отдельно | Совместимость выбранного JAR проверяется для установки |
| OData | Встроенный коннектор Glarus BI | Клиент OData по HTTP, не JDBC | Совместимость сервиса проверяется при подключении |
| CSV (каталог / FTP) | Встроенный коннектор Glarus BI | csvjdbc 1.3.1-metabase-SNAPSHOT | Файлы из каталога или по FTP |
Для MySQL, MariaDB, MongoDB, Presto и Redshift политика поддержки приведена в разделах «Поддерживаемые версии» по ссылкам в таблице. Если отдельный диапазон не указан, таблица не устанавливает минимальную версию сервера: совместимость используемой СУБД и её настроек проверяется при подключении. Для BigQuery, Athena и Snowflake номер версии сервера не применяется как к самостоятельно установленной СУБД.
Для запуска Glarus BI требуется Java 21; более ранние версии Java не поддерживаются. Драйверы поставки рассчитаны на эту среду и используются с Java 21 официального образа Glarus BI. Требования к Java самого сервера Trino определяются отдельно.
Совместимые дополнительные JAR администратор помещает в каталог plugins (путь задаётся MB_PLUGINS_DIR) и перезапускает приложение. Для Vertica адаптер включён в поставку, а библиотека JDBC устанавливается отдельно. Произвольная библиотека JDBC сама по себе не добавляет новый тип источника в интерфейс: нужен подходящий модуль коннектора. Для Oracle указанная библиотека ojdbc17 входит в сборку.
H2 в этой таблице относится к образцу данных. Использование H2 как базы приложения для пробного запуска описано отдельно в разделе База данных приложения.
Подключение к базам данных, размещённым у облачного провайдера¶
Подробности подключения для конкретного провайдера, например подключение к хранилищу данных PostgreSQL на RDS:
Назначение разрешений в базе данных¶
Для подключения Glarus BI, выполнения запросов или записи данных требуется предоставить Glarus BI учётную запись пользователя базы данных с корректными разрешениями. См. Пользователи базы данных, роли и разрешения.
Синхронизация и сканирование баз данных¶
См. Синхронизация и сканирование.
Удаление баз данных¶
Внимание
Удаление "базы данных" (подключения) необратимо! Все сохранённые запросы и карточки дашбордов, основанные на этой базе данных, также будут удалены!
Перейдите в Управление > Базы данных > (ваша база данных) и нажмите Удалить эту базу данных.
Восстановление Sample Database¶
Если вы удалили Sample Database (документация Metabase, англ.), перейдите в Управление > Базы данных и нажмите Восстановить образец базы данных.
Устранение проблем¶
- Устранение неполадок с подключением к базе данных
- Устранение неполадок с синхронизацией, сканированием и снятием слепков
- Найдите или спросите сообщество Glarus BI.