Megosztás a következőn keresztül:


export parancs

GraphQL-sémafájl exportálása vagy létrehozása, majd lemezre mentése. Két mód támogatott:

  • Meglévő séma lekérése ideiglenes DAB-futtatókörnyezeti példányból
  • Séma létrehozása a Cosmos DB-ből NoSQL-adatokhoz mintavételezéssel

Szemantika

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

Fontos

Érvényes DAB-konfigurációt igényel. Az adatbázis típusa beolvasva a konfigurációs fájlból. A jelölő nem --database-type fogadható el.

Gyors áttekintés

Lehetőség Kötelező Alapértelmezett Alkalmazza
--graphql Igen false Sémaexportáláshoz be kell állítani
-o, --output <dir> Igen Kimeneti séma könyvtára
-g, --graphql-schema-file <name> Nem schema.gql A kimeneti dirbe helyezett fájlnév
--generate Nem false Séma létrehozása Cosmos DB-adatokból
-m, --sampling-mode <mode> Nem TopNExtractor Az alábbiak egyike: TopNExtractor, , EligibleDataSamplerTimePartitionedSampler
-n, --sampling-count <int> Nem Módfüggő Rekordok száma módonként
--sampling-partition-key-path <path> Nem Csak EligibleDataSampler
-d, --sampling-days <int> Nem Korlátozás az N napnál újabb rekordokra
--sampling-group-count <int> Nem Csak TimePartitionedSampler
-c, --config <file> Nem Env-specifikus vagy dab-config.json Konfigurációs fájl elérési útja

Magatartás

Üzemmód Description
Meglévő séma exportálása Ideiglenes futtatókörnyezet indítása, GraphQL-séma bemutatása, fájl írása
Séma létrehozása Cosmos DB-dokumentumok és -következtetések sémájának mintái

Az üres séma a következő hibaüzenetet eredményezi: "A létrehozott GraphQL-séma üres. Győződjön meg arról, hogy az adatok elérhetők a séma létrehozásához."

Mintavételezési módok

TopNExtractor

  • N legutóbbi dokumentumok mintái
  • Választható időszűrő a --sampling-days

Kisebb, egységes adatkészletekhez használható

EligibleDataSampler

  • Partícióérzékeny mintavételezés
  • N-dokumentumok partíciónként
  • --sampling-partition-key-path szabadon választható

Akkor használható, ha a partíciók különböző sémával rendelkeznek

TimePartitionedSampler

  • Minimális/maximális _ts felosztás időcsoportokra
  • N-dokumentumok csoportonként
  • --sampling-group-count szükséges

Akkor használható, ha a séma idővel fejlődik

Megjegyzés:

Több lekérdezés miatt erőforrás-igényesebb.

Beállítások

--graphql

Engedélyezi a sémaexportálást. Nélküle semmi sem történik.

-o, --output

Sémafájl könyvtára. Ha hiányzik, létrejön.

-g, --graphql-schema-file

Csak kimeneti fájlnév, alapértelmezés szerint a következő.schema.gql

--generate

  • false (alapértelmezett): Futtatókörnyezet indítása, introspect séma
  • igaz: Séma létrehozása Cosmos DB-adatokból

-m, --sampling-mode

Beállítások: TopNExtractor, EligibleDataSamplerAlapértelmezett TimePartitionedSampler : TopNExtractor

-n, --sampling-count

  • TopNExtractor: összes dokumentum
  • EligibleDataSampler: partíciónként
  • TimePartitionedSampler: időcsoportonként

--sampling-partition-key-path

A EligibleDataSampler partíciókulcs-elérési útja

-d, --sampling-days

Dokumentumok szűrése korrektség szerint (nap)

--sampling-group-count

TimePartitionedSampler időcsoportjainak száma

-c, --config

Konfigurációs fájl elérési útja. Ha nincs megadva:

  1. dab-config.<DAB_ENVIRONMENT>.json ha az env var be van állítva
  2. Egyébként dab-config.json

Visszatérési kódok

Kód Meaning
0 Sikeres exportálás
Nem nulla Az exportálás sikertelen

Példák

Meglévő séma exportálása

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

Séma létrehozása (TopNExtractor)

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

Partícióérzékeny mintavételezés

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

Időalapú mintavételezés

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

Egyéni kimeneti fájlnév

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

Generált fájlhasználat

Frissítési konfiguráció:

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

Jótanács

Véglegesítse a létrehozott sémát, ha stabil. Futtassa újra, ha az adatmodell megváltozik.

Hibaelhárítás

Tünet Oka Javítás
Üres séma Nincs vagy nincs elegendő adat Reprezentatív adatok hozzáadása
Csatlakozási hiba Hibás kapcsolati sztring Hitelesítő adatok vagy hálózat javítása
Hiányzó mezők Nincs mintavételezett dokumentumokban A darabszám növelése vagy a mód módosítása
Kevés partícióeredmény Helytelen partíciókulcs Adja meg a megfelelő kulcs elérési útját
Lassú mintavételezés Nagyméretű adatkészlet Csoportok vagy napok csökkentése

Ajánlott eljárások

  • Kezdés a TopNExtractor használatával
  • Sémamódosítások szabályozása verziókövetéssel
  • Kritikus gyűjtemények esetén futtasson több bérletet különböző paraméterekkel