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

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

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

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

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

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

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

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

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

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

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

  1. Выберите Администрирование > Базы данных > ваша база данных.

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

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

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

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

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

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

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

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

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

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

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

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

  1. Выберите Администрирование > Базы данных > ваша база данных.

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

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

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

  1. Выберите Администрирование > Метаданные таблиц > ваша база данных.

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

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

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

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

  1. Выберите Администрирование > Метаданные таблиц > ваша база данных.

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

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

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

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

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

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

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

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

  1. Выберите Администрирование > Метаданные таблиц > ваша база данных.

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

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

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

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

  1. Выберите Администрирование > Метаданные таблиц > ваша база данных.

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

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

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

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

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

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

  1. Выберите Администрирование > Метаданные таблиц > ваша база данных.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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