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


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> нет 10 (TimePartitionedSampler) Только для TimePartitionedSampler
-c, --config <file> нет Env или dab-config.json Путь к файлу конфигурации

* --graphql не является обязательным для синтаксического анализа, но экспорт завершается ошибкой, если ее не указать.

Поведение

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

В режиме экспорта (без --generate), DAB сначала пытается https://localhost:5001 и возвращается в http://localhost:5000.

Режим экспорта повторяет извлечение схемы до пяти раз. Режим создания использует одну попытку.

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

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

TopNExtractor

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

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

EligibleDataSampler

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

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

TimePartitionedSampler

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

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

Замечание

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

--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. Создание схемы из Azure Cosmos DB для данных NoSQL

Это важно

--generate поддерживается только с Azure Cosmos DB для конфигурации NoSQL.

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: для каждой группы времени

Значения по умолчанию зависят от режима:

  • TopNExtractor: 10
  • EligibleDataSampler: 5
  • TimePartitionedSampler: 10

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

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

Значения по умолчанию зависят от режима:

  • TopNExtractor: нет ограничения времени (по умолчанию 0)
  • EligibleDataSampler: 30
  • TimePartitionedSampler: 10

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 Экспорт выполнен успешно
-1 Сбой экспорта

Примеры

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

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.gql \
  --generate \
  --sampling-mode TopNExtractor \
  --sampling-count 15

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

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

Подсказка

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

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

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

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

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