# Сериализация Когда вы начнете работать с GlarusBI в режиме промышленной эксплуатации, вполне вероятно, что у вас будет развернуто более одного экземпляра GlarusBI. У вас может быть несколько инстансов для тестирования или разработки и несколько производственных кластеров, или, может быть, у вас есть отдельный GlarusBI для каждого офиса или региона. Для подобных ситуаций в GlarusBI есть функция сериализации, которая позволяет вам *экспортировать* содержимое GlarusBI, которое потом может быть *импортировано* в один или несколько экземпляров GlarusBI. ## Варианты использования - **Промежуточные рабочие среды**. Позволяет для важных дашбордов осуществлять процесс перехода от промежуточного состояния к рабочему путем экспорта из промежуточного экземпляра GlarusBI с дальнейшим импортом их в рабочие экземпляры. - **Контроль версий**. Проверьте экспортированные файлы в системе контроля версий и проверяйте их изменения, поскольку файлы YAML, содержащиеся в экспорте, хорошо читабельны. ## Что экспортируется GlarusBI позволяет экспортировать только следующие артефакты: - Коллекции (кроме персональных коллекций, если на них не установлен флаг `--user`) - Дашборды - Сохраненные вопросы - Действия - Модели - Фрагменты SQL - Настройки Метаданных таблиц - Сегменты и метрики, указанные в Метаданных таблиц - Настройки общего доступа к вопросам и дашбордам - [Основные настройки GlarusBI](#the-general-settings-that-metabase-exports) - Настройки подключения к базе данных - События и сроки GlarusBI экспортирует свои артефакты в каталог с файлами YAML. Экспорт включает в себя: - Файл `settings.yaml`, включающий в себя [основные настройки, относящиеся к GlarusBI в целом](#the-general-settings-that-metabase-exports). - Каталоги, содержащие YAML-файлы для различных объектов GlarusBI. Пример экспорта может включать следующие каталоги, в зависимости от того, что именно вы экспортировали: - действия - коллекции - базы данных В каталоге `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 исключить настройки Метаданных таблиц из экспорта. Администраторы устанавливают настройки метаданных на вкладке [Метаданные таблиц](../data-modeling/metadata-editing.md) в настройках администратора. ### `--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](https://www.metabase.com/docs/latest/paid-features/activating-the-enterprise-edition), or via an [environment variable](../configuring-metabase/environment-variables.md#mb_premium_embedding_token). ## Опции импорта Большинство опций определяются при экспорте данных из 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](./backing-up-metabase-application-data.md). Если вы хотите выполнить однократную миграцию из базы данных H2, включенной в GlarusBI по умолчанию, в MySQL/Postgres, используйте [руководство по миграции](./migrating-from-h2.md). ### Общие настройки, экспортируемые 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](../configuring-metabase/start.md) ## Дополнительная информация - [Руководство по сериализации](https://www.metabase.com/learn/administration/serialization).