共用方式為


export 命令

匯出或產生 GraphQL 結構描述檔案並將其儲存至磁碟。 支援兩種模式:

  • 從暫時 DAB 執行階段執行個體擷取現有的結構描述
  • 使用取樣從 Cosmos DB for NoSQL 資料產生結構描述

語法

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

這很重要

需要有效的 DAB 配置。資料庫類型是從設定檔讀取的。 不接受任何 --database-type 旗標。

快速瀏覽

Option 為必填項目 預設 適用
--graphql Yes 假的 必須設定結構描述匯出
-o, --output <dir> Yes 輸出結構描述的目錄
-g, --graphql-schema-file <name> schema.gql 檔案名稱放置在輸出目錄內
--generate 假的 從 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-specific 或 dab-config.json 設定檔的路徑
--help 顯示說明畫面
--version 顯示版本資訊

行為

Mode Description
匯出現有結構描述 啟動臨時運行時間、自省 GraphQL 結構描述、寫入檔案
產生結構描述 取樣 Cosmos DB 檔並推斷架構

空結構描述會導致錯誤:「產生的GraphQL結構描述是空的。 請確保資料可用於產生結構描述。」

取樣模式

頂部Xtractor

  • 範例 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 匯出成功
非零 匯出失敗

範例

匯出現有結構描述

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 開始
  • 使用版本控制來差異結構描述變更
  • 對於重要集合,請使用不同的參數執行多個階段