Delen via


export opdracht

Exporteer of genereer een GraphQL-schemabestand en sla het op schijf op. Er worden twee modi ondersteund:

  • Bestaand schema ophalen uit een tijdelijk DAB Runtime-exemplaar
  • Schema genereren op basis van Cosmos DB for NoSQL-gegevens met behulp van steekproeven

Syntaxis

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

Belangrijk

Vereist een geldige DAB-configuratie. Het databasetype wordt gelezen uit het configuratiebestand. Er wordt geen --database-type vlag geaccepteerd.

Snelle blik

Optie Verplicht Verstek Geldt
--graphql Yes false Moet worden ingesteld voor schema-export
-o, --output <dir> Yes Map voor uitvoerschema
-g, --graphql-schema-file <name> Nee. schema.gql Bestandsnaam in uitvoermap geplaatst
--generate Nee. false Schema genereren op gegevens van Cosmos DB
-m, --sampling-mode <mode> Nee. TopNExtractor Een van: TopNExtractor, EligibleDataSamplerTimePartitionedSampler
-n, --sampling-count <int> Nee. Modusafhankelijk Aantal records per modus
--sampling-partition-key-path <path> Nee. Alleen voor EligibleDataSampler
-d, --sampling-days <int> Nee. Beperken tot records die nieuwer zijn dan N dagen
--sampling-group-count <int> Nee. Alleen voor TimePartitionedSampler
-c, --config <file> Nee. Env-specifiek of dab-config.json Pad naar configuratiebestand
--help Nee. Het Help-scherm weergeven
--version Nee. Versie-informatie weergeven

Gedrag

Wijze Description
Bestaand schema exporteren Hiermee start u een tijdelijke runtime, inleiding tot het GraphQL-schema, schrijft u het bestand
Schema genereren Voorbeelden van Cosmos DB-documenten en het schema afleiden

Leeg schema resulteert in fout: 'Gegenereerd GraphQL-schema is leeg. Zorg ervoor dat er gegevens beschikbaar zijn om het schema te genereren.

Samplingmodi

TopNExtractor

  • Voorbeelden N recente documenten
  • Optioneel tijdfilter met --sampling-days

Gebruiken voor kleinere, uniforme gegevenssets

EligibleDataSampler

  • Partitiebewuste steekproeven
  • N documenten per partitie
  • --sampling-partition-key-path optioneel

Gebruiken wanneer partities een gevarieerd schema hebben

TimePartitionedSampler

  • Splitst min/max _ts in tijdgroepen
  • N documenten per groep
  • --sampling-group-count Vereist

Gebruik wanneer het schema zich in de loop van de tijd ontwikkelt

Opmerking

Meer resource-intensief vanwege meerdere query's.

--graphql

Hiermee schakelt u schema-export in. Zonder dat gebeurt er niets.

Example

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

-o, --output

Map voor schemabestand. Gemaakt als deze ontbreekt.

Example

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

-g, --graphql-schema-file

Alleen uitvoerbestand, standaard ingesteld op schema.gql.

Example

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

--generate

  • false (standaard): Runtime starten, introspect-schema
  • true: Schema genereren op gegevens van Cosmos DB

Example

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

-m, --sampling-mode

Opties: TopNExtractor, EligibleDataSamplerstandaard TimePartitionedSampler : TopNExtractor

Example

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

-n, --sampling-count

  • TopNExtractor: totaal aantal documenten
  • EligibleDataSampler: per partitie
  • TimePartitionedSampler: per tijdgroep

Example

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

--sampling-partition-key-path

Partitiesleutelpad voor EligibleDataSampler

Example

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

-d, --sampling-days

Documenten filteren op recency (dagen)

Example

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

--sampling-group-count

Aantal tijdgroepen voor TimePartitionedSampler

Example

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

-c, --config

Configuratiebestandspad. Als u dit weglaat:

  1. dab-config.<DAB_ENVIRONMENT>.json als env var is ingesteld
  2. Anders dab-config.json

Example

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

--help

Het Help-scherm weergeven.

Example

dab export --help

--version

Versie-informatie weergeven.

Example

dab export --version

Retourcodes

Code Meaning
0 Exporteren voltooid
Niet-nul Exporteren is mislukt

Voorbeelden

Bestaand schema exporteren

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

Schema genereren (TopNExtractor)

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

Partitiebewuste steekproeven

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

Op tijd gebaseerde steekproeven

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

Bestandsnaam van aangepaste uitvoer

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

Gegenereerd bestandsgebruik

Ingesteld runtime.graphql.schema op het geëxporteerde pad naar het schemabestand. Zie Runtime-configuratie voor meer informatie.

Aanbeveling

Voer het gegenereerde schema eenmaal stabiel door. Voer opnieuw uit als het gegevensmodel wordt gewijzigd.

Probleemoplossingsproces

Symptoom Oorzaak Repareren
Leeg schema Geen of onvoldoende gegevens Representatieve gegevens toevoegen
Connectiviteitsfout Ongeldige verbindingsreeks Referenties of netwerk herstellen
Velden ontbreken Niet in voorbeelddocumenten Aantal- of wijzigingsmodus verhogen
Weinig partitieresultaten Verkeerde partitiesleutel Geef het juiste sleutelpad op
Trage steekproeven Grote gegevensset Groepen of dagen verminderen

Beste praktijken

  • Beginnen met TopNExtractor
  • Versiebeheer gebruiken om schemawijzigingen te wijzigen
  • Voor kritieke verzamelingen voert u meerdere passen uit met verschillende parameters