Bagikan melalui


export perintah

Ekspor atau hasilkan file skema GraphQL dan simpan ke disk. Dua mode didukung:

  • Mengambil skema yang ada dari instans runtime DAB sementara
  • Hasilkan skema dari Cosmos DB untuk data NoSQL menggunakan pengambilan sampel

Syntax

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

Penting

Memerlukan konfigurasi DAB yang valid. Jenis database dibaca dari file konfigurasi. Tidak ada --database-type bendera yang diterima.

Sekilas

Option Diperlukan Bawaan Berlaku
--graphql Yes false Harus diatur untuk ekspor skema
-o, --output <dir> Yes Direktori untuk skema output
-g, --graphql-schema-file <name> Tidak. schema.gql Nama file ditempatkan di dalam dir output
--generate Tidak. false Hasilkan skema dari data Cosmos DB
-m, --sampling-mode <mode> Tidak. TopNExtractor Salah satu dari: TopNExtractor, EligibleDataSampler, TimePartitionedSampler
-n, --sampling-count <int> Tidak. Bergantung pada mode Jumlah rekaman per mode
--sampling-partition-key-path <path> Tidak. Hanya untuk EligibleDataSampler
-d, --sampling-days <int> Tidak. Membatasi rekaman yang lebih baru dari N hari
--sampling-group-count <int> Tidak. Hanya untuk TimePartitionedSampler
-c, --config <file> Tidak. Khusus env atau dab-config.json Jalur ke file konfigurasi
--help Tidak. Tampilkan layar bantuan
--version Tidak. Tampilkan informasi versi

Perilaku

Pengaturan Description
Mengekspor skema yang ada Memulai runtime sementara, introspiksi skema GraphQL, menulis file
Hasilkan skema Sampel dokumen Cosmos DB dan skema infer

Skema kosong mengakibatkan kesalahan: "Skema GraphQL yang dihasilkan kosong. Pastikan data tersedia untuk menghasilkan skema."

Mode pengambilan sampel

TopNExtractor

  • Sampel N dokumen terbaru
  • Filter waktu opsional dengan --sampling-days

Gunakan untuk himpunan data yang lebih kecil dan seragam

EligibleDataSampler

  • Pengambilan sampel sadar partisi
  • Dokumen N per partisi
  • --sampling-partition-key-path fakultatif

Gunakan saat partisi memiliki skema yang bervariasi

TimePartitionedSampler

  • Membagi min/maks _ts ke dalam grup waktu
  • Dokumen N per grup
  • --sampling-group-count Diperlukan

Gunakan saat skema berevolusi dari waktu ke waktu

Nota

Lebih banyak sumber daya intensif karena beberapa kueri.

--graphql

Mengaktifkan ekspor skema. Tanpa itu, tidak ada yang terjadi.

Example

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

-o, --output

Direktori untuk file skema. Dibuat jika hilang.

Example

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

-g, --graphql-schema-file

Nama file output saja, default ke schema.gql.

Example

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

--generate

  • false (default): Mulai runtime, skema introspek
  • true: Hasilkan skema dari data Cosmos DB

Example

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

-m, --sampling-mode

Opsi: TopNExtractor, EligibleDataSampler, TimePartitionedSampler Default: TopNExtractor

Example

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

-n, --sampling-count

  • TopNExtractor: total dokumen
  • EligibleDataSampler: per partisi
  • TimePartitionedSampler: per grup waktu

Example

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

--sampling-partition-key-path

Jalur kunci partisi untuk EligibleDataSampler

Example

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

-d, --sampling-days

Memfilter dokumen menurut resensi (hari)

Example

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

--sampling-group-count

Jumlah grup waktu untuk TimePartitionedSampler

Example

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

-c, --config

Jalur file konfigurasi. Jika dihilangkan:

  1. dab-config.<DAB_ENVIRONMENT>.json jika env var diatur
  2. Sebaliknya dab-config.json

Example

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

--help

Tampilkan layar bantuan.

Example

dab export --help

--version

Tampilkan informasi versi.

Example

dab export --version

Mengembalikan kode

Kode Meaning
0 Ekspor berhasil
Bukan nol Ekspor gagal

Examples

Mengekspor skema yang ada

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

Hasilkan skema (TopNExtractor)

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

Pengambilan sampel sadar partisi

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

Pengambilan sampel berbasis waktu

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

Nama file output kustom

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

Penggunaan file yang dihasilkan

Atur runtime.graphql.schema ke jalur file skema yang diekspor. Untuk informasi selengkapnya, lihat Konfigurasi runtime.

Petunjuk / Saran

Terapkan skema yang dihasilkan setelah stabil. Jalankan kembali jika model data berubah.

Troubleshooting

Gejala Penyebab Perbaiki
Skema kosong Tidak ada atau tidak cukup data Menambahkan data perwakilan
Kesalahan konektivitas String koneksi buruk Memperbaiki kredensial atau jaringan
Bidang yang hilang Tidak dalam dokumen sampel Meningkatkan mode hitungan atau perubahan
Beberapa hasil partisi Kunci partisi salah Berikan jalur kunci yang benar
Pengambilan sampel waktu lambat Himpunan data besar Mengurangi grup atau hari

Praktik terbaik

  • Mulai dengan TopNExtractor
  • Gunakan kontrol versi untuk membedakan perubahan skema
  • Untuk koleksi penting, jalankan beberapa pass dengan parameter yang berbeda