Docs Menu
Docs Home
/
MongoDB Atlas
/ / /

create

이 페이지의 내용

  • 구문
  • 매개변수
  • 출력
  • 예시
  • 컬렉션 검증
  • 오류 문제 해결

create 명령은 연합 데이터베이스 인스턴스 저장 구성의 기존 stores 또는 컬렉션 의 보기 에 대한 컬렉션 을 만듭니다.

와일드카드 "*" 는 두 가지 방법으로 create 명령과 함께 사용할 수 있습니다.

  • 지정된 stores 연합 데이터베이스 인스턴스 저장소의 파일 및 폴더에 매핑되는 collection을 동적으로 생성하기 위한 collection의 이름입니다.

  • path 매개 변수에서 stores 연합 데이터베이스 인스턴스 저장소의 지정된 파일 경로에 있는 여러 파일 및 폴더에 매핑되는 collection을 생성합니다.

collection 또는 뷰를 만드는 방법에 대해 자세히 알아보려면 탭을 클릭하세요.

이 탭에는 collection을 생성하기 위한 구문과 매개 변수가 포함되어 있습니다. 해당 연합 데이터베이스 인스턴스 저장소의 구문 및 매개변수에 대해 자세히 알아보려면 해당 연합 데이터베이스 인스턴스 저장소의 탭을 선택합니다.

이 탭 에는 S3 연합 데이터베이스 인스턴스 저장 에 대한 컬렉션 을 만들기 위한 구문과 매개 변수가 포함되어 있습니다.

이 탭 에는 Azure 연합 데이터베이스 인스턴스 저장 에 대한 컬렉션 을 만들기 위한 구문과 매개 변수가 포함되어 있습니다.

이 탭 에는 Google Cloud Platform 연합 데이터베이스 인스턴스 저장 에 대한 컬렉션 을 만들기 위한 구문과 매개변수가 포함되어 있습니다.Google Cloud Platform

이 탭에는 연합 데이터베이스 인스턴스 저장소에 대한 컬렉션을 생성하기 위한 구문과 매개 변수가 포함되어 있습니다.

이 탭 에는 HTTP 연합 데이터베이스 인스턴스 저장 에 대한 컬렉션 을 만들기 위한 구문과 매개 변수가 포함되어 있습니다.

이 탭 에는 Online 보관 연합 데이터베이스 인스턴스 저장 에 대한 컬렉션 을 만들기 위한 구문과 매개 변수가 포함되어 있습니다.

이 탭 에는 파이프라인 내부의 SQL 성명서 을 통해 지정하는 소스 컬렉션 또는 컬렉션 에 대한 뷰를 만들기 위한 구문과 매개 변수가 포함되어 있습니다.

이 탭 에서는 다른 컬렉션 에서 집계 파이프라인 을 실행하는 표준 보기를 만들기 위한 구문과 매개변수에 대해 설명합니다.

이 탭 에서는 $sql 단계를 사용하여 SQL 뷰를 만들기 위한 구문과 매개 변수에 대해 설명합니다.

db.runCommand({ "create" : "<collection-name>|*", "dataSources" : [{ "storeName" : "<store-name>", "path" : "<path-to-files-or-folders>", "defaultFormat" : "<file-extension>", "omitAttributes": <boolean> }]})
db.runCommand({ "create" : "<collection-name>|*", "dataSources" : [{ "storeName" : "<store-name>", "path" : "<path-to-files-or-folders>", "defaultFormat" : "<file-extension>", "omitAttributes": <boolean> }]})
db.runCommand({ "create" : "<collection-name>|*", "dataSources" : [{ "storeName" : "<store-name>", "path" : "<path-to-files-or-folders>", "defaultFormat" : "<file-extension>", "omitAttributes": <boolean> }]})
db.runCommand({ "create" : "<collection-name>"|"*", "dataSources" : [{ "storeName" : "<store-name>", "database" : "<atlas-database-name>", "collection" : "<atlas-collection-name>" | "collectionRegex": "<regex-pattern>" }]})
db.runCommand({ "create" : "<collection-name>", "dataSources" : [{ "storeName" : "<store-name>", "allowInsecure" : true|false, "urls" : [ "<url>" ], "defaultFormat" : "<file-extension>" }]})
db.runCommand({ "create" : "<collection-name>|*", "dataSources" : [{ "storeName" : "<store-name>", "datasetName" : "<online-archive-dataset-name>", "datasetPrefix": "<prefix-name>", "trimLevel" : <trim-number>, "maxDatasets": <maximum-number-of-datasets> }]})
db.runCommand({ "create" : "<view-name>", "viewOn" :" <collection-name>", "pipeline" : ["<stage1>","<stage2>",...] })
db.runCommand({ "create" : "<view-name>", "pipeline" : ["$sql": {"statement": "<SQL-statement>", "excludeNamespaces": true | false ]} })
Parameter
유형
설명
필요성

<collection-name>|*

문자열

Data Federation이 연합 데이터베이스 인스턴스 저장소에 포함된 데이터를 매핑하는 컬렉션의 이름이거나 컬렉션을 동적으로 생성하기 위한 와일드카드 "*" 입니다.

컬렉션 이름에 * 를 지정하고 dataSources.collection 필드에 collectionName() 함수를 지정하여 파일 경로에서 컬렉션 이름을 동적으로 생성할 수 있습니다. 기본적으로 Atlas Data Federation은 최대 100 와일드카드 collection을 생성합니다. Atlas Data Federation이 databases.[n].maxWildcardCollections 매개 변수를 사용하여 자동으로 생성하는 최대 와일드카드 collection 수를 사용자 지정할 수 있습니다. 각 와일드카드 collection에는 dataSource 하나만 포함할 수 있습니다.

