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 uno schema da dati Cosmos DB per NoSQL 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 Yes 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 Limitare i record più recenti di N giorni
--sampling-group-count <int> NO Solo per TimePartitionedSampler
-c, --config <file> NO Specifica di Env o dab-config.json Percorso del file di configurazione

Comportamento

Mode Description
Esportare lo schema esistente Avvia un runtime temporaneo, introspetta lo schema GraphQL, scrive il file
Generare lo schema Esempi di documenti e inferi dello schema di Cosmos DB

Lo schema vuoto genera un errore: "Lo schema GraphQL generato è vuoto. Assicurarsi 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 quando le partizioni hanno uno schema diverso

TimePartitionedSampler

  • Suddivide min/max _ts in gruppi di tempo
  • N documenti per gruppo
  • --sampling-group-count Obbligatorio

Usare quando lo schema si evolve nel tempo

Annotazioni

Maggiore utilizzo di risorse a causa di più query.

Options

--graphql

Abilita l'esportazione dello schema. Senza di esso, non succede nulla.

-o, --output

Directory per il file di schema. Creato se mancante.

-g, --graphql-schema-file

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

--generate

  • false (impostazione predefinita): Avvia runtime, schema introspettivo
  • true: Generare lo schema dai dati di Cosmos DB

-m, --sampling-mode

Opzioni: TopNExtractor, EligibleDataSampler, TimePartitionedSampler Impostazione predefinita: TopNExtractor

-n, --sampling-count

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

--sampling-partition-key-path

Percorso della chiave di partizione per EligibleDataSampler

-d, --sampling-days

Filtrare i documenti in base alla recency (giorni)

--sampling-group-count

Numero di gruppi di tempo per TimePartitionedSampler

-c, --config

Percorso del file di configurazione. Se omesso:

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

Codici restituiti

Codice Meaning
0 Esportazione completata
Diverso da zero 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.graphql \
  --generate \
  --sampling-mode TopNExtractor \
  --sampling-count 15

Utilizzo di file generato

Aggiornare la configurazione:

{
  "data-source": {
    "database-type": "cosmosdb_nosql"
  },
  "runtime": {
    "graphql": {
      "enabled": true,
      "schema-file": "schema.gql"
    }
  }
}

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à Stringa di connessione non valida 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