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