次の方法で共有


export コマンド

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

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

構文

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

Important

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

チラッ

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

行動

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

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

サンプリング モード

TopNExtractor

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

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

EligibleDataSampler

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

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

TimePartitionedSampler

  • 最小/最大 _ts を時間グループに分割します
  • グループごとに N 個のドキュメント
  • --sampling-group-count 必須

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

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

--graphql

スキーマのエクスポートを有効にします。 それがなければ、何も起こりません。

Example

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

-o, --output

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

Example

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

-g, --graphql-schema-file

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

Example

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

--generate

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

Example

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

-m, --sampling-mode

オプション: TopNExtractorEligibleDataSamplerTimePartitionedSampler 既定値: TopNExtractor

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. dab-config.<DAB_ENVIRONMENT>.json env var が設定されている場合
  2. 然も無くば dab-config.json

Example

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

--help

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

Example

dab export --help

--version

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

Example

dab export --version

リターン コード

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

例示

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

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.graphql \
  --generate \
  --sampling-mode TopNExtractor \
  --sampling-count 15

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

エクスポートしたスキーマ ファイルパスに runtime.graphql.schema を設定します。 詳細については、「 ランタイム構成」を参照してください。

ヒント

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

トラブルシューティング

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

ベスト プラクティス

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