createStore
createStore
명령은 연합 데이터베이스 인스턴스 스토리지 구성에 저장소를 만듭니다. 데이터 소스에 대한 연합 데이터베이스 인스턴스 저장소를 만드는 방법에 대해 자세히 알아보려면 아래 탭을 클릭하세요.
이 탭 에는 Amazon Web Services S3 버킷의 데이터에 대한 연합 데이터베이스 인스턴스 저장 를 생성하기 위한 구문과 매개 변수가 포함되어 있습니다.
중요
Atlas Data Federation 은 다양한 cloud 제공자 간의 연합 쿼리를 지원 하지 않습니다. 단일 cloud 제공자 의 매장에 매핑되는 연합 데이터베이스 인스턴스만 생성할 수 있습니다.
이 탭 에는 Azure Blob Storage 컨테이너의 데이터에 대한 연합 데이터베이스 인스턴스 저장 를 만들기 위한 구문과 매개 변수가 포함되어 있습니다.
중요
Atlas Data Federation 은 다양한 cloud 제공자 간의 연합 쿼리를 지원 하지 않습니다. 단일 cloud 제공자 의 매장에 매핑되는 연합 데이터베이스 인스턴스만 생성할 수 있습니다.
이 탭 에는 Google Google Cloud Platform Cloud Platform 스토리지 컨테이너의 데이터에 대한 연합 데이터베이스 인스턴스 저장 를 만들기 위한 구문과 매개변수가 포함되어 있습니다.
중요
Atlas Data Federation 은 다양한 cloud 제공자 간의 연합 쿼리를 지원 하지 않습니다. 단일 cloud 제공자 의 매장에 매핑되는 연합 데이터베이스 인스턴스만 생성할 수 있습니다.
이 탭 에는 Atlas cluster 의 데이터에 대한 연합 데이터베이스 인스턴스 저장 를 만들기 위한 구문과 매개 변수가 포함되어 있습니다.
이 탭 에는 공개적으로 액세스할 수 있는 URL 에 호스팅된 파일의 데이터에 대한 HTTP연합 데이터베이스 인스턴스 저장 를 만들기 위한 구문과 매개 변수가 포함되어 있습니다.
이 탭 에는 Atlas Online Archive에 대한 연합 데이터베이스 인스턴스 저장 를 생성하기 위한 구문과 매개 변수가 포함되어 있습니다.
구문
db.runCommand({ createStore: <store-name>, provider: <storage-provider>, region: <region-name>, bucket: <bucket-name>, additionalStorageClasses: [ <storage-classes> ], delimiter: <delimiter>, public: true|false })
db.runCommand({ createStore: <store-name>, provider: <storage-provider>, region: <region-name>, serviceURL: <service-account-URL>, containerName: <storage-container-name>, delimiter: <delimiter>, public: true|false })
db.runCommand({ createStore: <store-name>, provider: <storage-provider>, region: <region-name>, bucket: <bucket-name>, delimiter: <delimiter>, prefix: <prefix> })
db.runCommand({ createStore: <store-name>, provider: <storage-provider>, clusterName: <cluster-name>, projectId: <project-id>, readPreference: {mode: <read-preference-mode>, tagSets: [[{name: <name>, value: <value>},...],...], maxStalenessSeconds: <number-of-seconds>}, readConcern: {level: <level>} })
db.runCommand({ createStore: <store-name>, provider: <storage-provider>, allowInsecure: true|false, urls: [ <url> ], defaultFormat: <file-extension> })
db.runCommand({ createStore: <store-name>, provider: "dls:aws", region: <online-archive-region> })
매개변수
Parameter | 유형 | 설명 | 필수 사항입니다. |
---|---|---|---|
| 문자열 | 새 연합 데이터베이스 인스턴스 저장소의 이름입니다. 연합 데이터베이스 인스턴스 저장소 이름은 고유해야 합니다. | 네 |
| 문자열 | 데이터가 저장되는 서비스의 이름입니다. 값은 다음 중 하나일 수 있습니다.
| 네 |
| 문자열 |
| 네 |
| 문자열 | 데이터가 저장되는 버킷의 이름입니다. Data Federation 이 Amazon Web Services IAM 자격 증명 Amazon Web Services 을 사용하여 액세스 할 수 있는 S 버킷의 이름과 정확히 일치해야 합니다.3 Data Federation | 네 |
| 문자열 배열 | AWS S3 스토리지 클래스의 배열입니다. Atlas Data Federation은 쿼리 결과에 이러한 저장소 클래스의 파일을 포함합니다. 유효한 값은 다음과 같습니다.
표준 스토리지 클래스의 파일은 기본적으로 지원됩니다. | no |
| 문자열 | 연합 데이터베이스 인스턴스 저장소에서 경로 세그먼트를 구분하는 데 사용되는 문자입니다. 생략하면 기본값은 | no |
| 부울 | 버킷의 공개 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
생략하는 경우 기본값은 | no |
Parameter | 유형 | 설명 | 필수 사항입니다. |
---|---|---|---|
| 문자열 | 새 연합 데이터베이스 인스턴스 저장소의 이름입니다. 연합 데이터베이스 인스턴스 저장소 이름은 고유해야 합니다. | 네 |
| 문자열 | 데이터가 저장되는 서비스의 이름입니다. 값은 다음 중 하나일 수 있습니다.
| 네 |
| 문자열 | 컨테이너 가 호스팅되는 리전입니다. 유효한 리전 이름 목록은 Microsoft Azure 를 참조하세요. | 네 | |
| 문자열 | 블롭 컨테이너가 포함된 Azure Blob Storage 계정의 URL 입니다. 예를 예시 다음과 같습니다.
| 네 | |
| 문자열 | 파일이 포함된 Azure Blob Storage 컨테이너 의 이름입니다. 자세한 내용은 컨테이너 명명및 참조 에 대한 Azure 설명서를 참조하세요. | 네 | |
| 문자열 | 연합 데이터베이스 인스턴스 저장 에서 경로 세그먼트를 구분하는 데 사용되는 문자입니다. 생략하면 기본값은 | no | |
| 부울 | Azure Blob Storage 컨테이너 의 공개 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
생략하는 경우 기본값은 | no |
Parameter | 유형 | 설명 | 필수 사항입니다. |
---|---|---|---|
| 문자열 | 새 연합 데이터베이스 인스턴스 저장소의 이름입니다. 연합 데이터베이스 인스턴스 저장소 이름은 고유해야 합니다. | 네 |
| 문자열 | 데이터가 저장되는 서비스의 이름입니다. 값은 다음 중 하나일 수 있습니다.
| 네 |
| 문자열 |
| 네 | ||||
| 문자열 | 데이터가 저장되는 버킷의 이름입니다. Data Federation 이 구성된 Google Cloud Platform Google Cloud Platform IAM 자격 Data Federation Google Cloud Platform 증명 을 사용하여 액세스 할 수 있는 Google Cloud Platform Storage 버킷의 이름과 정확히 일치해야 합니다. | 네 | ||||
| 문자열 | 연합 데이터베이스 인스턴스 저장소에서 경로 세그먼트를 구분하는 데 사용되는 문자입니다. 생략하면 기본값은 | no | ||||
| 부울 | Google Cloud Platform 스토리지 버킷에서 파일을 검색할 때 접두사 Atlas Data Federation 이 적용됩니다.Atlas Data Federation Google Cloud Platform 예를 예시 다음과 같은 구조의 Google Cloud Platform Google Cloud Platform Storage 버킷 을 가정해 보겠습니다.
연합 데이터베이스 인스턴스 저장 는 기본값은 Google Cloud Platform 모든 파일을 검색하는 Google Cloud Platform 스토리지 버킷의 루트입니다. | no |
Parameter | 유형 | 설명 | 필수 사항입니다. |
---|---|---|---|
| 문자열 | 새 연합 데이터베이스 인스턴스 저장소의 이름입니다. 연합 데이터베이스 인스턴스 저장소 이름은 고유해야 합니다. | 네 |
| 문자열 | 데이터가 저장되는 서비스의 이름입니다. 값은 다음 중 하나일 수 있습니다.
| 네 |
| 문자열 | 저장 의 기반이 되는 Atlas cluster 의 이름입니다. | 네 |
| 문자열 | Atlas cluster 가 포함된 프로젝트 의 고유 식별자입니다. 지정하지 않으면 Atlas Data Federation 은 클러스터 가 연합 데이터베이스 인스턴스 와 동일한 프로젝트 에 있다고 가정합니다. | no |
| 문서 | 클러스터 읽기 설정 (read preference) - 읽기 요청을 클러스터 로 라우팅하는 방법을 설명합니다. | no |
readPreference .mode | 문자열 | 읽기 요청을 라우팅할 복제본 세트 멤버를 지정하는 읽기 설정 모드 입니다. 값은 다음 중 하나일 수 있습니다.
| no |
readPreference .tagSets | 문자열 배열 | 복제본 세트 멤버에 대한 이름 및 값 쌍이 포함된 태그를 지정하다 세트 또는 태그를 지정하다 사양 문서의 배열입니다. 지정된 경우 Atlas Data Federation 은 지정된 태그와 연결된 복제본 세트 멤버로 읽기 요청을 라우팅합니다. 학습 내용은 읽기 설정 태그 세트를 참조하세요. Atlas Data Federation 은 샤딩된 클러스터에 대해 이 매개 변수를 지원 하지 않습니다. | no |
readPreference .maxStalenessSeconds | int | 세컨더리에서 읽기에 대한 최대 복제 지연 또는 '비활성 상태'입니다. | no |
Parameter | 유형 | 설명 | 필수 사항입니다. |
---|---|---|---|
| 문자열 | 새 연합 데이터베이스 인스턴스 저장소의 이름입니다. 연합 데이터베이스 인스턴스 저장소 이름은 고유해야 합니다. | 네 |
| 문자열 | 데이터가 저장되는 서비스의 이름입니다. 값은 다음 중 하나일 수 있습니다.
| 네 |
| 부울 | 지정된 URL의 체계의 유효성을 검사합니다. 값은 다음 중 하나일 수 있습니다.
true(참)인 경우 Atlas Data Federation:
경고: 이 값을 생략하는 경우 기본값은 | no |
| 문자열 배열 또는 빈 배열 | 공개적으로 액세스할 수 있는 하나 이상의 URL입니다. 인증 이 필요한 URL은 지정할 수 없습니다. | no |
| 문자열 | 연합 데이터베이스 인스턴스 저장소를 쿼리하는 동안 확장자가 없는 파일을 발견할 경우 Data Federation이 기본값으로 사용할 형식입니다. 유효한 값은 다음과 같습니다.
이를 생략할 경우 Data Federation은 일부 파일 바이트를 처리하여 파일 형식을 감지하려고 시도합니다. 포함된 경우 지정된 형식은 저장 의 URL에만 적용됩니다. | no |
Parameter | 유형 | 설명 | 필수 사항입니다. |
---|---|---|---|
| 문자열 | 새 연합 데이터베이스 인스턴스 저장소의 이름입니다. 연합 데이터베이스 인스턴스 저장소 이름은 고유해야 합니다. | 네 |
| 문자열 | 데이터가 저장되는 서비스의 이름입니다. 값은 다음 중 하나일 수 있습니다.
| 네 |
| 문자열 | 온라인 아카이브의 리전입니다. 서로 다른 리전에 여러 아카이브가 있는 경우 각 리전 의 저장 를 추가하여 해당 리전 의 데이터를 연합 데이터베이스 인스턴스의 가상 데이터베이스 및 컬렉션에 매핑해야 합니다. | 네 |
출력
명령이 성공하면 다음 출력이 인쇄됩니다. 명령이 실패할 경우 오류 문제 해결 에서 권장 해결 방법을 확인하세요.
{ "ok": 1, "store": { "name": "<store-name>", "region": "<region-name>", "bucket": "<bucket-name>", "additionalStorageClasses": ["<storage-classes>"] "delimiter": "<delimiter>", "provider": "<storage-provider>" } }
{ "ok": 1, "store": { "name": "<store-name>", "region": "<region-name>", "serviceURL": "<service-account-URL>", "containerName": "<storage-container-name>" "delimiter": "<delimiter>", "provider": "<storage-provider>" } }
{ "ok": 1, "store": { "name": "<store-name>", "region": "<region-name>", "bucket": "<storage-container-name>" "delimiter": "<delimiter>", "prefix": "<prefix>", "provider": "<storage-provider>" } }
{ "ok" : 1, "store" : { "name" : "<store-name>", "provider" : "<storage-provider>", "clusterName" : "<cluster-name>", "projectId" : "<project-id>", "readPreference" : { "mode" : "<read-preference-mode>", "tagSets" : [[{"name": "<name>", "value": "<value>"},...],...], "maxStalenessSeconds" : <number-of-seconds> } } }
{ "ok" : 1, "store" : { "name" : "<store-name>", "provider" : "<storage-provider>", "allowInsecure" : true|false, "urls" : [ "<url>" ], "defaultFormat: "<file-extension>" } }
{ ok: 1, store: { name: '<store-name>', provider: 'dls:aws', region: '<online-archive-region>' } }
예시
다음 예에서는 createStore
명령을 사용하여 myStore
라는 새 연합 데이터베이스 인스턴스 저장소를 만듭니다.
use sample db.runCommand({ createStore: "myStore", provider: "s3", region: "us-east-1", bucket: "my-bucket", "additionalStorageClasses" : ["STANDARD_IA","INTELLIGENT_TIERING"] })
{ "ok": 1, "store": { "name": "myStore", "region": "us-east-1", "bucket": "my-bucket", "additionalStorageClasses" : [ "STANDARD_IA", "INTELLIGENT_TIERING" ], "delimiter": "/", "provider": "s3" } }
use sample db.runCommand({ createStore: "myStore", provider: "azure", region: "eastus2", serviceURL: "https://mystorage.blob.core.windows.net/", "containerName" : "my-data-container" })
{ "ok": 1, "store": { "name": "myStore", "region": "eastus2", "serviceURL": "https://mystorage.blob.core.windows.net/", "containerName" : "my-data-container", "delimiter": "/", "provider": "azure" } }
use sample db.runCommand({ createStore: "myStore", provider: "azure", region: "us-central1", "bucket" : "my-data-container" })
{ "ok": 1, "store": { "name": "myStore", "region": "us-central1", "bucket" : "my-data-container", "delimiter": "/", "provider": "gcp" } }
use sample db.runCommand({ createStore: "myStore", provider: "atlas", clusterName: "myTestCluster", projectId: "<project-id>", "readPreference": {"mode": "secondary", "tagSets": [[{"name": "provider", "value": "AWS" }, {"name": "region", "value": "US_EAST_1"}]], "maxStalenessSeconds": 120} })
{ "ok" : 1, "store" : { "name" : "myStore", "provider" : "atlas", "clusterName" : "myTestCluster", "projectId" : "<project-id>", "readPreference" : { "mode" : "secondary", "tagSets": [[{"name": "provider", "value": "AWS" }, {"name": "region", "value": "US_EAST_1"}]], "maxStalenessSeconds" : 120 } } }
use sample db.runCommand({ createStore: "myStore", provider: "http", urls: ["https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews","http://example.mongodb.com/sampleData"], allowInsecure: true, defaultFormat: ".json" })
{ "ok" : 1, "store" : { "name" : "http-store", "provider" : "http", "urls" : [ "https://atlas-data-lake.s3.amazonaws.com/json/sample_airbnb/listingsAndReviews", "http://example.mongodb.com/sampleData" ], "defaultFormat" : ".json" "allowInsecure" : true } }
use sample db.runCommand({ createStore: "myStore", provider: "dls:aws", region: "us-east-1" })
{ ok: 1, store: { name: 'myStore', provider: 'dls:aws', region: 'us-east-1' } }
오류 문제 해결
명령이 실패하면 다음 오류 중 하나를 반환합니다.
이유: createStore
에 지정된 이름을 가진 연합 데이터베이스 인스턴스 저장소가 이미 존재합니다.
{ "ok": 0, "errmsg": "store <store-name> already exists", "code": 2, "codeName": "BadValue" }
해결책: 연합 데이터베이스 인스턴스 저장소에 고유한 이름을 지정합니다.
이유: 지정된 provider
이(가) 인식되지 않습니다.
{ "ok": 0, "errmsg": "unrecognized store provider <storage-provider>", "code": 2, "codeName": "BadValue" }
해결책: 유효한 스토리지 제공자를 지정했는지 확인합니다.
이유: 하나 이상의 지정된 URL에 안전하지 않은 HTTP 체계가 포함되어 있습니다.
{ "ok" : 0, "errmsg" : "store 'httpStore': the insecure HTTP scheme is not supported by default - please add a 'allowInsecure: true' flag to the store or datasource to query from such URLs, correlationID = 16332c6eddf7b32776fde638", "code" : 72, "codeName" : "InvalidOptions" }
해결 방법: 보안 HTTPS체계를 사용하여 URL 을 지정합니다. 지정된 URL에 안전하지 않은 HTTP 체계가 있는 경우 allowInsecure
플래그를 true
(으)로 설정하다 합니다. allowInsecure
플래그를 true
로 설정하면 데이터가 중간자(man-in-middle) 공격에 취약해집니다.