필수 사항

dataSources

객체

각 객체가 연합 데이터베이스 인스턴스를 나타내는 객체 배열로, collection과 매핑할 stores 배열에 저장합니다.

필수 사항

dataSources.storeName

문자열

컬렉션에 매핑할 연합 데이터베이스 인스턴스 저장소의 이름입니다. 값은 stores 배열의 stores.[n].name 과 일치해야 합니다.

필수 사항

dataSources.path

문자열

파일 및 폴더의 경로입니다. prefix 경로의 모든 파일과 폴더를 캡처하려면 / 을 지정합니다. 자세한 내용 은 S3 데이터의 경로 정의 를 참조하세요.

필수 사항

dataSources.defaultFormat

문자열

연합 데이터베이스 인스턴스 저장소를 쿼리하는 동안 확장자가 없는 파일을 발견할 경우 Data Federation이 기본값으로 사용할 형식입니다. 유효한 값은 다음과 같습니다.

.json, .json.gz, .bson, .bson.gz, .avro, .avro.gz, .orc, .tsv, .tsv.gz, .csv, .csv.gz, .parquet

이를 생략할 경우 Data Federation은 일부 파일 바이트를 처리하여 파일 형식을 감지하려고 시도합니다.

옵션

dataSources.omitAttributes

부울

Atlas Data Federation 이 컬렉션 에 추가하는 속성(키 및 값 쌍)을 생략할지 여부를 지정하는 플래그입니다. 다음 값 중 하나를 지정할 수 있습니다.

  • false - 속성 추가

  • true - 속성 생략

생략하면 기본적으로 false가 설정되고 Atlas Data Federation이 속성을 추가합니다.

옵션

Parameter
유형
설명
필요성

<collection-name>|*

문자열

Data Federation이 연합 데이터베이스 인스턴스 저장소에 포함된 데이터를 매핑하는 컬렉션의 이름이거나 컬렉션을 동적으로 생성하기 위한 와일드카드 "*" 입니다.

컬렉션 이름에 * 를 지정하고 dataSources.collection 필드에 collectionName() 함수를 지정하여 파일 경로에서 컬렉션 이름을 동적으로 생성할 수 있습니다. 기본적으로 Atlas Data Federation은 최대 100 와일드카드 collection을 생성합니다. Atlas Data Federation이 databases.[n].maxWildcardCollections 매개 변수를 사용하여 자동으로 생성하는 최대 와일드카드 collection 수를 사용자 지정할 수 있습니다. 각 와일드카드 collection에는 dataSource 하나만 포함할 수 있습니다.

필수 사항

dataSources

객체

각 객체가 연합 데이터베이스 인스턴스를 나타내는 객체 배열로, collection과 매핑할 stores 배열에 저장합니다.

필수 사항

dataSources.storeName

문자열

컬렉션에 매핑할 연합 데이터베이스 인스턴스 저장소의 이름입니다. 값은 stores 배열의 stores.[n].name 과 일치해야 합니다.

필수 사항

dataSources.path

문자열

파일 및 폴더의 경로입니다. prefix 경로의 모든 파일과 폴더를 캡처하려면 / 을 지정합니다. 자세한 내용 은 S3 데이터의 경로 정의 를 참조하세요.

필수 사항

dataSources.defaultFormat

문자열

연합 데이터베이스 인스턴스 저장소를 쿼리하는 동안 확장자가 없는 파일을 발견할 경우 Data Federation이 기본값으로 사용할 형식입니다. 유효한 값은 다음과 같습니다.

.json, .json.gz, .bson, .bson.gz, .avro, .avro.gz, .orc, .tsv, .tsv.gz, .csv, .csv.gz, .parquet

이를 생략할 경우 Data Federation은 일부 파일 바이트를 처리하여 파일 형식을 감지하려고 시도합니다.

옵션

dataSources.omitAttributes

부울

Atlas Data Federation 이 컬렉션 에 추가하는 속성(키 및 값 쌍)을 생략할지 여부를 지정하는 플래그입니다. 다음 값 중 하나를 지정할 수 있습니다.

  • false - 속성 추가

  • true - 속성 생략

생략하면 기본적으로 false가 설정되고 Atlas Data Federation이 속성을 추가합니다.

옵션

Parameter
유형
설명
필요성

<collection-name>|*

문자열

Data Federation이 연합 데이터베이스 인스턴스 저장소에 포함된 데이터를 매핑하는 컬렉션의 이름이거나 컬렉션을 동적으로 생성하기 위한 와일드카드 "*" 입니다.

컬렉션 이름에 * 를 지정하고 dataSources.collection 필드에 collectionName() 함수를 지정하여 파일 경로에서 컬렉션 이름을 동적으로 생성할 수 있습니다. 기본적으로 Atlas Data Federation은 최대 100 와일드카드 collection을 생성합니다. Atlas Data Federation이 databases.[n].maxWildcardCollections 매개 변수를 사용하여 자동으로 생성하는 최대 와일드카드 collection 수를 사용자 지정할 수 있습니다. 각 와일드카드 collection에는 dataSource 하나만 포함할 수 있습니다.

필수 사항

dataSources

객체

각 객체가 연합 데이터베이스 인스턴스를 나타내는 객체 배열로, collection과 매핑할 stores 배열에 저장합니다.

필수 사항

dataSources.storeName

문자열

컬렉션에 매핑할 연합 데이터베이스 인스턴스 저장소의 이름입니다. 값은 stores 배열의 stores.[n].name 과 일치해야 합니다.

