Синхронизация и сканирование баз данных

Glarus BI выполняет разные типы запросов, чтобы быть в курсе вашей базы данных.

  • Синхронизация обновляет схемы для отображения в Data Browser.

  • Сканирование берёт образцы значений столбцов для заполнения выпадающих меню фильтров и предлагает полезные визуализации. Glarus BI не хранит полные таблицы из вашей базы данных.

  • Отпечаток берёт дополнительный образец значений столбцов, чтобы помочь с „умным поведением“, таким как автоматическое объединение для гистограмм.

Первоначальная синхронизация, сканирование и отпечаток

Когда Glarus BI первый раз подключается к вашей базе данных, он выполняет синхронизацию, чтобы определить метаданные столбцов в ваших таблицах и автоматически назначить каждому столбцу семантический тип. После успешной синхронизации Glarus BI выполняет сканирование каждой таблицы для поиска URLов, JSON, закодированных строк и т. д. Запросы отпечатка выполняются после завершения синхронизации.

Вы можете следить за ходом выполнения этих запросов в разделе Управление > Устранение неполадок > Журналы.

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

Выберите, когда Glarus BI запускает синхронизацию и сканирование

Если вы хотите изменить расписание по умолчанию для запросов синхронизации и сканирования:

  1. Выберите Управление > Базы данных > ваша база данных.

  2. Разверните Показать дополнительные параметры.

  3. Включите Выберите, когда будет выполняться синхронизация и сканирование.

Планирование синхронизации базы данных

Если вы выбрали Выберите, когда будет выполняться синхронизация и сканирование > ВКЛ, вы сможете установить:

  • частоту сканирования раз в час или раз в день;

  • время, когда сканирование будет запущено, в часовом поясе сервера, где работает ваше приложение Glarus BI.

Планирование сканирования базы данных

Если вы выбрали Выберите, когда будет выполняться синхронизация и сканирование > ВКЛ, вы увидите следующие параметры в разделе Сканирование значений фильтров:

  • Регулярно, по расписанию позволяет запускать запросы сканирования с частотой, соответствующей скорости изменения вашей базы данных. Время устанавливается в часовом поясе сервера, где работает ваше приложение Glarus BI. Это лучший вариант для небольшой базы данных или таблиц с отдельными значениями, которые часто обновляются.

  • Только при добавлении виджета-фильтра — отличный вариант, если вы хотите, чтобы запросы сканирования запускались по требованию. Включение этой опции означает, что Glarus BI будет сканировать и кэшировать значения поля(ей), используемые при добавлении нового фильтра на панель инструментов или SQL-запрос.

  • Никогда, я сделаю это вручную, если мне это понадобится — это вариант для баз данных, которые либо чрезвычайно велики, либо в которых никогда не добавляются новые значения. Используйте кнопку Повторно отсканировать значения поля сейчас, чтобы запустить ручное сканирование и обновить значения фильтра.

Ручная синхронизация таблиц и столбцов

  1. Выберите Управление > Базы данных > ваша база данных.

  2. Нажмите Синхронизировать схему базы данных сейчас.

Ручное сканирование значений столбцов

Чтобы сканировать значения из всех столбцов таблицы:

  1. Выберите Управление > Метаданные таблиц > ваша база данных.

  2. Выберите таблицу, которую вы хотите обновить в соответствии с вашей базой данных.

  3. Нажмите шестерёнку в верхней части страницы.

  4. Нажмите Повторно отсканировать эту таблицу.

Чтобы сканировать значения из конкретного столбца:

  1. Выберите Управление > Метаданные таблиц > ваша база данных.

  2. Выберите таблицу, которую вы хотите обновить в соответствии с вашей базой данных.

  3. Найдите столбец, который вы хотите обновить в соответствии с вашей базой данных.

  4. Нажмите шестерёнку на панели для этого столбца.

  5. Нажмите Повторно отсканировать это поле.

Периодически пересоздавать слепки таблиц

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

По умолчанию Glarus BI запускает запросы отпечатков только при первом подключении базы данных.

Включите эту настройку, если вы хотите, чтобы Glarus BI использовал большие выборки значений столбцов при предложении в пользовательском интерфейсе:

  1. Выберите Управление > Метаданные таблиц > ваша база данных.

  2. Разверните Показать расширенные параметры.

  3. Включите Периодический слепок таблиц.

Сброс кэшированных значений

Чтобы попросить Glarus BI забыть данные из предыдущих сканирований и отпечатков:

  1. Выберите Управление > Метаданные таблиц > ваша база данных.

  2. Выберите таблицу.

  3. Необязательно: выберите столбец.

  4. Нажмите шестерёнку.

  5. Нажмите Сбросить кэшированные значения полей.

