Docs Menu
Docs Home
/
MongoDB Atlas
/ /

Atlas Cluster

이 페이지의 내용

  • Atlas 데이터 저장소 구성 예시
  • 구성 형식
  • stores
  • databases

Atlas Data Federation은 Atlas cluster를 연합 데이터베이스 인스턴스 저장소로 지원합니다. 데이터에 대한 쿼리를 실행하려면 연합 데이터베이스 인스턴스에서 Atlas cluster에 대한 매핑을 정의해야 합니다.

중요

스토리지 구성의 정보는 MongoDB에서 내부적으로 볼 수 있으며, Atlas Data Federation의 성능을 모니터링하고 개선하기 위해 운영 데이터로 저장됩니다. 따라서 구성에서 PII 를 사용하지 않는 것이 좋습니다.

예시

metrics.hardware 컬렉션의 데이터를 포함하는 myDataCenter 이)라는 이름의 M10 이상의 Atlas cluster를 생각해 보세요. metrics.hardware 컬렉션에는 데이터 센터의 하드웨어에서 파생된 지표가 있는 JSON 문서가 포함되어 있습니다. 다음 구성:

  • 지정된 프로젝트의 myDataCenter (이)라는 Atlas cluster를 연합 데이터베이스 인스턴스 저장소로 지정합니다.

  • Atlas 클러스터의 metrics.hardware 컬렉션의 문서를 스토리지 구성의 dataCenter.inventory 컬렉션으로 매핑합니다.

{
"stores" : [
{
"name" : "atlasClusterStore",
"provider" : "atlas",
"clusterName" : "myDataCenter",
"projectId" : "5e2211c17a3e5a48f5497de3"
}
],
"databases" : [
{
"name" : "dataCenter",
"collections" : [
{
"name" : "inventory",
"dataSources" : [
{
"storeName" : "atlasClusterStore",
"database" : "metrics",
"collection" : "hardware"
}
]
}
]
}
]
}

Atlas Data Federation은 metrics.hardware collection의 모든 문서를 스토리지 구성의 dataCenter.inventory collection에 매핑합니다.

연합 데이터베이스 인스턴스 에 연결된 사용자는 MongoDB 쿼리 언어 및 지원되는 애그리게이션을 사용하여 dataCenter.inventory 컬렉션 을 통해 Atlas cluster 의 데이터를 분석 할 수 있습니다. 쿼리를 실행 하면 쿼리 가 먼저 Atlas Data Federation 으로 이동합니다. 따라서 Atlas cluster 에서는 지원하지만 Atlas Data Federation 에서는 지원하지 않는 집계 쿼리를 실행 하면 쿼리가 실패합니다. Data Federation 에서 지원되는 명령과 지원되지 않는 명령에 학습 보려면 지원되는 MongoDB 명령을 참조하세요.

다음도 참조하세요.

연합 데이터베이스 인스턴스 구성의 형식은 다음과 같습니다.

1{
2 "stores" : [
3 {
4 "name" : "<string>",
5 "provider": "<string>",
6 "clusterName": "<string>",
7 "projectId": "<string>",
8 "readPreference": {
9 "mode": "<string>",
10 "tagSets": [
11 [{"name": "<string>", "value": "<string>"},...],
12 ...
13 ],
14 "maxStalenessSeconds": <int>
15 }
16 }
17 ],
18 "databases" : [
19 {
20 "name" : "<string>",
21 "collections" : [
22 {
23 "name" : "<string>",
24 "dataSources" : [
25 {
26 "storeName" : "<string>",
27 "database" : "<string>",
28 "databaseRegex": "<string>",
29 "collection" : "<string>",
30 "collectionRegex" : "<string>",
31 "provenanceFieldName": "<string>"
32 }
33 ]
34 }
35 ],
36 "views" : [
37 {
38 "name" : "<string>",
39 "source" : "<string>",
40 "pipeline" : "<string>"
41 }
42 ]
43 }
44 ]
45}
stores
stores 객체는 연합 데이터베이스 인스턴스와 연결된 각 데이터 저장소를 정의합니다. 연합 데이터베이스 인스턴스 저장소는 Atlas cluster의 문서에 파일을 캡처합니다. 연합 데이터베이스 인스턴스는 stores 객체에 정의된 데이터 저장소에만 액세스할 수 있습니다.
databases
databases 객체는 stores에 정의된 각 연합 데이터베이스 인스턴스 저장소와 데이터베이스의 MongoDB 컬렉션 간의 매핑을 정의합니다.
1"stores" : [
2 {
3 "name" : "<string>",
4 "provider" : "<string>",
5 "clusterName" : "<string>",
6 "projectId": "<string>"
7 "readPreference": {
8 "mode": "<string>",
9 "tagSets": [
10 [{"name": "<string>", "value": "<string>"},...],
11 ...
12 ],
13 "maxStalenessSeconds": <int>
14 },
15 "readConcern": {
16 "level": "<string>"
17 }
18 }
19]
stores

