Docs Menu
Docs Home
/
MongoDB Atlas
/ / /

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
유형
설명
필수 사항입니다.

createStore

문자열

새 연합 데이터베이스 인스턴스 저장소의 이름입니다. 연합 데이터베이스 인스턴스 저장소 이름은 고유해야 합니다.

provider

문자열

데이터가 저장되는 서비스의 이름입니다. 값은 다음 중 하나일 수 있습니다.

  • s3 Amazon Web Services S3 버킷의 경우.

  • azure Azure Blob Storage container의 경우.

  • atlas Atlas cluster 의 경우.

  • http 공개적으로 액세스할 수 있는 URL에 호스팅된 파일의 경우

  • dls:<subtype> 온라인 아카이브의 경우. Atlas Data Federation 은 다음 하위 유형을 지원합니다.

    • aws - Amazon Web Services 에 저장된 데이터의 경우. 값은 dls:aws 이어야 합니다.

    • azure - Azure 에 저장된 데이터의 경우. 값은 dls:azure 이어야 합니다.

region

문자열

bucket 이(가) 호스팅되는 리전입니다. 유효한 리전 이름 목록은 Amazon Web Services (Amazon Web Services)를 참조하세요.

bucket

문자열

데이터가 저장되는 버킷의 이름입니다. Data Federation 이 Amazon Web Services IAM 자격 증명 Amazon Web Services 을 사용하여 액세스 할 수 있는 S 버킷의 이름과 정확히 일치해야 합니다.3 Data Federation

additionalStorageClasses

문자열 배열

AWS S3 스토리지 클래스의 배열입니다. Atlas Data Federation은 쿼리 결과에 이러한 저장소 클래스의 파일을 포함합니다. 유효한 값은 다음과 같습니다.

표준 스토리지 클래스의 파일은 기본적으로 지원됩니다.

no

delimiter

문자열

연합 데이터베이스 인스턴스 저장소에서 경로 세그먼트를 구분하는 데 사용되는 문자입니다. 생략하면 기본값은 "/" 입니다.

no

public

부울

버킷의 공개 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.

  • true Amazon Web Services IAM 역할 을 사용하여 버킷에 액세스 하지 않도록 합니다.

  • false 버킷에 액세스 하기 위해 Amazon Web Services IAM 역할 요구

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

no

Parameter
유형
설명
필수 사항입니다.

createStore

문자열

새 연합 데이터베이스 인스턴스 저장소의 이름입니다. 연합 데이터베이스 인스턴스 저장소 이름은 고유해야 합니다.

provider

문자열

데이터가 저장되는 서비스의 이름입니다. 값은 다음 중 하나일 수 있습니다.

  • s3 Amazon Web Services S3 버킷의 경우.

  • azure Azure Blob Storage container의 경우.

  • atlas Atlas cluster 의 경우.

  • http 공개적으로 액세스할 수 있는 URL에 호스팅된 파일의 경우

  • dls:<subtype> 온라인 아카이브의 경우. Atlas Data Federation 은 다음 하위 유형을 지원합니다.

    • aws - Amazon Web Services 에 저장된 데이터의 경우. 값은 dls:aws 이어야 합니다.

    • azure - Azure 에 저장된 데이터의 경우. 값은 dls:azure 이어야 합니다.

region

문자열

컨테이너 가 호스팅되는 리전입니다. 유효한 리전 이름 목록은 Microsoft Azure 를 참조하세요.

bucket

문자열

블롭 컨테이너가 포함된 Azure Blob Storage 계정의 URL 입니다. 예를 예시 다음과 같습니다.

https://<azure-storage-account-name>.blob.core.windows.net/

containerName

문자열

파일이 포함된 Azure Blob Storage 컨테이너 의 이름입니다. 자세한 내용은 컨테이너 명명및 참조 에 대한 Azure 설명서를 참조하세요.

delimiter

문자열

연합 데이터베이스 인스턴스 저장 에서 경로 세그먼트를 구분하는 데 사용되는 문자입니다. 생략하면 기본값은 "/" 입니다.

no

public

부울

Azure Blob Storage 컨테이너 의 공개 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.

  • true Azure 서비스 주체를 사용하여 버킷에 액세스 하지 않도록 합니다.

  • false 버킷에 액세스 Azure 서비스 주체를 요구합니다.

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

no

Parameter
유형
설명
필수 사항입니다.

createStore

문자열

