Freigeben über


export-Befehl

Exportieren oder generieren Sie eine GraphQL-Schemadatei, und speichern Sie sie auf dem Datenträger. Zwei Modi werden unterstützt:

  • Abrufen eines vorhandenen Schemas aus einer temporären DAB-Laufzeitinstanz
  • Generieren eines Schemas aus Cosmos DB für NoSQL-Daten mithilfe des Samplings

Syntax

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

Von Bedeutung

Erfordert eine gültige DAB-Konfiguration. Der Datenbanktyp wird aus der Konfigurationsdatei gelesen. Es wird keine --database-type Kennzeichnung akzeptiert.

Schnellblick

Option Erforderlich Standard Trifft zu
--graphql Yes Falsch Muss für den Schemaexport festgelegt sein
-o, --output <dir> Yes Verzeichnis für Ausgabeschema
-g, --graphql-schema-file <name> Nein schema.gql Dateiname, der in ausgabedirig platziert wurde
--generate Nein Falsch Generieren eines Schemas aus Cosmos DB-Daten
-m, --sampling-mode <mode> Nein TopNExtractor Eine von: TopNExtractor, EligibleDataSamplerTimePartitionedSampler
-n, --sampling-count <int> Nein Modusabhängig Anzahl der Datensätze pro Modus
--sampling-partition-key-path <path> Nein Nur für EligibleDataSampler
-d, --sampling-days <int> Nein Einschränken auf Datensätze, die neuer als N Tage sind
--sampling-group-count <int> Nein Nur für TimePartitionedSampler
-c, --config <file> Nein Env-spezifisch oder dab-config.json Pfad zur Konfigurationsdatei
--help Nein Anzeigen des Hilfebildschirms
--version Nein Anzeigen von Versionsinformationen

Verhalten

Modus Description
Vorhandenes Schema exportieren Startet eine temporäre Laufzeit, introspects GraphQL Schema, schreibt Datei
Schema generieren Beispiele für Cosmos DB-Dokumente und -Ableitungsschemas

Leeres Schema führt zu einem Fehler: "Generiertes GraphQL-Schema ist leer. Stellen Sie sicher, dass Daten verfügbar sind, um das Schema zu generieren."

Samplingmodi

TopNExtractor

  • Beispiele für N zuletzt verwendete Dokumente
  • Optionaler Zeitfilter mit --sampling-days

Wird für kleinere, einheitliche Datasets verwendet

EligibleDataSampler

  • Partitionsfähiges Sampling
  • N-Dokumente pro Partition
  • --sampling-partition-key-path wahlfrei

Verwenden, wenn Partitionen unterschiedliche Schemas aufweisen

TimePartitionedSampler

  • Teilt Min/Max _ts in Zeitgruppen auf.
  • N-Dokumente pro Gruppe
  • --sampling-group-count Erforderlich

Verwenden, wenn sich das Schema im Laufe der Zeit weiterentwickelt

Hinweis

Mehr Ressourcenintensiver aufgrund mehrerer Abfragen.

--graphql

Aktiviert den Schemaexport. Ohne sie geschieht nichts.

Example

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

-o, --output

Verzeichnis für Die Schemadatei. Wird erstellt, wenn dies fehlt.

Example

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

-g, --graphql-schema-file

Nur Ausgabedateiname, Standardwert : schema.gql.

Example

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

--generate

  • false (Standard): Startlaufzeit, Introspect-Schema
  • true: Generieren eines Schemas aus Cosmos DB-Daten

Example

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

-m, --sampling-mode

Optionen: , , TopNExtractorEligibleDataSamplerStandard: TimePartitionedSamplerTopNExtractor

Example

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

-n, --sampling-count

  • TopNExtractor: Gesamtdokumente
  • EligibleDataSampler: pro Partition
  • TimePartitionedSampler: pro Zeitgruppe

Example

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

--sampling-partition-key-path

Partitionsschlüsselpfad für EligibleDataSampler

Example

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

-d, --sampling-days

Filtern von Dokumenten nach Reency (Tage)

Example

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

--sampling-group-count

Anzahl der Zeitgruppen für TimePartitionedSampler

Example

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

-c, --config

Konfigurationsdateipfad. Wenn nicht angegeben:

  1. dab-config.<DAB_ENVIRONMENT>.json wenn env var festgelegt ist
  2. Sonst dab-config.json

Example

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

--help

Zeigen Sie den Hilfebildschirm an.

Example

dab export --help

--version

Versionsinformationen anzeigen.

Example

dab export --version

Rückgabecodes

Code Bedeutung
0 Export erfolgreich
Ungleich Null Exportfehler

Examples

Vorhandenes Schema exportieren

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

Schema generieren (TopNExtractor)

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

Partitionsfähiges Sampling

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

Zeitbasiertes Sampling

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

Benutzerdefinierter Ausgabedateiname

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

Generierte Dateiverwendung

Legen Sie runtime.graphql.schema den exportierten Schemadateipfad fest. Weitere Informationen finden Sie unter Runtime-Konfiguration.

Tipp

Commit des generierten Schemas einmal stabil. Führen Sie die Ausführung erneut aus, wenn sich das Datenmodell ändert.

Problembehandlung

Symptom Ursache Reparatur
Leeres Schema Keine oder unzureichende Daten Hinzufügen von repräsentativen Daten
Konnektivitätsfehler Ungültige Verbindungszeichenfolge Korrigieren von Anmeldeinformationen oder Netzwerk
Fehlende Felder Nicht in beispielierten Dokumenten Erhöhen der Anzahl oder des Änderungsmodus
Wenige Partitionsergebnisse Falscher Partitionsschlüssel Angeben des richtigen Schlüsselpfads
Langsames Zeitsampling Großes Dataset Reduzieren von Gruppen oder Tagen

Bewährte Methoden

  • Mit TopNExtractor beginnen
  • Verwenden des Versionssteuerelements zum Diffieren von Schemaänderungen
  • Führen Sie für kritische Auflistungen mehrere Durchläufe mit unterschiedlichen Parametern aus.