次の方法で共有


コマンド

GraphQL スキーマ ファイルをエクスポートまたは生成し、ディスクに保存します。 次の 2 つのモードがサポートされています。

  • 一時的な DAB ランタイム インスタンスから既存のスキーマをフェッチする
  • サンプリングを使用して cosmos DB からNoSQL データのスキーマを生成する

構文

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

Important

有効な DAB 構成が必要です。データベースの種類は構成ファイルから読み取られます。 フラグは使用できません。

チラッ

Option 必須 既定値 適用
--graphql いいえ* false スキーマのエクスポートに設定する必要があります
-o, --output <dir> イエス 出力スキーマのディレクトリ
-g, --graphql-schema-file <name> いいえ schema.gql 出力ディレクトリ内に配置されたファイル名
--generate いいえ false Cosmos DB データからスキーマを生成する
-m, --sampling-mode <mode> いいえ TopNExtractor 次のいずれか: 、 、
-n, --sampling-count <int> いいえ モード依存 モードあたりのレコード数
--sampling-partition-key-path <path> いいえ のみ
-d, --sampling-days <int> いいえ モード依存 N 日より新しいレコードに制限する
--sampling-group-count <int> いいえ (TimePartitionedSampler) のみ
-c, --config <file> いいえ Env 固有または 構成ファイルへのパス
--help いいえ ヘルプ画面を表示する
--version いいえ バージョン情報の表示

はパーサーが必要ではありませんが、指定しない限りエクスポートは失敗します。

行動

Mode Description
既存のスキーマをエクスポートする 一時ランタイムを開始し、GraphQL スキーマをイントロスペクトし、ファイルを書き込みます
スキーマの生成 NoSQL ドキュメントと推論スキーマのサンプル Azure Cosmos DB

エクスポート モード ( なし) では、DAB は最初に を試み、 にフォールバックします。

エクスポート モードでは、スキーマの取得が最大 5 回再試行されます。 生成モードでは、1 回の試行が使用されます。

空のスキーマの結果、"生成された GraphQL スキーマは空です。 スキーマを生成するためにデータを使用できることを確認してください。

サンプリング モード

TopNExtractor

  • サンプル N 最近使用したドキュメント
  • オプションの時間フィルター

より小さい、均一なデータセットに使用する

EligibleDataSampler

  • パーティション対応サンプリング
  • パーティションあたりの N 個のドキュメント
  • 省略可能

パーティションにさまざまなスキーマがある場合に使用する

TimePartitionedSampler

  • 最小/最大 を時間グループに分割します
  • グループごとに N 個のドキュメント
  • 省略可能 (既定の )

スキーマが時間の経過と同時に進化する場合に使用する

複数のクエリが原因でリソースを集中的に消費する。

--graphql

スキーマのエクスポートを有効にします。 これを指定しないと、エクスポートによってエラーがログに記録され、スキーマ ファイルは生成されません。

Example

  • バッシュ
  • コマンド プロンプト
dab export \
  --graphql \
  -o ./schema-out

-o, --output

スキーマ ファイルのディレクトリ。 存在しない場合に作成されます。

Example

  • バッシュ
  • コマンド プロンプト
dab export \
  --graphql \
  -o ./schema-out

-g, --graphql-schema-file

出力ファイル名のみ。既定値は です。

Example

  • バッシュ
  • コマンド プロンプト
dab export \
  --graphql \
  -o ./out \
  -g custom-schema.gql

--generate

  • false (既定値): ランタイムの開始、イントロスペクト スキーマ
  • true: NoSQL データのAzure Cosmos DBからスキーマを生成する

Important

--generate は、NoSQL構成のAzure Cosmos DBでのみサポートされます。

Example

  • バッシュ
  • コマンド プロンプト
dab export \
  --graphql \
  -o ./schema-gen \
  --generate

-m, --sampling-mode

オプション: 、 、 既定値:

Example

  • バッシュ
  • コマンド プロンプト
dab export \
  --graphql \
  -o ./schema-gen \
  --generate \
  --sampling-mode TopNExtractor