필수 사항

dataSources.path

문자열

파일 및 폴더의 경로입니다. prefix 경로의 모든 파일과 폴더를 캡처하려면 / 을 지정합니다. 자세한 내용 은 S3 데이터의 경로 정의 를 참조하세요.

필수 사항

dataSources.defaultFormat

문자열

연합 데이터베이스 인스턴스 저장소를 쿼리하는 동안 확장자가 없는 파일을 발견할 경우 Data Federation이 기본값으로 사용할 형식입니다. 유효한 값은 다음과 같습니다.

.json, .json.gz, .bson, .bson.gz, .avro, .avro.gz, .orc, .tsv, .tsv.gz, .csv, .csv.gz, .parquet

이를 생략할 경우 Data Federation은 일부 파일 바이트를 처리하여 파일 형식을 감지하려고 시도합니다.

옵션

dataSources.omitAttributes

부울

Atlas Data Federation 이 컬렉션 에 추가하는 속성(키 및 값 쌍)을 생략할지 여부를 지정하는 플래그입니다. 다음 값 중 하나를 지정할 수 있습니다.

  • false - 속성 추가

  • true - 속성 생략

생략하면 기본적으로 false가 설정되고 Atlas Data Federation이 속성을 추가합니다.

옵션

Parameter
유형
설명
필요성

<collection-name>|*

문자열

Data Federation이 연합 데이터베이스 인스턴스 저장소에 포함된 데이터를 매핑하는 컬렉션의 이름이거나 컬렉션을 동적으로 생성하기 위한 와일드카드 "*" 입니다.

컬렉션 이름에 * 를 지정하고 dataSources.collection 매개변수를 생략하여 컬렉션 이름을 동적으로 생성할 수 있습니다.

동적으로 생성된 데이터베이스의 경우 컬렉션 이름에 * 를 지정하고 다음 매개변수를 생략하여 와일드카드 컬렉션을 생성할 수 있습니다.

  • dataSources.collection

  • dataSources.database

와일드카드(*) 컬렉션의 경우 dataSources.collectionRegex 매개변수를 사용하여 정규식 패턴 과 일치하는 이름의 컬렉션을 생성할 수 있습니다.

필수 사항

dataSources

객체

각 객체가 연합 데이터베이스 인스턴스를 나타내는 객체 배열로, collection과 매핑할 stores 배열에 저장합니다.

필수 사항

dataSources.storeName

문자열

컬렉션에 매핑할 연합 데이터베이스 인스턴스 저장소의 이름입니다. 값은 stores 배열의 stores.[n].name 과 일치해야 합니다.

필수 사항

dataSources.database

문자열

Atlas cluster 의 컬렉션 이 포함된 데이터베이스 의 이름입니다. 동적으로 생성된 데이터베이스에 대한 와일드카드(*) 컬렉션을 생성하려면 이 매개변수를 생략해야 합니다.

조건부

dataSources.collection

문자열

Atlas 데이터베이스 에 있는 컬렉션 의 이름입니다. 와일드카드(*) 컬렉션 을 만들려면 이 매개변수를 생략해야 합니다.

조건부

dataSources.collectionRegex

문자열

와일드카드(*) 컬렉션 을 만드는 데 사용할 정규식 패턴 입니다. 정규식 구문에 학습 보려면 고 (Go) 프로그래밍 언어 를 참조하세요.

와일드카드(*) 컬렉션 이름에 정규식 패턴을 사용하려면 dataSources.collection 매개변수를 지정하지 않아야 합니다.

옵션

Parameter
유형
설명
필요성

<collection-name>

문자열

Atlas Data Federation 이 연합 데이터베이스 인스턴스 저장 에 포함된 데이터를 매핑하는 컬렉션 의 이름입니다. * 을(를) 지정하여 컬렉션 이름을 동적으로 생성할 수 없습니다.

필수 사항

dataSources

객체

각 객체가 연합 데이터베이스 인스턴스를 나타내는 객체 배열로, collection과 매핑할 stores 배열에 저장합니다.

필수 사항

dataSources.storeName

문자열

컬렉션에 매핑할 연합 데이터베이스 인스턴스 저장소의 이름입니다. 값은 stores 배열의 stores.[n].name 과 일치해야 합니다.

필수 사항

dataSources.allowInsecure

부울

지정된 URL의 체계의 유효성을 검사합니다. 값은 다음 중 하나일 수 있습니다.

  • true 안전하지 않은 HTTP 체계 허용

  • false 보안 HTTPS 체계만 허용합니다(기본값).

true(참)인 경우 Atlas Data Federation:

  • 서버의 인증서 체인과 호스트 이름을 확인하지 않습니다.

  • 서버에서 제공하는 모든 호스트 이름을 가진 모든 인증서를 수락합니다.

경고: 이 값을 true 로 설정하다 하면 데이터가 중간자(man-in-the-middle) 공격에 취약해져 데이터의 기밀성과 무결성이 손상될 수 있습니다. Atlas Data Federation 을 테스트하고 시작하는 경우에만 이 값을 true 로 설정합니다.

생략하는 경우 기본값은 false입니다.

옵션

dataSources.urls

문자열 배열 또는 빈 배열

공개적으로 액세스할 수 있는 데이터 파일의 URL입니다. 인증 이 필요한 URL은 지정할 수 없습니다. Atlas Data Federation 은 각 URL 에 대한 파티션을 생성합니다. 비어 있거나 생략된 경우 Atlas Data Federation 은 dataSources.storeName 매개변수에 지정된 저장 의 URL을 사용합니다.

필수 사항

dataSources.defaultFormat

문자열

