Сериализация

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

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

Варианты использования

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

  • Контроль версий. Проверьте экспортированные файлы в системе контроля версий и проверяйте их изменения, поскольку файлы YAML, содержащиеся в экспорте, хорошо читабельны.

Что экспортируется

GlarusBI позволяет экспортировать только следующие артефакты:

  • Коллекции (кроме персональных коллекций, если на них не установлен флаг --user)

  • Дашборды

  • Сохраненные вопросы

  • Действия

  • Модели

  • Фрагменты SQL

  • Настройки Метаданных таблиц

  • Сегменты и метрики, указанные в Метаданных таблиц

  • Настройки общего доступа к вопросам и дашбордам

  • Основные настройки GlarusBI

  • Настройки подключения к базе данных

  • События и сроки

GlarusBI экспортирует свои артефакты в каталог с файлами YAML. Экспорт включает в себя:

Пример экспорта может включать следующие каталоги, в зависимости от того, что именно вы экспортировали:

  • действия

  • коллекции

  • базы данных

В каталоге collections/cards вы увидите, что GlarusBI добавляет к отдельным файлам идентификаторы, чтобы устранить неоднозначность объектов с одинаковым именем:

IA96oUzmUbYfNFl0GzhRj_accounts_model.yaml
KUEGiWvoBFEc5oGQCEnPg_converted_customers.yaml
qzNa8ZeFgFXrrIoF2g8m4_accounts_model_detail.yaml

Пример вопроса

Вопросы можно найти в каталоге cards каталога коллекций. Вот пример YAML-файла карточки для нативного вопроса (вопрос написан на SQL):

description: The number of plans by referral source.
archived: false
collection_position: null
table_id: null
result_metadata: null
database_id: Sample Database
enable_embedding: false
collection_id: onou5H28Wvy3kWnjxxdKQ
query_type: native
name: Plan counts by source
creator_id: jeff@glarusbi.com
made_public_by_id: null
embedding_params: null
cache_ttl: null
dataset_query:
  type: native
  native:
    query: |-
      SELECT count(*),
             PLAN,
             SOURCE
      FROM accounts
      WHERE SOURCE IS NOT NULL
      GROUP BY PLAN,
               SOURCE
    template-tags: {}
  database: Sample Database
parameter_mappings: []
serdes/meta:
- model: Card
  id: 17p_H8e2OpHGGJVxqg4sN
  label: plan_counts_by_source
display: table
entity_id: 17p_H8e2OpHGGJVxqg4sN
collection_preview: true
visualization_settings:
  table.pivot_column: PLAN
  table.cell_column: COUNT(*)
  column_settings: null
parameters: []
dataset: false
created_at: '2023-05-22T14:32:28.124325'
public_uuid: null

Перед экспортом или импортом

Если ваш инстанс GlarusBI запущен и вы используете базу данных по умолчанию Н2, то вам нужно остановить GlarusBI перед экспортом или импортом.

Экспорт GlarusBI

Чтобы экспортировать содержимое экземпляра GlarusBI, перейдите в каталог, в котором вы запускаете JAR-файл GlarusBI, и выполните следующую команду:

java -jar GlarusBI.jar export [export_name]

Параметры экспорта

Чтобы просмотреть список параметров экспорта, используйте команду help:

java -jar GlarusBI.jar help export

Команда выведет что-то наподобие:

export path & options
	 Serialize GlarusBI instance into directory at `path`.
	 Options:
	   -u, --user EMAIL                Include collections owned by the specified user
	   -c, --collection ID             Export only specified ID; may occur multiple times.
	       --collections ID_LIST       (Legacy-style) Export collections in comma-separated list of IDs, e.g. '123,456'.
	   -C, --no-collections            Do not export any content in collections.
	   -S, --no-settings               Do not export settings.yaml
	   -D, --no-data-model             Do not export any data model entities; useful for subsequent exports.
	   -f, --include-field-values      Include field values along with field metadata.
	   -s, --include-database-secrets  Include database connection details (in plain text; use caution).

--user

Флаг user сообщает GlarusBI включать коллекции, принадлежащие указанному пользователю, идентифицированному по электронной почте. ВОПРОС: А как насчет учетных записей, созданных с помощью единого входа (SSO)?

