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 |
次のいずれか: TopNExtractor、 EligibleDataSampler、 TimePartitionedSampler |
-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
オプション: TopNExtractor、 EligibleDataSampler、 TimePartitionedSampler 既定値: 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
構成ファイルのパス。 省略した場合:
-
dab-config.<DAB_ENVIRONMENT>.jsonenv var が設定されている場合 - 然も無くば
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 から始める
- バージョン管理を使用してスキーマの変更を差分する
- 重要なコレクションの場合は、異なるパラメーターを使用して複数のパスを実行します