연합 데이터베이스 인스턴스 저장소를 쿼리하는 동안 확장자가 없는 파일을 발견할 경우 Data Federation이 기본값으로 사용할 형식입니다. 유효한 값은 다음과 같습니다.

.json, .json.gz, .bson, .bson.gz, .avro, .avro.gz, .orc, .tsv, .tsv.gz, .csv, .csv.gz, .parquet

이를 생략할 경우 Data Federation은 일부 파일 바이트를 처리하여 파일 형식을 감지하려고 시도합니다.

포함된 경우 지정된 형식은 dataSourceURL에만 적용됩니다.

옵션

Parameter
유형
설명
필요성

<collection-name>

문자열

Atlas Data Federation 이 연합 데이터베이스 인스턴스 저장 에 포함된 데이터를 매핑하는 컬렉션 의 이름입니다. 컬렉션 이름을 동적으로 생성하려면 다음을 수행해야 합니다.

  • <collection-name> 필드 의 값을 * 로 설정합니다.

  • datasetPrefixtrimLevel 필드에 값을 입력합니다.

  • datasetName 필드 를 생략합니다.

필수 사항

dataSources

객체

각 객체가 연합 데이터베이스 인스턴스를 나타내는 객체 배열로, collection과 매핑할 stores 배열에 저장합니다.

컬렉션 의 모든 dataSources 가 온라인 아카이브 스토어에 매핑되는 경우에만 와일드카드 컬렉션 에 여러 dataSources 를 지정할 수 있습니다.

필수 사항

dataSources.storeName

문자열

컬렉션에 매핑할 연합 데이터베이스 인스턴스 저장소의 이름입니다. 값은 stores 배열의 stores.[n].name 과 일치해야 합니다.

필수 사항

datasetName

문자열

컬렉션 과 매핑할 온라인 아카이브 데이터 세트의 이름입니다. 온라인 아카이브 datasetName 의 형식은 다음과 같습니다.

<version>$<type>$<subtype>$<clusterName>$<dbName>$<collectionName>$<snapshotId>

와일드카드 컬렉션에는 datasetName 를 지정할 수 없습니다. datasetPrefix 를 지정하는 경우 와일드카드가 아닌 컬렉션에 대해 datasetName 를 지정할 수 없습니다.

조건부

datasetPrefix

문자열

와일드카드 컬렉션에만 필요합니다. 와일드카드가 아닌 컬렉션 의 경우 선택 사항입니다.

온라인 아카이브 데이터 세트 이름과 일치시킬 데이터 세트 이름 접두사입니다.

와일드카드 컬렉션에 이 매개 변수를 지정하면 Atlas Data Federation 은 접두사가 지정한 datasetPrefix 와 일치하는 데이터 세트 이름에만 컬렉션을 매핑합니다.

와일드카드가 아닌 컬렉션에 대해 이 매개 변수를 지정하면 Atlas Data Federation 은 최신 데이터 세트(가장 최근에 캡처한 스냅샷 의 경우)를 컬렉션 에 매핑합니다. 와일드카드가 아닌 컬렉션에 대해 이 매개 변수를 지정하려면 datasetName 를 생략해야 합니다.

조건부

maxDatasets

int

와일드카드 컬렉션에만 해당됩니다.

데이터 소스 에 대한 컬렉션을 동적으로 생성할 데이터 세트의 최대 개수입니다. 값은 0 보다 커야 합니다. Atlas Data Federation 은 데이터 세트를 알파벳 역순으로 반환합니다.

옵션

trimLevel

int

와일드카드 컬렉션에만 해당됩니다.

나머지 필드를 와일드카드 컬렉션 이름에 매핑하기 전에 데이터 세트 이름 왼쪽에서 잘라낼 문자 수입니다. 값은 0 보다 커야 합니다. 생략하면 기본값은 0 입니다.

와일드카드 컬렉션에 대해서만 이 설정하다 을 지정할 수 있습니다.

옵션

Parameter
유형
설명
필요성

<view-name>

문자열

의 이름입니다. 뷰 이름은 고유 해야 합니다. 컬렉션 이름 또는 동일한 데이터베이스 에 있는 다른 뷰 이름과 같을 수 없습니다.

필수 사항

viewOn

문자열

뷰를 만들 소스 컬렉션의 이름입니다.

필수 사항

pipeline

단계배열

뷰를 만드는 데 사용할 집계 파이프라인 단계 의 배열 입니다.

뷰 정의 파이프라인은 $lookup 또는 $facet 과 같은 중첩된 파이프라인 단계 내부에서도 $out 또는 $merge 단계를 포함할 수 없습니다.

필수 사항

Parameter
유형
설명
필요성

<view-name>

문자열

의 이름입니다. 뷰 이름은 고유 해야 합니다. 컬렉션 이름 또는 동일한 데이터베이스 에 있는 다른 뷰 이름과 같을 수 없습니다.

필수 사항

pipeline

단계배열

컬렉션 에 적용 할 집계 파이프라인 단계 입니다. SQL 뷰의 경우 pipeline 는 SQL 성명서 에서 소스 컬렉션 을 지정하는 $sql 단계로 시작해야 합니다.

필수 사항

명령이 성공하면 다음 출력을 반환합니다. 컬렉션 검증 에서 명령을 실행하여 결과를 확인할 수 있습니다. 실패할 경우 아래의 오류 문제 해결 을 참조하여 권장 해결 방법을 확인하세요.

{ ok: 1 }

다음 예제에서는 다음 설정으로 Amazon Web Services S3 저장 의 샘플 airbnb 데이터를 사용합니다.

스토어 이름

egS3Store

리전

us-east-2

Bucket

test-data-federation

Prefix

json

구분자

/

샘플 데이터세트

airbnb

다음 예제에서는 다음 설정으로 Azure Blob Storage 컨테이너 의 샘플 airbnb 데이터를 사용합니다.

스토어 이름

egAzureStore

Prefix

sample

구분자

/

샘플 데이터세트

airbnb

다음 예시에서는 다음 airbnb 설정으로 Google Cloud Platform Google Cloud Platform 저장 의 샘플 데이터를 사용합니다.

스토어 이름

egGCStore

리전

us-central1

Bucket

test-data-federation

Prefix

json

구분자

/

샘플 데이터세트

airbnb

다음 예시에서는 다음과 같은 설정으로 Atlas cluster 의 샘플 데이터 세트 에서 sample_airbnb.listingsAndReviews 컬렉션 을 사용합니다.

스토어 이름

egAtlasStore

샘플 데이터세트

sample_airbnb.listingsAndReviews

Atlas cluster에 샘플 데이터 로드 Atlas 검토하여 Atlas cluster 에 샘플 데이터 세트를 로드합니다.

다음 예제에서는 다음 URL을 사용합니다.

  • https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json

  • https://atlas-data-lake.s3.amazonaws.com/json/sample_weatherdata/data.json

다음 예제에서는 다음 설정 온라인 아카이브를 사용합니다.

스토어 이름

adlStore

온라인 보관 이름

v1$atlas$archive$testCluster$sample_airbnb$219eb1cb-20a6-4ce3-800a-aaefd6c227c6$66d512939b1fa57fe057aa22

다음 명령은 스토리지 구성의 sampleDB 데이터베이스에 airbnb 라는 컬렉션을 생성합니다.

airbnb 컬렉션 은 이름이 egS3StoreS3 저장 의 json 폴더에 있는 airbnb 샘플 데이터 세트에 매핑됩니다.

use sampleDB
db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "egS3Store", "path" : "/json/airbnb", "defaultFormat" : ".json" }]})
{ "ok" : 1 }

다음 명령은 collection이 성공적으로 생성되었음을 보여줍니다.

show collections
airbnb
db.runCommand({"storageGetConfig" : 1 })
{
"ok" : 1,
"storage" : {
"stores" : [{
"name" : "egS3Store",
"provider" : "s3",
"region" : "us-east-2",
"bucket" : "test-data-federation",
"delimiter" : "/",
"prefix" : ""
}],
"databases" : [{
"name" : "sampleDB",
"collections" : [{
"name" : "airbnb",
"dataSources" : [{
"storeName" : "egS3Store",
"path" : "/json/airbnb",
"defaultFormat" : ".json"
}]
}]
}]
}
}

airbnb 컬렉션 은 이름이 egAzureStoreAzure 저장 의 sample 폴더에 있는 airbnb 샘플 데이터 세트에 매핑됩니다.

use sampleDB
db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "egAzureStore", "path" : "/sample/airbnb", "defaultFormat" : ".json" }]})
{ "ok" : 1 }

다음 명령은 collection이 성공적으로 생성되었음을 보여줍니다.

show collections
airbnb

컬렉션 은 이라는 Google Cloud airbnb Platform 저장 airbnbjson 폴더에 있는 샘플 데이터 세트에 매핑됩니다.Google Cloud Platform egGCStore

use sampleDB
db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "egGCStore", "path" : "/json/airbnb", "defaultFormat" : ".json" }]})
{ "ok" : 1 }

다음 명령은 collection이 성공적으로 생성되었음을 보여줍니다.

show collections
airbnb
db.runCommand({"storageGetConfig" : 1 })
{
"ok" : 1,
"storage" : {
"stores" : [{
"name" : "egGCStore",
"provider" : "gcs",
"region" : "us-central1",
"bucket" : "test-data-federation",
"delimiter" : "/",
"prefix" : ""
}],
"databases" : [{
"name" : "sampleDB",
"collections" : [{
"name" : "airbnb",
"dataSources" : [{
"storeName" : "egGCStore",
"path" : "/json/airbnb",
"defaultFormat" : ".json"
}]
}]
}]
}
}

airbnb 컬렉션 은 Atlas cluster의 sample_airbnb 데이터베이스 에 있는 listingsAndReviews 샘플 컬렉션 에 매핑됩니다.

use sampleDB
db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "egAtlasStore", "database" : "sample_airbnb", "collection" : "listingsAndReviews" }]})
{ "ok" : 1 }

다음 명령은 collection이 성공적으로 생성되었음을 보여줍니다.

show collections
airbnb
db.runCommand({"storageGetConfig":1})
{
"ok" : 1,
"storage" : {
"stores" : [{
"name" : "egAtlasStore",
"provider" : "atlas",
"clusterName" : "myTestCluster",
"projectId" : "<project-id>"
}],
"databases" : [{
"name" : "sampleDB",
"collections" : [{
"name" : "airbnb",
"dataSources" : [{
"storeName" : "egAtlasStore",
"database" : "sample_airbnb",
"collection" : "listingsAndReview"
}]
}]
}]
}
}

airbnb 컬렉션 에는 컬렉션 의 각 URL 에 대한 파티션이 포함되어 있습니다. allowInsecure 플래그가 설정하다 되지 않았으며 기본값은 false 입니다.

use sampleDB
db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "http-store", "urls": ["https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json","https://atlas-data-lake.s3.amazonaws.com/json/sample_weatherdata/data.json"], "defaultFormat" : ".json" }]})
{ "ok" : 1 }

다음 명령은 collection이 성공적으로 생성되었음을 보여줍니다.

