Partager via


Commande export

Exportez ou générez un fichier de schéma GraphQL et enregistrez-le sur le disque. Deux modes sont pris en charge :

  • Récupérer un schéma existant à partir d’une instance d’exécution DAB temporaire
  • Générer un schéma à partir de données Cosmos DB pour NoSQL à l’aide de l’échantillonnage

Syntaxe

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

Important

Nécessite une configuration DAB valide. Le type de base de données est lu à partir du fichier config. Aucun indicateur n’est --database-type accepté.

Aperçu rapide

Choix Obligatoire Par défaut S’applique
--graphql Oui false Doit être défini pour l’exportation de schéma
-o, --output <dir> Oui Répertoire pour le schéma de sortie
-g, --graphql-schema-file <name> Non schema.gql Nom de fichier placé dans le dir de sortie
--generate Non false Générer un schéma à partir de données Cosmos DB
-m, --sampling-mode <mode> Non TopNExtractor Un des suivants : TopNExtractor, EligibleDataSampler, TimePartitionedSampler
-n, --sampling-count <int> Non Dépendant du mode Nombre d’enregistrements par mode
--sampling-partition-key-path <path> Non Pour EligibleDataSampler uniquement
-d, --sampling-days <int> Non Restreindre les enregistrements plus récents que N jours
--sampling-group-count <int> Non Pour TimePartitionedSampler uniquement
-c, --config <file> Non Spécifique à l’env ou dab-config.json Chemin d’accès au fichier de configuration
--help Non Afficher l’écran d’aide
--version Non Afficher les informations de version

Comportement

Mode Descriptif
Exporter un schéma existant Démarre un runtime temporaire, un schéma GraphQL introspects, écrit un fichier
Générer un schéma Exemples de documents Cosmos DB et schéma déduit

Le schéma vide génère une erreur : « Le schéma GraphQL généré est vide. Vérifiez que les données sont disponibles pour générer le schéma. »

Modes d’échantillonnage

TopNExtractor

  • Exemples N documents récents
  • Filtre d’heure facultatif avec --sampling-days

Utiliser pour des jeux de données plus petits et uniformes

EligibleDataSampler

  • Échantillonnage prenant en compte les partitions
  • N documents par partition
  • --sampling-partition-key-path facultatif

Utiliser lorsque les partitions ont un schéma varié

TimePartitionedSampler

  • Fractionne min/max _ts en groupes de temps
  • N documents par groupe
  • --sampling-group-count Obligatoire

Utiliser quand le schéma évolue au fil du temps

Note

Ressources plus intensives en raison de plusieurs requêtes.

--graphql

Active l’exportation de schéma. Sans cela, rien ne se passe.

Example

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

-o, --output

Répertoire du fichier de schéma. Créé s’il est manquant.

Example

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

-g, --graphql-schema-file

Nom de fichier de sortie uniquement, valeur par défaut schema.gql.

Example

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

--generate

  • false (valeur par défaut) : Démarrer le runtime, schéma d’introspect
  • true : Générer un schéma à partir de données Cosmos DB

Example

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

-m, --sampling-mode

Options : TopNExtractor, , EligibleDataSamplerTimePartitionedSamplerPar défaut :TopNExtractor

Example

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

-n, --sampling-count

  • TopNExtractor : total des documents
  • EligibleDataSampler : par partition
  • TimePartitionedSampler : par groupe de temps

Example

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

--sampling-partition-key-path

Chemin de clé de partition pour EligibleDataSampler

Example

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

-d, --sampling-days

Filtrer les documents par récurrence (jours)

Example

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

--sampling-group-count

Nombre de groupes de temps pour TimePartitionedSampler

Example

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

-c, --config

Chemin du fichier de configuration. S’il est omis :

  1. dab-config.<DAB_ENVIRONMENT>.json si env var est défini
  2. Autrement dab-config.json

Example

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

--help

Affichez l’écran d’aide.

Example

dab export --help

--version

Affichez les informations de version.

Example

dab export --version

Codes de retour

Code Meaning
0 Exportation réussie
Non zéro Échec de l’exportation

Examples

Exporter un schéma existant

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

Générer un schéma (TopNExtractor)

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

Échantillonnage prenant en compte les partitions

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

Échantillonnage basé sur le temps

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

Nom de fichier de sortie personnalisé

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

Utilisation des fichiers générés

Définissez runtime.graphql.schema le chemin d’accès du fichier de schéma exporté. Pour plus d’informations, consultez Configuration du runtime.

Conseil / Astuce

Validez le schéma généré une fois stable. Réexécutez si le modèle de données change.

Résolution des problèmes

Symptôme La cause Réparer
Schéma vide Aucune donnée ou insuffisante Ajouter des données représentatives
Erreur de connectivité Chaîne de connexion incorrecte Corriger les informations d’identification ou le réseau
Champs manquants Non dans les documents échantillonné Augmenter le nombre ou le mode de modification
Quelques résultats de partition Clé de partition incorrecte Fournir le chemin d’accès de clé correct
Échantillonnage à temps lent Jeu de données volumineux Réduire les groupes ou les jours

Meilleures pratiques

  • Commencer par TopNExtractor
  • Utiliser le contrôle de version pourdifférer les modifications de schéma
  • Pour les collections critiques, exécutez plusieurs passes avec différents paramètres