다음을 통해 공유


export 명령

GraphQL 스키마 파일을 내보내거나 생성하여 디스크에 저장합니다. 다음 두 가지 모드가 지원됩니다.

  • 임시 DAB 런타임 인스턴스에서 기존 스키마 가져오기
  • 샘플링을 사용하여 NoSQL 데이터에 대한 Cosmos DB에서 스키마 생성

Syntax

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

중요합니다

유효한 DAB 구성이 필요합니다. 데이터베이스 형식은 구성 파일에서 읽습니다. 플래그가 허용되지 않습니다 --database-type .

한눈에 보기

Option 필수 Default 적용
--graphql Yes false 스키마 내보내기용으로 설정해야 합니다.
-o, --output <dir> Yes 출력 스키마에 대한 디렉터리
-g, --graphql-schema-file <name> 아니오 schema.gql 출력 dir 내에 배치된 파일 이름
--generate 아니오 false Cosmos DB 데이터에서 스키마 생성
-m, --sampling-mode <mode> 아니오 TopNExtractor 다음 중 하나: TopNExtractor, EligibleDataSamplerTimePartitionedSampler
-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 구성 파일 경로

행동

Mode Description
기존 스키마 내보내기 임시 런타임을 시작하고, GraphQL 스키마를 검색하고, 파일을 씁니다.
스키마 생성 Cosmos DB 문서 샘플 및 스키마 유추

빈 스키마로 인해 오류가 발생합니다. "생성된 GraphQL 스키마가 비어 있습니다. 스키마를 생성하는 데 데이터를 사용할 수 있는지 확인하세요."

샘플링 모드

TopNExtractor

  • 샘플 N 최근 문서
  • 선택적 시간 필터 --sampling-days

더 작고 균일한 데이터 세트에 사용

EligibleDataSampler

  • 파티션 인식 샘플링
  • 파티션당 N 문서
  • --sampling-partition-key-path 선택적

파티션에 다양한 스키마가 있는 경우 사용

TimePartitionedSampler

  • 최소/최대 _ts 값을 시간 그룹으로 분할
  • 그룹당 N개 문서
  • --sampling-group-count 필수

시간이 지남에 따라 스키마가 발전할 때 사용

비고

여러 쿼리로 인해 리소스를 많이 사용합니다.

Options

--graphql

스키마 내보내기 사용 그것없이, 아무것도 발생하지 않습니다.

-o, --output

스키마 파일의 디렉터리입니다. 누락된 경우 생성됩니다.

-g, --graphql-schema-file

출력 파일 이름만, 기본값은 .입니다 schema.gql.

--generate

  • false(기본값): 런타임 시작, 내성 스키마
  • true: Cosmos DB 데이터에서 스키마 생성

-m, --sampling-mode

옵션: TopNExtractor, EligibleDataSampler, TimePartitionedSampler 기본값: TopNExtractor

-n, --sampling-count

  • TopNExtractor: 총 문서
  • EligibleDataSampler: 파티션당
  • TimePartitionedSampler: 시간별 그룹

--sampling-partition-key-path

EligibleDataSampler에 대한 파티션 키 경로

-d, --sampling-days

회신을 통해 문서 필터링(일)

--sampling-group-count

TimePartitionedSampler의 시간 그룹 수

-c, --config

구성 파일 경로입니다. 생략된 경우:

  1. dab-config.<DAB_ENVIRONMENT>.json env var이 설정된 경우
  2. 그렇지 않으면 dab-config.json

반환 코드

코드 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

생성된 파일 사용

업데이트 구성:

{
  "data-source": {
    "database-type": "cosmosdb_nosql"
  },
  "runtime": {
    "graphql": {
      "enabled": true,
      "schema-file": "schema.gql"
    }
  }
}

팁 (조언)

생성된 스키마를 안정적으로 커밋합니다. 데이터 모델이 변경되면 다시 실행합니다.

Troubleshooting

증상 원인 수정
빈 스키마 데이터 없음 또는 부족 대표 데이터 추가
연결 오류 잘못된 연결 문자열 자격 증명 또는 네트워크 수정
필드 누락 샘플링된 문서에 없음 개수 늘리기 또는 변경 모드
몇 가지 파티션 결과 잘못된 파티션 키 올바른 키 경로 제공
느린 시간 샘플링 큰 데이터 세트 그룹 또는 일 줄이기

모범 사례

  • TopNExtractor 시작
  • 버전 제어를 사용하여 스키마 변경 내용 차이 제거
  • 중요한 컬렉션의 경우 다른 매개 변수를 사용하여 여러 패스를 실행합니다.