次の方法で共有


export コマンド

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

  • 一時的な DAB ランタイム インスタンスから既存のスキーマをフェッチする
  • サンプリングを使用して cosmos DB から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> いいえ 10 (TimePartitionedSampler) TimePartitionedSamplerのみ
-c, --config <file> いいえ Env 固有または dab-config.json 構成ファイルへのパス

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

行動

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

エクスポート モード ( --generateなし) では、DAB は最初に https://localhost:5001 を試み、 http://localhost:5000にフォールバックします。

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

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

サンプリング モード

TopNExtractor

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

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

EligibleDataSampler

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

さまざまなスキーマを持つパーティションに使用する

TimePartitionedSampler

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

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

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

--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: NoSQL データのAzure Cosmos DBからスキーマを生成する

Important

--generate は、NoSQL構成のAzure 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: 時間グループごと

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

  • TopNExtractor: 10
  • EligibleDataSampler: 5
  • TimePartitionedSampler: 10

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

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

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

  • TopNExtractor: 時間制限なし (既定の 0)
  • EligibleDataSampler: 30
  • TimePartitionedSampler: 10

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 エクスポートに成功しました
-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

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

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

ヒント

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

トラブルシューティング

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

ベスト プラクティス

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