각 객체가 연합 데이터베이스 인스턴스와 연결할 데이터 저장소를 나타내는 객체 배열입니다. 연합 데이터베이스 인스턴스 저장소는 S3 버킷의 파일, Atlas 클러스터의 문서 또는 공개적으로 액세스할 수 있는 URL에 저장된 파일을 캡처합니다. Atlas Data Federation은 stores 객체에 정의된 데이터 저장소에만 액세스할 수 있습니다.

stores.[n].name

연합 데이터베이스 인스턴스 저장소의 이름입니다. databases.[n].collections.[n].dataSources.[n].storeName 필드는 매핑 구성의 일부로 이 값을 참조합니다.

stores.[n].provider

데이터가 저장되는 위치를 정의합니다. Atlas 클러스터의 컬렉션에 대한 값은 atlas 이어야 합니다.

stores.[n].clusterName

스토어의 기반이 되는 Atlas cluster의 이름입니다. cluster는 연합 데이터베이스 인스턴스와 동일한 프로젝트에 있어야 합니다. 데이터 파티션의 source 필드는 Atlas cluster의 이름입니다.

stores.[n].projectId

스토어의 기반이 되는 Atlas cluster가 포함된 프로젝트의 고유 식별자입니다.

stores.[n].readPreference

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

예시

다음 readPreference 설정은 secondary 모드ANALYTICS nodeType을 지정합니다.

{
...
"stores": [
{
"provider": "atlas",
"clusterName": <CLUSTER_NAME>,
"name": <STORE_NAME>,
"projectId": <PROJECT_ID>,
"readPreference": {
"mode": "secondary",
"tagSets": [
[
{
"name": "nodeType",
"value": "ANALYTICS"
}
],
...
]
}
}
]
}
stores.[n].readPreference.mode

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

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

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

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

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

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

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

stores.[n].readPreference.tagSets

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

참고

Atlas Data Federation은 cluster에 대해 tagSets 을(를) 지원하지 않습니다.

stores.[n].readPreference.maxStalenessSeconds

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

stores.[n].readConcern

선택 사항. Atlas cluster에서 읽은 데이터의 일관성 및 격리 속성입니다. 자세한 내용은 읽기 고려 를 참조하세요. 일관성 및 가용성 수준 값은 다음 중 하나일 수 있습니다.

1"databases" : [
2 {
3 "name" : "<string>",
4 "collections" : [
5 {
6 "name" : "<string>",
7 "dataSources" : [
8 {
9 "storeName" : "<string>",
10 "database" : "<string>",
11 "databaseRegex": "<string>",
12 "collection" : "<string>",
13 "collectionRegex" : "<string>",
14 "provenanceFieldName": "<string>"
15 }
16 ]
17 }
18 ]
19 }
20]
databases

각 객체가 데이터베이스, 객체의 컬렉션, 그리고 선택적으로 컬렉션에 대한 모든 보기를 나타내는 객체 배열입니다. 각 데이터베이스에는 여러 개의 collectionsviews 객체가 있을 수 있습니다.

databases.[n].name