새 연합 데이터베이스 인스턴스 저장소의 이름입니다. 연합 데이터베이스 인스턴스 저장소 이름은 고유해야 합니다.

provider

문자열

데이터가 저장되는 서비스의 이름입니다. 값은 다음 중 하나일 수 있습니다.

  • s3 Amazon Web Services S3 버킷의 경우.

  • azure Azure Blob Storage container의 경우.

  • atlas Atlas cluster 의 경우.

  • http 공개적으로 액세스할 수 있는 URL에 호스팅된 파일의 경우

  • dls:<subtype> 온라인 아카이브의 경우. Atlas Data Federation 은 다음 하위 유형을 지원합니다.

    • aws - Amazon Web Services 에 저장된 데이터의 경우. 값은 dls:aws 이어야 합니다.

    • azure - Azure 에 저장된 데이터의 경우. 값은 dls:azure 이어야 합니다.

region

문자열

bucket 이(가) 호스팅되는 리전입니다. 유효한 리전 이름 목록은 Google Cloud Platform (GCP)을 참조하세요.

bucket

문자열

데이터가 저장되는 버킷의 이름입니다. Data Federation 이 구성된 Google Cloud Platform Google Cloud Platform IAM 자격 Data Federation Google Cloud Platform 증명 을 사용하여 액세스 할 수 있는 Google Cloud Platform Storage 버킷의 이름과 정확히 일치해야 합니다.

delimiter

문자열

연합 데이터베이스 인스턴스 저장소에서 경로 세그먼트를 구분하는 데 사용되는 문자입니다. 생략하면 기본값은 "/" 입니다.

no

prefix

부울

Google Cloud Platform 스토리지 버킷에서 파일을 검색할 때 접두사 Atlas Data Federation 이 적용됩니다.Atlas Data Federation Google Cloud Platform 예를 예시 다음과 같은 구조의 Google Cloud Platform Google Cloud Platform Storage 버킷 을 가정해 보겠습니다.metrics

metrics
|--hardware
|--software
|--computed

연합 데이터베이스 인스턴스 저장 는 databases.[n].collections.[n].dataSources.[n].pathprefix 값을 추가하여 수집할 파일의 전체 경로를 만듭니다. prefix/software 로 설정하면 연합 데이터베이스 인스턴스 를 사용하는 모든 databases 객체가 /software 의 하위 경로로만 제한됩니다.

기본값은 Google Cloud Platform 모든 파일을 검색하는 Google Cloud Platform 스토리지 버킷의 루트입니다.

no

Parameter
유형
설명
필수 사항입니다.

createStore

문자열

새 연합 데이터베이스 인스턴스 저장소의 이름입니다. 연합 데이터베이스 인스턴스 저장소 이름은 고유해야 합니다.

provider

문자열

데이터가 저장되는 서비스의 이름입니다. 값은 다음 중 하나일 수 있습니다.

  • s3 Amazon Web Services S3 버킷의 경우.

  • azure Azure Blob Storage container의 경우.

  • atlas Atlas cluster 의 경우.

  • http 공개적으로 액세스할 수 있는 URL에 호스팅된 파일의 경우

  • dls:<subtype> 온라인 아카이브의 경우. Atlas Data Federation 은 다음 하위 유형을 지원합니다.

    • aws - Amazon Web Services 에 저장된 데이터의 경우. 값은 dls:aws 이어야 합니다.

    • azure - Azure 에 저장된 데이터의 경우. 값은 dls:azure 이어야 합니다.

clusterName

문자열

저장 의 기반이 되는 Atlas cluster 의 이름입니다.

projectId

문자열

Atlas cluster 가 포함된 프로젝트 의 고유 식별자입니다. 지정하지 않으면 Atlas Data Federation 은 클러스터 가 연합 데이터베이스 인스턴스 와 동일한 프로젝트 에 있다고 가정합니다.

no

readPreference

문서

클러스터 읽기 설정 (read preference) - 읽기 요청을 클러스터 로 라우팅하는 방법을 설명합니다.

no

readPreference
.mode

문자열