--collection

Флаг --collection (алиас -c) позволяет указать по ID одну или несколько коллекций для включения в экспорт. Вы можете найти ID коллекции в её URL-адресе, например, для коллекции по адресу your-glarusbi.com/collection/42-terraforming-progress ID будет 42.

Если вы хотите указать несколько коллекций, разделите их ID запятыми. Например,

java -jar GlarusBI.jar export --collection 1,3,5,9

--no-collection

Флаг --no-collection (алиас -C) сообщает GlarusBI исключить все коллекции из экспорта.

--no-settings

Флаг --no-settings (алиас -S) сообщает GlarusBI исключить файл settings.yaml, содержащий настройки всего сайта, который экспортируется по умолчанию.

--no-data-model

Флаг --no-data-model (алиас -D) сообщает GlarusBI исключить настройки Метаданных таблиц из экспорта. Администраторы устанавливают настройки метаданных на вкладке Метаданные таблиц в настройках администратора.

--include-field-values

Флаг --include-field-values (алиас -f) сообщает GlarusBI включить образцы значений для полей, которые GlarusBI использует для представления выпадающих меню. По умолчанию GlarusBI исключает эти примеры значений полей.

--include-database-secrets

Флаг --include-database-secrets (алиас -s) сообщает GlarusBI включить сведения о соединении, в т.ч. имя пользователя базы данных и пароль. По умолчанию GlarusBI исключает эти секретные параметры подключения к базе данных. Если вы не используете этот флаг, вам придется вручную ввести учетные данные в целевой GlarusBI.

Импорт в GlarusBI

Чтобы импортировать экспортированные артефакты в экземпляр GlarusBI, перейдите в каталог, в котором вы запускаете целевую GlarusBI (GlarusBI, в которую вы хотите импортировать), и используйте следующую команду, где [my_export] — это путь к экспортированным данным, которые вы хотите импортировать:

java -jar GlarusBI.jar import [my_export]

В настоящее время вы можете импортировать экспортированные артефакты только в экземпляр GlarusBI, созданный в той же версии GlarusBI.

You’ll need to manually add license tokens

Metabase excludes your license token from exports, so if you’re running multiple environments of Metabase Enterprise Edition, you’ll need to manually add your license token to the target Metabase(s), either via the Metabase user interface, or via an environment variable.

Опции импорта

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

java -jar glarusbi help import

Команда выведет что-то наподобие:

import path & options
         Load serialized GlarusBI instance as created by the [[export]] command from directory `path`.
         Options:
           -e, --abort-on-error  Stops import on any errors, default is to continue.

--abort-on-error

Флаг --abort-on-error (алиас -e) — это необязательный флаг, который позволяет вам указать, как процесс импорта должен обрабатывать ошибки. По умолчанию GlarusBI ошибки игнорирует.

Не используйте сериализацию для резервного копирования

Просто примечание: сериализация не предназначена для резервного копирования вашей GlarusBI.

См. Резервное копирование GlarusBI.

Если вы хотите выполнить однократную миграцию из базы данных H2, включенной в GlarusBI по умолчанию, в MySQL/Postgres, используйте руководство по миграции.

Общие настройки, экспортируемые GlarusBI

Список общих настроек GlarusBI экспортирует в файле settings.yaml.

humanization-strategy
native-query-autocomplete-match-style
site-locale
report-timezone-short
report-timezone-long
application-name
enable-xrays
show-homepage-pin-message
source-address-header
enable-nested-queries
custom-geojson-enabled
start-of-week
custom-geojson
available-timezones
max-results-bare-rows
hide-embed-branding?
search-typeahead-enabled
enable-sandboxes?
application-font
available-locales
landing-page
enable-embedding
application-colors
application-logo-url
application-favicon-url
show-homepage-xrays
show-metabot
enable-whitelabeling?
show-homepage-data
site-name
application-font-files
loading-message
report-timezone
show-lighthouse-illustration
persisted-models-enabled
enable-content-management?
subscription-allowed-domains
breakout-bins-num
available-fonts
custom-formatting

Дополнительную информацию о настройках GlarusBI см. в Настройка GlarusBI

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