Atlas Data Federation이 데이터 저장소에 포함된 데이터를 매핑하는 데이터베이스의 이름입니다. 데이터베이스 이름에 * 를 지정하여 데이터베이스를 동적으로 생성할 수 있습니다. 동적으로 생성된 데이터베이스:

  • 명시적으로 정의된 데이터베이스와 함께 존재할 수 있습니다. 그러나 Atlas Data Federation은 저장소 구성에서 명시적으로 정의된 데이터베이스와 충돌하는 이름을 가진 데이터베이스를 동적으로 생성하지 않습니다.

  • 단일 Atlas cluster에서만 가능합니다. Atlas Data Federation은 여러 Atlas 클러스터 또는 기타 데이터 저장소에서 데이터베이스를 동적으로 생성하지 않습니다.

databases.[n].collections

각 객체 가 stores 연합 데이터베이스 인스턴스 저장 에 매핑되는 컬렉션 및 데이터 소스를 나타내는 객체 배열입니다. 동적으로 생성된 데이터베이스의 경우 저장 구성에서 와일드카드(*) 컬렉션 객체 를 하나만 정의할 수 있습니다.

databases.[n].collections.[n].name

databases.[n].collections.[n].dataSources.[n].storeName에 포함된 데이터를 Atlas Data Federation이 매핑하는 컬렉션의 이름입니다. 배열의 각 객체는 컬렉션과 stores 배열의 객체 간의 매핑을 나타냅니다.

컬렉션 이름에 * 를 지정하고 collection 필드 를 생략하여 컬렉션 이름을 동적으로 생성할 수 있습니다. 동적으로 생성된 와일드카드(*) 데이터베이스에 대한 와일드카드(*) 컬렉션을 동적으로 생성하려면 databases.[n].collections.[n].dataSources.[n].storeName 옵션을 지정하고 databases.[n].collections.[n].dataSources.[n].database 옵션을 생략합니다. 동적으로 생성된 데이터베이스의 경우 저장 구성에서 와일드카드(*) 컬렉션 객체 를 하나만 정의할 수 있습니다.

와일드카드(*) 컬렉션의 경우 databases.[n].collections.[n].dataSources.[n].collectionRegex 필드를 사용하여 정규식 패턴을 정의하여 컬렉션만 필터링할 수도 있습니다.

databases.[n].collections.[n].dataSources

각 객체가 컬렉션과 매핑할 stores 연합 데이터베이스 인스턴스 저장소를 나타내는 객체의 배열입니다.

databases.[n].collections.[n].dataSources.[n].storeName

<collection>에 매핑할 연합 데이터베이스 인스턴스 저장소의 이름입니다. stores 배열에 있는 객체의 name과 일치해야 합니다.

databases.[n].collections.[n].dataSources.[n].database

collection이 포함된 Atlas cluster의 데이터베이스 이름입니다. 다음과 같은 경우에는 이 설정을 생략해야 합니다.

  • 와일드카드(*) 데이터베이스에 대한 와일드카드(*) collection을 생성합니다.

  • 여러 데이터베이스를 정리합니다.

databases.[n].collections.[n].dataSources.[n].databaseRegex

선택 사항. 여러 collection을 결합하기 위해 데이터베이스를 로빙하는 데 사용할 정규식 패턴입니다. 이 옵션을 지정하면 연합 데이터베이스 인스턴스 인스턴스에는 여러 데이터베이스의 collection이 있는 단일 데이터베이스가 포함됩니다. lobbbing 데이터베이스의 경우 다음을 수행해야 합니다.

예시

및 라는 2개의 데이터베이스가 있고 foo bar 각각 collection 라는 컬렉션이 Sales 있다고 가정합니다. 스토리지 구성의 databaseRegex 옵션을 사용하여 foobarSales 컬렉션을 결합할 수 있습니다.

{
"databases": [
{
"name": "Transactions",
"collections": [
{
"name": "AllSales",
"dataSources": [
{
"storeName": "atlasStore",
"databaseRegex": ".*",
"collection": "Sales"
}
]
}
]
}
]
}