Отключение синхронизации и сканирования для конкретной таблицы

Чтобы предотвратить запуск в Glarus BI синхронизации и сканирования для конкретной таблицы, измените видимость таблицы на Скрытый:

  1. Выберите Управление > Метаданные таблиц > ваша база данных.

  2. Наведите курсор на название таблицы в боковой панели.

  3. Нажмите значок глаза.

Скрытие таблицы также предотвратит её появление в конструкторе запросов и ссылке на данные. Люди всё ещё могут запрашивать скрытые таблицы из редактора SQL.

Синхронизация и сканирование с помощью API

Glarus BI регулярно производит синхронизацию и сканирование, но если администратор базы данных только что изменил схему базы данных, или если много данных добавляется автоматически в определённое время, вы можете написать скрипт, который использует API Glarus BI для принудительной синхронизации или сканирования. [Наш API] (../api-documentation.md) предоставляет два способа инициировать синхронизацию или сканирование базы данных:

  1. Используя токен сессии: конечные точки /api/database/:id/sync_schema или api/database/:id/rescan_values. Эти конечные точки делают то же самое, что и переход к базе данных в панели администратора и выбор Синхронизировать схему базы данных сейчас или Повторно сканировать значения поля сейчас соответственно. Чтобы использовать эти конечные точки, вы должны аутентифицироваться с помощью идентификатора пользователя и передать токен сессии в заголовке вашего запроса.

  2. Используя ключ API: /api/notify/db/:id. Мы создали эту конечную точку, чтобы люди могли уведомлять свою Glarus BI о синхронизации после завершения операции ETL. Чтобы использовать эту конечную точку, вы должны передать ключ API, определив переменную среды MB_API_KEY.

Как работают синхронизации баз данных

Cинхронизация — это запрос, который получает список обновлённых названий таблиц и представлений, названий столбцов и типов данных столбцов из вашей базы данных:

SELECT
    TRUE
FROM
    "your_schema"."your_table_or_view"
WHERE
    1 <> 1
LIMIT 0

Этот запрос выполняется в вашей базе данных во время настройки и снова каждый час по умолчанию. Этот сканирующий запрос работает быстро с большинством реляционных баз данных, но может быть медленнее с MongoDB и некоторыми драйверами баз данных, созданными сообществом. Синхронизацию нельзя полностью отключить, иначе Glarus BI не будет работать.

Как работают сканирования баз данных

Cканирование — это запрос, который кэширует значения столбцов для выпадающих списков фильтров, на основе анализа первых 1 000 отдельных записей из каждой таблицы в порядке возрастания:

SELECT
    "your_table_or_view"."column" AS "column"
FROM
    "your_schema"."your_table_or_view"
GROUP BY
    "your_table_or_view"."column"
ORDER BY
    "your_table_or_view"."column" ASC
LIMIT 1000

Для каждой записи Glarus BI хранит только первые 100 килобайт текста, поэтому, если у вас есть данные с 1 000 символами каждый (например, адреса), и ваш столбец имеет более 100 уникальных адресов, Glarus BI кэширует только первые 100 значений из запроса сканирования.

Значения кэшированного столбца отображаются в выпадающих меню фильтров. Если люди вводят в поле поиска фильтра значения, которых нет в первой 1 000 отдельных записей или 100 Кбайт текста, Glarus BI выполнит запрос к вашей базе данных, чтобы искать эти значения на лету.

Сканирование более интенсивно, чем запрос синхронизации, поэтому оно выполняется только один раз во время настройки и снова один раз в день по умолчанию. Если вы отключите сканирование полностью, вам нужно будет привести всё в соответствие, запустив ручное сканирование.

Чтобы уменьшить количество таблиц и полей, которые сканируются для актуализации, Glarus BI будет сканировать значения только для полей, которые кто-то запрашивал в последние четырнадцать дней.

Как работают слепки баз данных

Запрос слепка смотрит на первые 10 000 строк из данной таблицы или представления в вашей базе данных:

SELECT
    *
FROM
    "your_schema"."your_table_or_view"
LIMIT 10000

Результат этого запроса используется для предоставления лучших предложений в пользовательском интерфейсе Glarus BI (например, в выпадающих списках фильтров и автоматического разбиения на группы). Чтобы избежать нагрузки на вашу базу данных, Glarus BI запускает запросы слепков только первый раз, когда вы настраиваете подключение к базе данных. Чтобы изменить это значение по умолчанию, вы можете включить Периодическое обновление слепков таблиц.

Дополнительная информация

Glarus BI не выполняет кэширование или ограничение скорости во время процесса синхронизации и сканирования. Если ваши данные отсутствуют или устарели, ознакомьтесь с: