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 | 유형 | 설명 | 필요성 |
---|---|---|---|
| 문자열 | Data Federation이 연합 데이터베이스 인스턴스 저장소에 포함된 데이터를 매핑하는 컬렉션의 이름이거나 컬렉션을 동적으로 생성하기 위한 와일드카드 컬렉션 이름에 | 필수 사항 |
| 객체 | 각 객체가 연합 데이터베이스 인스턴스를 나타내는 객체 배열로, collection과 매핑할 | 필수 사항 |
| 문자열 | 컬렉션에 매핑할 연합 데이터베이스 인스턴스 저장소의 이름입니다. 값은 | 필수 사항 |
| 문자열 | 파일 및 폴더의 경로입니다. | 필수 사항 |
| 문자열 | 연합 데이터베이스 인스턴스 저장소를 쿼리하는 동안 확장자가 없는 파일을 발견할 경우 Data Federation이 기본값으로 사용할 형식입니다. 유효한 값은 다음과 같습니다.
이를 생략할 경우 Data Federation은 일부 파일 바이트를 처리하여 파일 형식을 감지하려고 시도합니다. | 옵션 |
| 부울 | Atlas Data Federation 이 컬렉션 에 추가하는 속성(키 및 값 쌍)을 생략할지 여부를 지정하는 플래그입니다. 다음 값 중 하나를 지정할 수 있습니다.
생략하면 기본적으로 | 옵션 |
Parameter | 유형 | 설명 | 필요성 |
---|---|---|---|
| 문자열 | Data Federation이 연합 데이터베이스 인스턴스 저장소에 포함된 데이터를 매핑하는 컬렉션의 이름이거나 컬렉션을 동적으로 생성하기 위한 와일드카드 컬렉션 이름에 | 필수 사항 |
| 객체 | 각 객체가 연합 데이터베이스 인스턴스를 나타내는 객체 배열로, collection과 매핑할 | 필수 사항 |
| 문자열 | 컬렉션에 매핑할 연합 데이터베이스 인스턴스 저장소의 이름입니다. 값은 | 필수 사항 |
| 문자열 | 파일 및 폴더의 경로입니다. | 필수 사항 |
| 문자열 | 연합 데이터베이스 인스턴스 저장소를 쿼리하는 동안 확장자가 없는 파일을 발견할 경우 Data Federation이 기본값으로 사용할 형식입니다. 유효한 값은 다음과 같습니다.
이를 생략할 경우 Data Federation은 일부 파일 바이트를 처리하여 파일 형식을 감지하려고 시도합니다. | 옵션 |
| 부울 | Atlas Data Federation 이 컬렉션 에 추가하는 속성(키 및 값 쌍)을 생략할지 여부를 지정하는 플래그입니다. 다음 값 중 하나를 지정할 수 있습니다.
생략하면 기본적으로 | 옵션 |
Parameter | 유형 | 설명 | 필요성 |
---|---|---|---|
| 문자열 | Data Federation이 연합 데이터베이스 인스턴스 저장소에 포함된 데이터를 매핑하는 컬렉션의 이름이거나 컬렉션을 동적으로 생성하기 위한 와일드카드 컬렉션 이름에 | 필수 사항 |
| 객체 | 각 객체가 연합 데이터베이스 인스턴스를 나타내는 객체 배열로, collection과 매핑할 | 필수 사항 |
| 문자열 | 컬렉션에 매핑할 연합 데이터베이스 인스턴스 저장소의 이름입니다. 값은 | 필수 사항 |
| 문자열 | 파일 및 폴더의 경로입니다. | 필수 사항 |
| 문자열 | 연합 데이터베이스 인스턴스 저장소를 쿼리하는 동안 확장자가 없는 파일을 발견할 경우 Data Federation이 기본값으로 사용할 형식입니다. 유효한 값은 다음과 같습니다.
이를 생략할 경우 Data Federation은 일부 파일 바이트를 처리하여 파일 형식을 감지하려고 시도합니다. | 옵션 |
| 부울 | Atlas Data Federation 이 컬렉션 에 추가하는 속성(키 및 값 쌍)을 생략할지 여부를 지정하는 플래그입니다. 다음 값 중 하나를 지정할 수 있습니다.
생략하면 기본적으로 | 옵션 |
Parameter | 유형 | 설명 | 필요성 |
---|---|---|---|
| 문자열 | Data Federation이 연합 데이터베이스 인스턴스 저장소에 포함된 데이터를 매핑하는 컬렉션의 이름이거나 컬렉션을 동적으로 생성하기 위한 와일드카드 컬렉션 이름에 동적으로 생성된 데이터베이스의 경우 컬렉션 이름에
와일드카드( | 필수 사항 |
| 객체 | 각 객체가 연합 데이터베이스 인스턴스를 나타내는 객체 배열로, collection과 매핑할 | 필수 사항 |
| 문자열 | 컬렉션에 매핑할 연합 데이터베이스 인스턴스 저장소의 이름입니다. 값은 | 필수 사항 |
| 문자열 | Atlas cluster 의 컬렉션 이 포함된 데이터베이스 의 이름입니다. 동적으로 생성된 데이터베이스에 대한 와일드카드( | 조건부 |
| 문자열 | Atlas 데이터베이스 에 있는 컬렉션 의 이름입니다. 와일드카드( | 조건부 |
| 문자열 | 와일드카드( 와일드카드( | 옵션 |
Parameter | 유형 | 설명 | 필요성 |
---|---|---|---|
| 문자열 | Atlas Data Federation 이 연합 데이터베이스 인스턴스 저장 에 포함된 데이터를 매핑하는 컬렉션 의 이름입니다. | 필수 사항 |
| 객체 | 각 객체가 연합 데이터베이스 인스턴스를 나타내는 객체 배열로, collection과 매핑할 | 필수 사항 |
| 문자열 | 컬렉션에 매핑할 연합 데이터베이스 인스턴스 저장소의 이름입니다. 값은 | 필수 사항 |
| 부울 | 지정된 URL의 체계의 유효성을 검사합니다. 값은 다음 중 하나일 수 있습니다.
true(참)인 경우 Atlas Data Federation:
경고: 이 값을 생략하는 경우 기본값은 | 옵션 |
| 문자열 배열 또는 빈 배열 | 공개적으로 액세스할 수 있는 데이터 파일의 URL입니다. 인증 이 필요한 URL은 지정할 수 없습니다. Atlas Data Federation 은 각 URL 에 대한 파티션을 생성합니다. 비어 있거나 생략된 경우 Atlas Data Federation 은 | 필수 사항 |
| 문자열 | 연합 데이터베이스 인스턴스 저장소를 쿼리하는 동안 확장자가 없는 파일을 발견할 경우 Data Federation이 기본값으로 사용할 형식입니다. 유효한 값은 다음과 같습니다.
이를 생략할 경우 Data Federation은 일부 파일 바이트를 처리하여 파일 형식을 감지하려고 시도합니다. 포함된 경우 지정된 형식은 | 옵션 |
Parameter | 유형 | 설명 | 필요성 | |
---|---|---|---|---|
| 문자열 | Atlas Data Federation 이 연합 데이터베이스 인스턴스 저장 에 포함된 데이터를 매핑하는 컬렉션 의 이름입니다. 컬렉션 이름을 동적으로 생성하려면 다음을 수행해야 합니다.
| 필수 사항 | |
| 객체 | 각 객체가 연합 데이터베이스 인스턴스를 나타내는 객체 배열로, collection과 매핑할 컬렉션 의 모든 | 필수 사항 | |
| 문자열 | 컬렉션에 매핑할 연합 데이터베이스 인스턴스 저장소의 이름입니다. 값은 | 필수 사항 | |
| 문자열 | 컬렉션 과 매핑할 온라인 아카이브 데이터 세트의 이름입니다. 온라인 아카이브
와일드카드 컬렉션에는 | 조건부 | |
| 문자열 | 와일드카드 컬렉션에만 필요합니다. 와일드카드가 아닌 컬렉션 의 경우 선택 사항입니다. 온라인 아카이브 데이터 세트 이름과 일치시킬 데이터 세트 이름 접두사입니다. 와일드카드 컬렉션에 이 매개 변수를 지정하면 Atlas Data Federation 은 접두사가 지정한 와일드카드가 아닌 컬렉션에 대해 이 매개 변수를 지정하면 Atlas Data Federation 은 최신 데이터 세트(가장 최근에 캡처한 스냅샷 의 경우)를 컬렉션 에 매핑합니다. 와일드카드가 아닌 컬렉션에 대해 이 매개 변수를 지정하려면 | 조건부 | |
| int | 와일드카드 컬렉션에만 해당됩니다. 데이터 소스 에 대한 컬렉션을 동적으로 생성할 데이터 세트의 최대 개수입니다. 값은 | 옵션 | |
| int | 와일드카드 컬렉션에만 해당됩니다. 나머지 필드를 와일드카드 컬렉션 이름에 매핑하기 전에 데이터 세트 이름 왼쪽에서 잘라낼 문자 수입니다. 값은 와일드카드 컬렉션에 대해서만 이 설정하다 을 지정할 수 있습니다. | 옵션 |
Parameter | 유형 | 설명 | 필요성 |
---|---|---|---|
| 문자열 | 뷰 의 이름입니다. 뷰 이름은 고유 해야 합니다. 컬렉션 이름 또는 동일한 데이터베이스 에 있는 다른 뷰 이름과 같을 수 없습니다. | 필수 사항 |
| 문자열 | 뷰를 만들 소스 컬렉션의 이름입니다. | 필수 사항 |
| 단계배열 | 뷰를 만드는 데 사용할 집계 파이프라인 단계 의 배열 입니다. 뷰 정의 파이프라인은 $lookup 또는 $facet 과 같은 중첩된 파이프라인 단계 내부에서도 $out 또는 $merge 단계를 포함할 수 없습니다. | 필수 사항 |
Parameter | 유형 | 설명 | 필요성 |
---|---|---|---|
| 문자열 | 뷰 의 이름입니다. 뷰 이름은 고유 해야 합니다. 컬렉션 이름 또는 동일한 데이터베이스 에 있는 다른 뷰 이름과 같을 수 없습니다. | 필수 사항 |
| 단계배열 | 컬렉션 에 적용 할 집계 파이프라인 단계 입니다. SQL 뷰의 경우 | 필수 사항 |
출력
명령이 성공하면 다음 출력을 반환합니다. 컬렉션 검증 에서 명령을 실행하여 결과를 확인할 수 있습니다. 실패할 경우 아래의 오류 문제 해결 을 참조하여 권장 해결 방법을 확인하세요.
{ ok: 1 }
예시
다음 예제에서는 다음 설정으로 Amazon Web Services S3 저장 의 샘플 airbnb
데이터를 사용합니다.
스토어 이름 |
|
리전 |
|
Bucket |
|
Prefix |
|
구분자 |
|
샘플 데이터세트 |
|
다음 예제에서는 다음 설정으로 Azure Blob Storage 컨테이너 의 샘플 airbnb
데이터를 사용합니다.
스토어 이름 |
|
Prefix |
|
구분자 |
|
샘플 데이터세트 |
|
다음 예시에서는 다음 airbnb
설정으로 Google Cloud Platform Google Cloud Platform 저장 의 샘플 데이터를 사용합니다.
스토어 이름 |
|
리전 |
|
Bucket |
|
Prefix |
|
구분자 |
|
샘플 데이터세트 |
|
다음 예시에서는 다음과 같은 설정으로 Atlas cluster 의 샘플 데이터 세트 에서 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
다음 예제에서는 다음 설정 온라인 아카이브를 사용합니다.
스토어 이름 |
|
온라인 보관 이름 |
|
기본 예시
다음 명령은 스토리지 구성의 sampleDB
데이터베이스에 airbnb
라는 컬렉션을 생성합니다.
airbnb
컬렉션 은 이름이 egS3Store
인 S3 저장 의 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
컬렉션 은 이름이 egAzureStore
인 Azure 저장 의 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 저장 airbnb
의 json
폴더에 있는 샘플 데이터 세트에 매핑됩니다.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 클러스터 이름 myTestCluster
에 sample_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
이름이egS3Store
인 S3 저장 의json
폴더에 있는 데이터 세트airbnb
이름이myTestCluster
인 Atlas cluster 의sample_airbnb.listingsAndReviews
컬렉션 에 있는 데이터 세트airbnb
URLhttps://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"] } ] }] } ] } }
다음 명령은 name
및 property_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 }
listCollections
및 storageGetConfig
명령은 다음 출력을 반환합니다.
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
명령을 실행 하여 컬렉션 의 기존 뷰 목록을 조회 할 수 있습니다.