show collections
airbnb
db.runCommand({"storageGetConfig":1})
{
"ok" : 1,
"storage" : {
"stores" : [
{
"name" : "http-store",
"provider" : "http",
"urls" : [
"https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json",
"https://atlas-data-lake.s3.amazonaws.com/json/sample_weatherdata/data.json"
],
"defaultFormat" : ".json"
}
],
"databases" : [
{
"name" : "sampleDb",
"collections" : [
{
"name" : "airbnb",
"dataSources" : [
{
"storeName" : "http-store",
"defaultFormat" : ".json",
"urls" : [
"https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json",
"https://atlas-data-lake.s3.amazonaws.com/json/sample_weatherdata/data.json"
]
}
]
}
]
}
]
}
}

airbnb 컬렉션 은 sample_airbnb.listingsAndReviews 파이프라인 의 온라인 아카이브 데이터 세트에 매핑됩니다.

use sampleDB
db.runCommand({ "create" : "airbnb", "dataSources" : [{ "storeName" : "adlStore", "datasetName" : "v1$atlas$snapshot$testCluster$sample_airbnb$listingsAndReviews" }]})
{ "ok" : 1 }

이 예에서는 create 명령으로 와일드카드 "*" 를 지정하는 방법을 보여줍니다.

다음 예제에서는 create 명령을 사용하여 collection을 동적으로 생성합니다.

다음 예제에서는 create 명령을 사용하여 egS3Store 연합 데이터베이스 인스턴스 저장소에서 /json/ 경로의 파일에 대한 collection을 동적으로 생성합니다. collectionName() 함수를 사용하여 지정된 경로에 있는 파일 이름을 따라 collection 이름을 지정합니다.

use sampleDB
db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egS3Store", "path": "/json/{collectionName()}"}]})
{ "ok" : 1 }

다음 명령은 collection이 성공적으로 생성되었음을 보여줍니다.

show collections
airbnb
db.runCommand({"storageGetConfig" : 1 })
{
"ok" : 1,
"storage" : {
"stores" : [{
"name" : "egS3Store",
"provider" : "s3",
"region" : "us-east-2",
"bucket" : "test-data-federation",
"delimiter" : "/",
"prefix" : ""
}],
"databases" : [{
"name" : "sampleDB",
"collections" : [{
"name" : "*",
"dataSources" : [{
"storeName" : "egS3Store",
"path" : "/json/{collectionName()}"
}]
}]
}]
}
}

다음 예시 에서는 create 명령을 사용하여 egS3Store 라는 Atlas Data Federation 저장 에 매핑되는 egCollection 컬렉션 을 만듭니다. egS3Store 에는 json 폴더에 샘플 데이터 세트 airbnb 가 포함되어 있습니다.

use sampleDB
db.runCommand({ "create" : "egCollection", "dataSources" : [{ "storeName" : "egS3Store", "path": "/json/*"}]}})
{ "ok" : 1 }

다음 명령은 collection이 성공적으로 생성되었음을 보여줍니다.

show collections
egCollection
db.runCommand({"storageGetConfig" : 1 })
{
"ok" : 1,
"storage" : {
"stores" : [{
"name" : "egS3Store",
"provider" : "s3",
"region" : "us-east-2",
"bucket" : "test-data-federation",
"delimiter" : "/",
"prefix" : ""
}],
"databases" : [{
"name" : "sample",
"collections" : [{
"name" : "egCollection",
"dataSources" : [{
"storeName" : "egS3Store",
"path" : "/json/*"
}]
}]
}]
}
}

다음 예에서는 create 명령으로 와일드카드 "*" 를 지정하는 방법을 보여줍니다.

다음 예제에서는 create 명령을 사용하여 egAzureStore 연합 데이터베이스 인스턴스 저장소에서 /sample/ 경로의 파일에 대한 collection을 동적으로 생성합니다. collectionName() 함수를 사용하여 지정된 경로에 있는 파일 이름을 따라 collection 이름을 지정합니다.

use sampleDB
db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egAzureStore", "path": "/json/{collectionName()}"}]})
{ "ok" : 1 }

다음 명령은 collection이 성공적으로 생성되었음을 보여줍니다.

show collections
airbnb

다음 예시 에서는 create 명령을 사용하여 egAzureStore 라는 Atlas Data Federation 저장 에 매핑되는 egCollection 컬렉션 을 만듭니다. egAzureStore 에는 sample 폴더에 샘플 데이터 세트 airbnb 가 포함되어 있습니다.

use sampleDB
db.runCommand({ "create" : "egCollection", "dataSources" : [{ "storeName" : "egAzureStore", "path": "/sample/*"}]}})
{ "ok" : 1 }

다음 명령은 collection이 성공적으로 생성되었음을 보여줍니다.

show collections
egCollection

이 예에서는 create 명령으로 와일드카드 "*" 를 지정하는 방법을 보여줍니다.

다음 예제에서는 create 명령을 사용하여 collection을 동적으로 생성합니다.

다음 예제에서는 create 명령을 사용하여 egGCStore 연합 데이터베이스 인스턴스 저장소에서 /json/ 경로의 파일에 대한 collection을 동적으로 생성합니다. collectionName() 함수를 사용하여 지정된 경로에 있는 파일 이름을 따라 collection 이름을 지정합니다.

use sampleDB
db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egGCStore", "path": "/json/{collectionName()}"}]})
{ "ok" : 1 }

다음 명령은 collection이 성공적으로 생성되었음을 보여줍니다.