앞의 databases 객체 에 대해 Atlas Data Federation 은 연합 데이터베이스 인스턴스 에서 다음을 생성합니다.

  • Transactions 이라는 가상 데이터베이스입니다.

  • databaseRegex 옵션에 지정된 정규식 패턴과 이름이 일치하는 모든 데이터베이스에 있는 Sales collection의 데이터를 포함하는 AllSales 가상 collection입니다.

이 옵션을 지정하는 경우 collection의 이름을 지정해야 합니다. 와일드카드 collection에는 이 옵션을 지정할 수 없습니다.

databases.[n].collections.[n].dataSources.[n].collection

연합 데이터베이스 인스턴스 저장소의 기반이 되는 Atlas cluster 내의 collection의 이름입니다. 다음에 대해서는 이 설정을 생략해야 합니다.

  • 와일드카드(*) collection을 만듭니다.

  • 정규식 패턴과 일치하는 와일드카드 컬렉션 이름 만들기.

  • 정규식 패턴을 사용하여 데이터베이스에 여러 collection을 결합합니다.

databases.[n].collections.[n].dataSources.[n].collectionRegex

조건부: 와일드카드 collection의 경우 선택 사항이며 데이터베이스의 collection을 결합하는 데 필요합니다.

와일드카드(*) collection을 만들거나 데이터베이스의 여러 collection을 결합하는 데 사용할 정규식 패턴입니다.

와일드카드(``*``) collection 이름에 정규식 패턴을 사용하려면 다음을 수행해야 합니다.

와일드카드 collection을 생성하기 위해 이 필드를 지정하는 경우, 연합 데이터베이스 인스턴스 인스턴스에는 지정된 정규 표현식과 일치하는 이름을 가진 collection만 포함됩니다. 연합 데이터베이스 인스턴스의 저장소 구성의 collection은 Atlas cluster의 원래 이름을 사용합니다.

데이터베이스에서 여러 collection을 결합하기 위해 정규식 패턴을 사용하려면 다음을 수행해야 합니다.

여러 컬렉션을 결합하기 위해 이 필드 를 지정하는 경우, 연합 데이터베이스 인스턴스 인스턴스 의 컬렉션 에는 지정된 정규 표현식 과 이름이 일치하는 모든 Atlas 컬렉션의 데이터가 포함됩니다. 연합 데이터베이스 인스턴스 저장 구성의 컬렉션 은 databases.[n].collections.[n].name 의 값으로 지정한 이름을 사용합니다.

정규식 구문에 학습 보려면 고 (Go) 프로그래밍 언어 를 참조하세요.

databases.[n].collections.[n].dataSources.[n].provenanceFieldName

결과에 있는 문서의 출처를 포함하는 필드의 이름입니다. 스토리지 구성에서 이 설정을 지정하면 Atlas Data Federation은 결과의 각 문서에 대해 다음 필드를 반환합니다.

필드 이름
설명

provider

연합 데이터베이스 인스턴스stores.[n].provider 저장 구성의 제공자( )

clusterName

Atlas cluster 의 이름(stores.[n].clusterName)

databaseName

Atlas cluster 에 있는databases.[n].collections.[n].dataSources.[n].database 데이터베이스 의 이름( )

collectionName

Atlas UI의 비주얼 편집기를 사용하여 이 설정을 구성할 수 없습니다.

databases.[n].views

각 객체가 컬렉션의 집계 파이프라인을 나타내는 객체의 배열입니다. 보기에 대해 자세히 알아보려면 보기를 참조하세요.

databases.[n].views.[n].name

뷰의 이름을 지정합니다.

databases.[n].views.[n].source

뷰에 대한 소스 컬렉션 의 이름입니다. $sql 단계로 뷰를 만들려면 SQL 성명서 이 소스 컬렉션 을 지정하므로 이 필드 를 생략해야 합니다.

databases.[n].views.[n].pipeline

컬렉션 에 적용 할집계 source 파이프라인 단계 입니다. $sql 단계를 사용하여 뷰를 만들 수도 있습니다.

돌아가기

배포