Поделиться через


Команда export

Экспортируйте или создайте файл схемы GraphQL и сохраните его на диске. Поддерживаются два режима:

  • Получение существующей схемы из временного экземпляра среды выполнения DAB
  • Создание схемы из Cosmos DB для данных NoSQL с помощью выборки

Синтаксис

dab export --graphql -o <output-directory> [options]

Это важно

Требуется допустимая конфигурация DAB. Тип базы данных считывается из файла конфигурации. Флаг не --database-type принимается.

Краткий обзор

Вариант Обязательно По умолчанию Применимо
--graphql Да false Необходимо задать для экспорта схемы
-o, --output <dir> Да Каталог для выходной схемы
-g, --graphql-schema-file <name> нет schema.gql Имя файла, помещенного в выходной dir
--generate нет false Создание схемы из данных Cosmos DB
-m, --sampling-mode <mode> нет TopNExtractor Одно из следующих: TopNExtractor, EligibleDataSamplerTimePartitionedSampler
-n, --sampling-count <int> нет Зависимость от режима Количество записей в режиме
--sampling-partition-key-path <path> нет Только для EligibleDataSampler
-d, --sampling-days <int> нет Ограничение на записи более новых, чем N дней
--sampling-group-count <int> нет Только для TimePartitionedSampler
-c, --config <file> нет Env или dab-config.json Путь к файлу конфигурации
--help нет Отображение экрана справки
--version нет Отображение сведений о версии

Поведение

Mode Description
Экспорт существующей схемы Запускает временную среду выполнения, схему GraphQL introspects, записывает файл
Создание схемы Примеры документов Cosmos DB и схемы инфиндеров

Пустая схема приводит к ошибке: "Созданная схема GraphQL пуста. Убедитесь, что данные доступны для создания схемы".

Режимы выборки

TopNExtractor

  • Примеры N последних документов
  • Необязательный фильтр времени с помощью --sampling-days

Использование для небольших универсальных наборов данных

EligibleDataSampler

  • Выборка с учетом секционирования
  • N документов на секцию
  • --sampling-partition-key-path необязательный

Использование, когда секции имеют разнообразную схему

TimePartitionedSampler

  • Разделяет минимальное/максимальное значение _ts на группы времени
  • N документов для каждой группы
  • --sampling-group-count Обязательно

Использование при изменении схемы с течением времени

Замечание

Более интенсивное использование ресурсов из-за нескольких запросов.

--graphql

Включает экспорт схемы. Без него ничего не происходит.

Example

dab export \
  --graphql \
  -o ./schema-out

-o, --output

Каталог для файла схемы. Создано, если отсутствует.

Example

dab export \
  --graphql \
  -o ./schema-out

-g, --graphql-schema-file

Только имя выходного файла, по умолчанию schema.gql— .

Example

dab export \
  --graphql \
  -o ./out \
  -g custom-schema.gql

--generate

  • false (по умолчанию): запуск среды выполнения, схема интроспекта
  • true. Создание схемы из данных Cosmos DB

Example

dab export \
  --graphql \
  -o ./schema-gen \
  --generate

-m, --sampling-mode

Параметры: , TopNExtractorпо EligibleDataSampler умолчанию: TimePartitionedSamplerTopNExtractor

Example

dab export \
  --graphql \
  -o ./schema-gen \
  --generate \
  --sampling-mode TopNExtractor

-n, --sampling-count

  • TopNExtractor: общий объем документов
  • EligibleDataSampler: на секцию
  • TimePartitionedSampler: для каждой группы времени

Example

dab export \
  --graphql \
  -o ./schema-gen \
  --generate \
  --sampling-mode TopNExtractor \
  --sampling-count 25

--sampling-partition-key-path

Путь ключа секции для EligibleDataSampler

Example

dab export \
  --graphql \
  -o ./schema-partitions \
  --generate \
  --sampling-mode EligibleDataSampler \
  --sampling-partition-key-path /customerId

-d, --sampling-days

Фильтрация документов по пересчету (дни)

Example

dab export \
  --graphql \
  -o ./schema-gen \
  --generate \
  --sampling-days 14

--sampling-group-count

Количество групп времени для TimePartitionedSampler

Example

dab export \
  --graphql \
  -o ./schema-time \
  --generate \
  --sampling-mode TimePartitionedSampler \
  --sampling-group-count 8

-c, --config

Путь к файлу конфигурации. Если опущено:

  1. dab-config.<DAB_ENVIRONMENT>.json Значение env var
  2. Иначе dab-config.json

Example

dab export \
  --graphql \
  -o ./schema-out \
  --config ./dab-config.json

--help

Отображение экрана справки.

Example

dab export --help

--version

Отображение сведений о версии.

Example

dab export --version

Коды возврата

Code Meaning
0 Экспорт выполнен успешно
Ненулевая Сбой экспорта

Примеры

Экспорт существующей схемы

dab export \
  --graphql \
  -o ./schema-out

Создание схемы (TopNExtractor)

dab export \
  --graphql \
  -o ./schema-gen \
  --generate \
  --sampling-mode TopNExtractor \
  --sampling-count 25 \
  --sampling-days 14

Выборка с учетом секционирования

dab export \
  --graphql \
  -o ./schema-partitions \
  --generate \
  --sampling-mode EligibleDataSampler \
  --sampling-partition-key-path /customerId \
  --sampling-count 10

Выборка на основе времени

dab export \
  --graphql \
  -o ./schema-time \
  --generate \
  --sampling-mode TimePartitionedSampler \
  --sampling-group-count 8 \
  --sampling-count 5 \
  --sampling-days 60

Пользовательское имя выходного файла

dab export \
  --graphql \
  -o ./out \
  -g cosmos-schema.graphql \
  --generate \
  --sampling-mode TopNExtractor \
  --sampling-count 15

Использование созданных файлов

Задайте runtime.graphql.schema путь к экспортируемой схеме. Дополнительные сведения см. в разделе "Конфигурация среды выполнения".

Подсказка

Зафиксируйте созданную схему после стабильной. Повторно запустите, если модель данных изменяется.

Устранение неполадок

Симптом Причина Исправить
Пустая схема Нет или недостаточно данных Добавление репрезентативных данных
Ошибка подключения Недопустимая строка подключения Исправление учетных данных или сети
Отсутствующие поля Не в примерах документов Увеличение количества или изменение режима
Немногие результаты секции Неправильный ключ секции Укажите правильный путь к ключу
Медленная выборка времени Большой набор данных Сокращение групп или дней

Лучшие практики

  • Начало работы с TopNExtractor
  • Использование элемента управления версиями для изменения схемы
  • Для критически важных коллекций выполните несколько проходов с разными параметрами