show collections
airbnb
db.runCommand({"storageGetConfig" : 1 })
{
"ok" : 1,
"storage" : {
"stores" : [{
"name" : "egGCStore",
"provider" : "gcs",
"region" : "us-central1",
"bucket" : "test-data-federation",
"delimiter" : "/",
"prefix" : ""
}],
"databases" : [{
"name" : "sampleDB",
"collections" : [{
"name" : "*",
"dataSources" : [{
"storeName" : "egGCStore",
"path" : "/json/{collectionName()}"
}]
}]
}]
}
}

다음 예시 에서는 create 명령을 사용하여 egGCStore 라는 Atlas Data Federation 저장 에 매핑되는 egCollection 컬렉션 을 만듭니다. egS3Store 에는 json 폴더에 샘플 데이터 세트 airbnb 가 포함되어 있습니다.

use sampleDB
db.runCommand({ "create" : "egCollection", "dataSources" : [{ "storeName" : "egGCStore", "path": "/json/*"}]}})
{ "ok" : 1 }

다음 명령은 collection이 성공적으로 생성되었음을 보여줍니다.

show collections
egCollection
db.runCommand({"storageGetConfig" : 1 })
{
"ok" : 1,
"storage" : {
"stores" : [{
"name" : "egGCStore",
"provider" : "gcs",
"region" : "us-central1",
"bucket" : "test-data-federation",
"delimiter" : "/",
"prefix" : ""
}],
"databases" : [{
"name" : "sample",
"collections" : [{
"name" : "egCollection",
"dataSources" : [{
"storeName" : "egGCStore",
"path" : "/json/*"
}]
}]
}]
}
}

이 예에서는 create 명령으로 와일드카드 "*" 를 지정하는 방법을 보여줍니다.

다음 예제에서는 create 명령을 사용하여 Atlas 클러스터 이름 myTestClustersample_airbnb 데이터베이스의 문서에 대한 컬렉션을 동적으로 생성합니다.

use sampleDB
db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egAtlasStore", "database": "sample_airbnb"}]})
{ "ok" : 1 }

다음 명령은 collection이 성공적으로 생성되었음을 보여줍니다.

db.runCommand({storageGetConfig:1})
{
"ok" : 1,
"storage" : {
"stores" : [{
"name" : "egAtlasStore",
"provider" : "atlas",
"clusterName" : "myTestCluster",
"projectId" : "<project-id>"
}],
"databases" : [{
"name" : "sampleDB",
"collections" : [{
"name" : "*",
"dataSources" : [{
"storeName" : "egAtlasStore",
"database" : "sample_airbnb"
}]
}]
}]
}
}
show collections
listingsAndReviews

다음 예시 에서는 create 명령을 사용하여 이름이 myTestCluster 인 Atlas cluster 의 sample_airbnb 데이터베이스 에 지정된 정규식 패턴 과 일치하는 컬렉션을 동적으로 생성합니다.

use sampleDB
db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egAtlasStore", "database": "sample_airbnb", "collectionRegex" : "^list" }]})
{ "ok" : 1 }

다음 명령은 collection이 성공적으로 생성되었음을 보여줍니다.

db.runCommand({storageGetConfig:1})
{
"ok" : 1,
"storage" : {
"stores" : [
{
"name" : "egAtlasStore",
"provider" : "atlas",
"clusterName" : "myTestCluster",
"projectId" : "<project-id>"
}
],
"databases" : [
{
"name" : "sbxDb",
"collections" : [
{
"name" : "*",
"dataSources" : [
{
"storeName" : "egAtlasStore",
"database" : "sample_airbnb",
"collectionRegex" : "^list"
}
]
}
]
}
]
}
}
show collections
listingsAndReviews

다음 예시 에서는 create 명령을 사용하여 동적으로 생성된 데이터베이스에 대한 컬렉션을 동적으로 생성합니다.

use *
db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "egAtlasStore" }]})
{ "ok" : 1 }

다음 명령은 컬렉션 이 성공적으로 생성되었음을 보여줍니다.

db.runCommand({storageGetConfig:1})
{
"ok" : 1,
"storage" : {
"stores" : [
{
"name" : "egAtlasStore",
"provider" : "atlas",
"clusterName" : "myTestCluster",
"projectId" : "<project-id>"
}
],
"databases" : [
{
"name" : "*",
"collections" : [
{
"name" : "*",
"dataSources" : [
{
"storeName" : "egAtlasStore"
}
]
}
]
}
]
}
}

와일드카드 "*" 컬렉션은 이 데이터 저장 에서 지원되지 않습니다.

다음 예시 에서는 create 명령을 사용하여 온라인 아카이브에 대해 지정된 접두사 이름과 일치하는 이름의 컬렉션을 동적으로 생성합니다.

use sample
db.runCommand({ "create" : "*", "dataSources" : [{ "storeName" : "adlStore", "datasetPrefix": "v1$atlas$snapshot$testCluster$sample_airbnb$listingsAndReviews", "trimLevel": 4 }]})
{ ok: 1 }

다음 명령은 컬렉션 이 성공적으로 생성되었음을 보여줍니다.

show collections
sample_airbnb_listingsAndReviews_20220602T124437Z
sample_airbnb_listingsAndReviews_20220603T124603Z
sample_airbnb_listingsAndReviews_20220604T124420Z
sample_airbnb_listingsAndReviews_20220605T124454Z
sample_airbnb_listingsAndReviews_20220606T124419Z
sample_airbnb_listingsAndReviews_20220607T124515Z