-n, --sampling-count

  • TopNExtractor: 合計ドキュメント数
  • EligibleDataSampler: パーティションごと
  • TimePartitionedSampler: 時間グループごと

既定値はモードに依存します。

  • :
  • :
  • :

Example

  • バッシュ
  • コマンド プロンプト
dab export \
  --graphql \
  -o ./schema-gen \
  --generate \
  --sampling-mode TopNExtractor \
  --sampling-count 25

--sampling-partition-key-path

EligibleDataSampler のパーティション キー パス

Example

  • バッシュ
  • コマンド プロンプト
dab export \
  --graphql \
  -o ./schema-partitions \
  --generate \
  --sampling-mode EligibleDataSampler \
  --sampling-partition-key-path /customerId

-d, --sampling-days

ドキュメントを再読み込み (日) でフィルター処理する

既定値はモードに依存します。

  • : 時間制限なし (既定の )
  • :
  • :

Example

  • バッシュ
  • コマンド プロンプト
dab export \
  --graphql \
  -o ./schema-gen \
  --generate \
  --sampling-days 14

--sampling-group-count

TimePartitionedSampler の時間グループの数

Example

  • バッシュ
  • コマンド プロンプト
dab export \
  --graphql \
  -o ./schema-time \
  --generate \
  --sampling-mode TimePartitionedSampler \
  --sampling-group-count 8

-c, --config

構成ファイルのパス。 省略した場合:

  1. env var が設定されている場合
  2. 然も無くば

Example

  • バッシュ
  • コマンド プロンプト
dab export \
  --graphql \
  -o ./schema-out \
  --config ./dab-config.json

--help

ヘルプ画面を表示します。

Example

  • バッシュ
  • コマンド プロンプト
dab export --help

--version

バージョン情報を表示します。

Example

  • バッシュ
  • コマンド プロンプト
dab export --version

リターン コード

Code Meaning
0 エクスポートに成功しました
-1 エクスポートに失敗しました

例示

既存のスキーマをエクスポートする

  • バッシュ
  • コマンド プロンプト
dab export \
  --graphql \
  -o ./schema-out

スキーマの生成 (TopNExtractor)

  • バッシュ
  • コマンド プロンプト
dab export \
  --graphql \
  -o ./schema-gen \
  --generate \
  --sampling-mode TopNExtractor \
  --sampling-count 25 \
  --sampling-days 14

パーティション対応サンプリング

  • バッシュ
  • コマンド プロンプト
dab export \
  --graphql \
  -o ./schema-partitions \
  --generate \
  --sampling-mode EligibleDataSampler \
  --sampling-partition-key-path /customerId \
  --sampling-count 10

時間ベースのサンプリング

  • バッシュ
  • コマンド プロンプト
dab export \
  --graphql \
  -o ./schema-time \
  --generate \
  --sampling-mode TimePartitionedSampler \
  --sampling-group-count 8 \
  --sampling-count 5 \
  --sampling-days 60

カスタム出力ファイル名

  • バッシュ
  • コマンド プロンプト
dab export \
  --graphql \
  -o ./out \
  -g cosmos-schema.gql \
  --generate \
  --sampling-mode TopNExtractor \
  --sampling-count 15

生成されたファイルの使用状況

エクスポートしたスキーマ ファイルパスに を設定します。 詳細については、「 データ ソースの構成」を参照してください。

ヒント

生成されたスキーマを安定した後にコミットします。 データ モデルが変更された場合は再実行します。

トラブルシューティング

症状 原因 修正する
空のスキーマ データが存在しない、または不十分である 代表的なデータを追加する
接続エラー 不適切な接続文字列 資格情報またはネットワークを修正する
欠落しているフィールド サンプリングされたドキュメントに含まれていない カウントまたは変更モードを増やす
パーティションの結果が少ない パーティション キーが間違っている 正しいキー パスを指定する
低速な時間サンプリング 大規模なデータセット グループまたは日数を減らす

ベスト プラクティス

  • TopNExtractor から始める
  • バージョン管理を使用してスキーマの変更を差分する
  • 重要なコレクションの場合は、異なるパラメーターを使用して複数のパスを実行します