읽기 요청을 라우팅할 복제본 세트 멤버를 지정하는 읽기 설정 모드 입니다. 값은 다음 중 하나일 수 있습니다.

  • primary - 모든 읽기 요청을 복제본 세트 프라이머리로 라우팅합니다.

  • primaryPreferred - primary 를 사용할 수 없는 경우에만 모든 읽기 요청을 복제본 세트 프라이머리세컨더리 멤버로 라우팅합니다.

  • secondary - 모든 읽기 요청을 복제본 세트의 세컨더리 멤버로 라우팅합니다.

  • secondaryPreferred - secondary 멤버를 사용할 수 없는 경우에만 모든 읽기 요청을 복제본 세트 의 세컨더리 멤버와 샤딩된 클러스터의 프라이머리 멤버로 라우팅합니다.

  • nearest - 멤버가 프라이머리 멤버인지 세컨더리멤버인지에 관계없이 모든 읽기 요청을 임의의 적격 복제본 세트 멤버로 라우팅합니다.

no

readPreference
.tagSets

문자열 배열

복제본 세트 멤버에 대한 이름 및 값 쌍이 포함된 태그를 지정하다 세트 또는 태그를 지정하다 사양 문서의 배열입니다. 지정된 경우 Atlas Data Federation 은 지정된 태그와 연결된 복제본 세트 멤버로 읽기 요청을 라우팅합니다. 학습 내용은 읽기 설정 태그 세트를 참조하세요.

Atlas Data Federation 은 샤딩된 클러스터에 대해 이 매개 변수를 지원 하지 않습니다.

no

readPreference
.maxStalenessSeconds

int

세컨더리에서 읽기에 대한 최대 복제 지연 또는 '비활성 상태'입니다. maxStalenessSeconds 에 학습 보려면 읽기 설정 maxStalenessSeconds를 참조하세요.

no

Parameter
유형
설명
필수 사항입니다.

createStore

문자열

새 연합 데이터베이스 인스턴스 저장소의 이름입니다. 연합 데이터베이스 인스턴스 저장소 이름은 고유해야 합니다.

provider

문자열

데이터가 저장되는 서비스의 이름입니다. 값은 다음 중 하나일 수 있습니다.

  • s3 Amazon Web Services S3 버킷의 경우.

  • azure Azure Blob Storage container의 경우.

  • atlas Atlas cluster 의 경우.

  • http 공개적으로 액세스할 수 있는 URL에 호스팅된 파일의 경우

  • dls:<subtype> 온라인 아카이브의 경우. Atlas Data Federation 은 다음 하위 유형을 지원합니다.

    • aws - Amazon Web Services 에 저장된 데이터의 경우. 값은 dls:aws 이어야 합니다.

    • azure - Azure 에 저장된 데이터의 경우. 값은 dls:azure 이어야 합니다.

allowInsecure

부울

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

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

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

true(참)인 경우 Atlas Data Federation:

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

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

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

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

no

urls

문자열 배열 또는 빈 배열

공개적으로 액세스할 수 있는 하나 이상의 URL입니다. 인증 이 필요한 URL은 지정할 수 없습니다.

no

defaultFormat

문자열

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

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

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

포함된 경우 지정된 형식은 저장 의 URL에만 적용됩니다.

no

Parameter
유형
설명
필수 사항입니다.

createStore

문자열

새 연합 데이터베이스 인스턴스 저장소의 이름입니다. 연합 데이터베이스 인스턴스 저장소 이름은 고유해야 합니다.

provider

문자열

데이터가 저장되는 서비스의 이름입니다. 값은 다음 중 하나일 수 있습니다.

  • s3 Amazon Web Services S3 버킷의 경우.

  • azure Azure Blob Storage container의 경우.

  • atlas Atlas cluster 의 경우.

  • http 공개적으로 액세스할 수 있는 URL에 호스팅된 파일의 경우

  • dls:<subtype> 온라인 아카이브의 경우. Atlas Data Federation 은 다음 하위 유형을 지원합니다.

    • aws - Amazon Web Services 에 저장된 데이터의 경우. 값은 dls:aws 이어야 합니다.

    • azure - Azure 에 저장된 데이터의 경우. 값은 dls:azure 이어야 합니다.

region

문자열

온라인 아카이브의 리전입니다. 서로 다른 리전에 여러 아카이브가 있는 경우 각 리전 의 저장 를 추가하여 해당 리전 의 데이터를 연합 데이터베이스 인스턴스의 가상 데이터베이스 및 컬렉션에 매핑해야 합니다.

명령이 성공하면 다음 출력이 인쇄됩니다. 명령이 실패할 경우 오류 문제 해결 에서 권장 해결 방법을 확인하세요.

{
"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) 공격에 취약해집니다.

돌아가기

구성 관리