Condividi tramite


export comando

Esportare o generare un file di schema GraphQL e salvarlo su disco. Sono supportate due modalità:

  • Recuperare lo schema esistente da un'istanza di runtime DAB temporanea
  • Generare lo schema da Cosmos DB per NoSQL dati usando il campionamento

Sintassi

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

Importante

Richiede una configurazione DAB valida. Il tipo di database viene letto dal file di configurazione. Non viene accettato alcun --database-type flag.

Sguardo rapido

Opzione Obbligatorio Predefinito Si applica
--graphql No* false Deve essere impostato per l'esportazione dello schema
-o, --output <dir> Yes Directory per lo schema di output
-g, --graphql-schema-file <name> NO schema.gql Nome file inserito all'interno del dir di output
--generate NO false Generare lo schema dai dati di Cosmos DB
-m, --sampling-mode <mode> NO TopNExtractor Uno di: TopNExtractor, EligibleDataSampler, TimePartitionedSampler
-n, --sampling-count <int> NO Dipendente dalla modalità Numero di record per modalità
--sampling-partition-key-path <path> NO Solo per EligibleDataSampler
-d, --sampling-days <int> NO Dipendente dalla modalità Limitare i record più recenti di N giorni
--sampling-group-count <int> NO 10 (TimePartitionedSampler) Solo per TimePartitionedSampler
-c, --config <file> NO Specifica di Env o dab-config.json Percorso del file di configurazione

* --graphql non è un parser obbligatorio, ma l'esportazione non riesce a meno che non venga specificato.

Comportamento

Mode Description
Esportare lo schema esistente Avvia un runtime temporaneo, introspetta lo schema GraphQL e scrive il file
Generare lo schema Esempi Azure Cosmos DB per NoSQL documenti e schemi di inferenza

In modalità di esportazione (senza --generate), DAB tenta https://localhost:5001 prima di tutto e esegue il fallback a http://localhost:5000.

La modalità di esportazione ritenta il recupero dello schema fino a cinque volte. La modalità di generazione usa un singolo tentativo.

Lo schema vuoto genera un errore: "Lo schema GraphQL generato è vuoto. Verificare che i dati siano disponibili per generare lo schema."

Modalità di campionamento

TopNExtractor

  • Esempi N documenti recenti
  • Filtro ora facoltativo con --sampling-days

Usare per set di dati uniformi di dimensioni inferiori

EligibleDataSampler

  • Campionamento compatibile con le partizioni
  • N documenti per partizione
  • --sampling-partition-key-path opzionale

Usare per le partizioni con schemi diversi

TimePartitionedSampler

  • Suddivide min/max _ts in gruppi di tempo
  • N documenti per gruppo
  • --sampling-group-count facoltativo (impostazione predefinita 10)

Usare quando lo schema si evolve nel tempo

Annotazioni

Maggiore utilizzo di risorse a causa di più query.

--graphql

Abilita l'esportazione dello schema. Senza di esso, esportare registra un errore e non genera un file di schema.

Example

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

-o, --output

Directory per il file di schema. Creato se mancante.

Example

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

-g, --graphql-schema-file

Solo nome file di output, il valore predefinito è schema.gql.

Example

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

--generate

  • false (impostazione predefinita): Avvia runtime, schema introspettivo
  • true: generare lo schema da Azure Cosmos DB per i dati di NoSQL

Importante

--generate è supportato solo con Azure Cosmos DB per la configurazione di NoSQL.

Example

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

-m, --sampling-mode

Opzioni: TopNExtractor, EligibleDataSampler, TimePartitionedSampler Impostazione predefinita: TopNExtractor

Example

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

-n, --sampling-count

  • TopNExtractor: documenti totali
  • EligibleDataSampler: per partizione
  • TimePartitionedSampler: per gruppo di tempo

Le impostazioni predefinite dipendono dalla modalità:

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

Example

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

--sampling-partition-key-path

Percorso della chiave di partizione per EligibleDataSampler

Example

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

-d, --sampling-days

Filtrare i documenti in base alla recency (giorni)

Le impostazioni predefinite dipendono dalla modalità:

  • TopNExtractor: nessun limite di tempo (impostazione predefinita 0)
  • EligibleDataSampler: 30
  • TimePartitionedSampler: 10

Example

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

--sampling-group-count

Numero di gruppi di tempo per TimePartitionedSampler

Example

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

-c, --config

Percorso del file di configurazione. Se omesso:

  1. dab-config.<DAB_ENVIRONMENT>.json se è impostato env var
  2. Altrimenti dab-config.json

Example

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

--help

Visualizzare la schermata della Guida.

Example

dab export --help

--version

Visualizzare le informazioni sulla versione.

Example

dab export --version

Codici restituiti

Codice Meaning
0 Esportazione completata
-1 Esportazione non riuscita

Esempi

Esportare lo schema esistente

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

Genera schema (TopNExtractor)

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

Campionamento compatibile con le partizioni

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

Campionamento basato sul tempo

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

Nome file di output personalizzato

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

Utilizzo di file generato

Impostare data-source.options.schema sul percorso del file dello schema esportato. Per altre informazioni, vedere Configurazione dell'origine dati.

Suggerimento

Eseguire il commit dello schema generato una volta stabile. Eseguire di nuovo se il modello di dati cambia.

Risoluzione dei problemi

Sintomo Motivo Correzione
Schema vuoto Dati non sufficienti o non sufficienti Aggiungere dati rappresentativi
Errore di connettività Connection string non valido Correggere le credenziali o la rete
Campi mancanti Non nella documentazione campionata Aumentare il numero o la modalità di modifica
Pochi risultati della partizione Chiave di partizione errata Specificare il percorso della chiave corretto
Campionamento a tempo lento Set di dati di grandi dimensioni Ridurre i gruppi o i giorni

Procedure consigliate

  • Iniziare con TopNExtractor
  • Usare il controllo della versione per diffire le modifiche dello schema
  • Per le raccolte critiche, eseguire più passaggi con parametri diversi