Добавление и управление базами данных¶
Подключите 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 как наиболее часто используемых.
Подключение к поддерживаемым базам данных¶
Перечисленные ниже базы данных имеют официальные драйверы, поддерживаемые Metabase.
- Athena
- BigQuery (платформа Google Cloud)
- ClickHouse
- Databricks
- Druid
- MongoDB
- MariaDB
- MySQL
- Oracle
- PostgreSQL
- Presto
- Redshift (AWS — сервис Amazon Web Services)
- Snowflake
- SparkSQL
- SQL Server
- SQLite
- Starburst
- Vertica
Начиная с версии 46.6.4, Metabase не поддерживает подключения H2. Но система по‑прежнему поставляется с базой данных H2 ("Sample Database"): она используется как образец данных.
Подключение к базам данных, размещённым у облачного провайдера¶
Подробности подключения для конкретного провайдера, например подключение к хранилищу данных PostgreSQL на RDS:
Назначение разрешений в базе данных¶
Для подключения Glarus BI, выполнения запросов или записи данных требуется предоставить Glarus BI учётную запись пользователя базы данных с корректными разрешениями. См. Пользователи базы данных, роли и разрешения.
Синхронизация и сканирование баз данных¶
См. Синхронизация и сканирование.
Удаление баз данных¶
Внимание
Удаление "базы данных" (подключения) необратимо! Все сохранённые запросы и карточки дашбордов, основанные на этой базе данных, также будут удалены!
Перейдите в Управление > Базы данных > (ваша база данных) и нажмите Удалить эту базу данных.
Восстановление Sample Database¶
Если вы удалили Sample Database (документация Metabase, англ.), перейдите в Управление > Базы данных и нажмите Восстановить образец базы данных.
Устранение проблем¶
- Устранение неполадок с подключением к базе данных
- Устранение неполадок с синхронизацией, сканированием и снятием слепков
- Найдите или спросите сообщество Glarus BI.