다음 명령은 스토리지 구성의 sampleDB 데이터베이스에 egCollection 라는 collection을 생성합니다. egCollection collection은 다음 샘플 데이터 세트에 매핑됩니다.

  • airbnb 이름이 egS3StoreS3 저장 의 json 폴더에 있는 데이터 세트

  • airbnb 이름이 myTestCluster인 Atlas cluster 의 sample_airbnb.listingsAndReviews 컬렉션 에 있는 데이터 세트

  • airbnb URL https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json의 데이터 세트

경고

Amazon Web Services S3 버킷과 Azure Blob Storage 컨테이너 모두에 매핑되는 연합 데이터베이스 인스턴스 는 생성할 수 없습니다. Atlas Data Federation 은 다양한 cloud 제공자 간의 연합 쿼리를 지원 하지 않습니다.

use sampleDB
db.runCommand({ "create" : "egCollection", "dataSources" : [{ "storeName" : "egS3Store", "path" : "/json/airbnb" },{ "storeName" : "egAtlasStore", "database": "sample_airbnb", "collection": "listingsAndReviews" },{"storeName" : "egHttpStore", "urls": ["https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json"]}]})
{ "ok" : 1 }

다음 명령은 collection이 성공적으로 생성되었음을 보여줍니다.

show collections
egCollection
db.runCommand({"storageGetConfig":1})
{
"ok" : 1,
"storage" : {
"stores" : [
{
"name" : "egS3Store",
"provider" : "s3",
"region" : "us-east-2",
"bucket" : "test-data-federation",
"delimiter" : "/",
"prefix" : ""
},
{
"name" : "egAtlasStore",
"provider" : "atlas",
"clusterName" : "myTestCluster",
"projectId" : "<project-id>"
},
{
"name" : "egHttpStore",
"provider" : "http",
"urls" : ["https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json"]
}
],
"databases" : [
{
"name" : "sampleDB",
"collections" : [{
"name" : "egCollection",
"dataSources" : [
{
"storeName" : "egS3Store",
"path" : "json/airbnb"
},
{
"storeName" : "egAtlasStore",
"database" : "sample_airbnb",
"collection" : "listingsAndReviews"
},
{
"storeName" : "egHttpStore",
"urls" : ["https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews.json"]
}
]
}]
}
]
}
}

다음 명령은 nameproperty_type 필드가 있는 sample 데이터베이스 의 airbnb 컬렉션 에 listings 라는 뷰를 만듭니다.

use sampleDB
db.runCommand({ "create" : "listings", "viewOn" : "airbnb", "pipeline" : [{$project: {"property_type":1, "name": 1}}] })
{ "ok" : 1 }
use sampleDB
db.runCommand({ "create" : "listings", "pipeline": [{$sql: {statement: "SELECT property_type, name FROM airbnb"} }] })
{ "ok" : 1 }

listCollectionsstorageGetConfig 명령은 다음 출력을 반환합니다.

db.runCommand({"listCollections":1})
{
"ok" : 1,
"cursor" : {
"firstBatch" : [
{
"name" : "airbnb",
"type" : "collection",
"info" : {
"readOnly" : true
}
},
{
"name" : "listings",
"type" : "view",
"info" : {
"readOnly" : true
}
}
],
"id" : NumberLong(0),
"ns" : "egS3Store.$cmd.listCollections"
}
}
db.runCommand({"storageGetConfig":1})
{
"ok" : 1,
"storage" : {
"stores" : [
{
"name" : "egS3Store",
"provider" : "s3",
"region" : "us-east-2",
"bucket" : "test-data-federation",
"delimiter" : "/"
}
],
"databases" : [
{
"name" : "sample",
"collections" : [
{
"name" : "airbnb",
"dataSources" : [
{
"storeName" : "egS3Store",
"path" : "json/airbnb/*"
}
]
},
{
"name" : "*",
"dataSources" : [
{
"storeName" : "egS3Store",
"path" : "json/{collectionName()}"
}
]
}
],
"views" : [
{
"name" : "listings",
"source" : "airbnb",
"pipeline" : "[{\"$project\":{\"property_type\":{\"$numberInt\":\"1\"},\"name{\"$numberInt\":\"1\"}}}]"
}
]
}
]
}
}

다음 명령 중 하나를 실행하여 해당 명령이 collection 또는 뷰를 성공적으로 생성했는지 확인할 수 있습니다.

show collections
db.runCommand({ "storageGetConfig" : 1 })
db.runCommand({ "listCollections" : 1 })

명령이 실패하면 다음 오류 중 하나를 반환합니다.

스토어 이름이 존재하지 않음

{
"ok" : 0,
"errmsg" : "store name does not exist",
"code" : 9,
"codeName" : "FailedToParse"
}

해결책: 지정된 storeName 이(가) stores 배열의 상점 이름과 일치하는지 확인하십시오. listStores 명령을 실행하여 연합 데이터베이스 인스턴스 스토리지 구성에서 매장 목록을 검색할 수 있습니다.

collection 이름이 이미 존재합니다.

{
"ok" : 0,
"errmsg" : "collection name already exists in the database",
"code" : 9,
"codeName" : "FailedToParse"
}

해결책: name collection이 고유한지 확인합니다. show collections 명령을 실행하여 기존 collection 목록을 검색할 수 있습니다.

명령이 실패하면 다음 오류가 반환됩니다.

뷰 이름 존재

{
"ok" : 0,
"errmsg" : "a view '<database>.<view>' already exists, correlationID = <1603aaffdbc91ba93de6364a>",
"code" : 48,
"codeName" : "NamespaceExists"
}

해결 방법: 보기 이름이 고유한지 확인합니다. listCollections 명령을 실행 하여 컬렉션 의 기존 뷰 목록을 조회 할 수 있습니다.

돌아가기

스토어 목록