문서 메뉴
문서 홈
/
MongoDB Atlas
/ /

Data Lake 데이터 세트 또는 Atlas Online Archive

이 페이지의 내용

  • Atlas Data Lake 데이터 저장소에 대한 구성 예시
  • Atlas Online Archive Data Store 구성 예시
  • 구성 형식
  • stores
  • databases

참고

Atlas Data Federation에서는 Online Archive를 데이터 소스로만 사용할 수 있습니다. 자세한 내용은 MongoDB 블로그 게시물 성능 개선 및 향상된 지표가 포함된 새로운 온라인 아카이브 를 참조하세요.

Atlas Data Federation은 연합 데이터베이스 인스턴스 저장소로 Atlas Data Lake 데이터 세트와 Atlas 온라인 아카이브 를 지원합니다. 데이터에 대한 쿼리를 실행하려면 연합 데이터베이스 인스턴스 저장소 구성에서 Data Lake 데이터 세트 또는 Atlas Online Archive에 대한 매핑을 정의해야 합니다.

중요

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

예제

metrics.hardware 컬렉션의 스냅샷 데이터가 포함된 myDataCenter 이라는 Atlas Data Lake 파이프라인을 예로 들어 보겠습니다. metrics.hardware collection에는 데이터 센터의 hardware에서 파생된 지표가 있는 JSON 문서가 포함되어 있습니다. 다음 구성:

  • cloud 스토리지 제공자 dls:aws 및 제공자 리전 us-east-1 를 연합 데이터베이스 인스턴스 저장소로 지정합니다.

  • Atlas 클러스터 이름 dlsTest 에 있는 metrics.hardware 컬렉션의 스냅샷에서 스토리지 구성의 dataCenter.inventory 컬렉션으로 문서를 매핑합니다. 예를 들어 Atlas Data Lake 파이프라인이 2022년 5월 5일 02:00:10 UTC에 실행되는 경우, Atlas Data Lake는 데이터 세트 이름 v1$atlas$snapshot$dlsTest$metrics$hardware$20220510T020010Z 으로 데이터 세트를 생성합니다.

{
"stores": [
{
"name": "adlStore",
"provider": "dls:aws",
"region": "us-east-1"
}
],
"databases": [
{
"name": "dataCenter",
"collections": [
{
"name": "inventory",
"dataSources": [
{
"storeName": "adlStore",
"datasetName": "v1$atlas$snapshot$dlsTest$metrics$hardware$20220510T020010Z"
}
]
}
],
"views": []
}
]
}

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

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

예제

다음 ID로 Amazon Web Services 가 지원하는 Atlas Online Archive를 가정해 보겠습니다.

v1$atlas$archive$V3metrics$hardware$69437250-b9da-4ae9-a1cd-8811462c38a4$64679f7c09f07374b4dcc914

Atlas Online Archive에는 Atlas cluster의 metrics.hardware 에서 보관된 데이터가 포함되어 있습니다. 다음 구성:

  • us-east-1 Amazon Web Services 리전에 있는 Atlas Online Archive를 연합 데이터베이스 인스턴스 저장소로 지정합니다.

  • Atlas Online Archive의 문서를 스토리지 구성의 dataCenter.inventory collection에 매핑합니다.

{
"stores" : [
{
"name" : "atlasOnlineArchiveStore",
"provider" : "dls:aws",
"region" : "us-east-1"
}
],
"databases" : [
{
"name" : "dataCenter",
"collections" : [
{
"name" : "inventory",
"dataSources" : [
{
"storeName" : "atlasOnlineArchiveStore",
"datasetName" : "v1$atlas$archive$V3metrics$hardware$69437250-b9da-4ae9-a1cd-8811462c38a4$64679f7c09f07374b4dcc914",
"provider" : "dls:aws"
}
]
}
]
}
]
}

참고

Amazon Web Services 는 Atlas Online Archive를 지원하므로 이 예제에서는 providerdls:aws 로 설정됩니다. Azure 가 온라인 아카이브를 지원하는 경우 providerdls:azure 가 됩니다.

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

연합 데이터베이스 인스턴스에 연결된 사용자는 MongoDB 쿼리 언어와 지원되는 애그리게이션을 사용하여 dataCenter.inventory collection을 통해 Atlas cluster의 데이터를 분석할 수 있습니다.

Atlas Data Lake 데이터 세트 또는 Atlas Online Archive에 대한 연합 데이터베이스 인스턴스 구성의 형식은 다음과 같습니다.

1{
2 "stores" : [
3 {
4 "name" : "<string>",
5 "provider": "<string>",
6 "region": "<string>"
7 }
8 ],
9 "databases" : [
10 {
11 "name" : "<string>",
12 "collections" : [
13 {
14 "name" : "<string>",
15 "dataSources" : [
16 {
17 "storeName" : "<string>",
18 "datasetName" : "<string>",
19 "datasetPrefix": "<string>",
20 "trimLevel": <int>,
21 "provenanceFieldName": "<string>",
22 "maxDatasets": <int>
23 }
24 ]
25 }
26 ],
27 "views" : [
28 {
29 "name" : "<string>",
30 "source" : "<string>",
31 "pipeline" : "<string>"
32 }
33 ]
34 }
35 ]
36}
37
1"stores" : [
2 {
3 "name" : "<string>",
4 "provider": "<string>",
5 "region": "<string>"
6 }
7]
stores

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

stores.[n].name

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

stores.[n].provider

스냅샷 데이터가 저장되는 클라우드 공급자. 스냅샷의 값은 dls:<subtype> 이어야 합니다. Atlas Data Federation은 다음 하위 유형을 지원합니다.

  • aws, 이 값은 다음과 같아야 합니다. dls:aws

stores.[n].region

데이터 레이크 또는 Atlas Online Archive의 리전 이름입니다. 각 저장소는 메타데이터와 스냅샷 데이터가 모두 저장되는 단일 리전과 연결됩니다. 서로 다른 리전에 여러 데이터 세트 또는 온라인 아카이브가 있는 경우, 각 리전의 저장소를 추가하여 해당 리전의 데이터를 연합 데이터베이스 인스턴스의 가상 데이터베이스 및 컬렉션에 매핑해야 합니다.

Amazon Web Services 에 대해 지원되는 리전에 대해 자세히 알아보려면 Atlas Data Federation 리전을 참조하십시오.

1"databases" : [
2 {
3 "name" : "<string>",
4 "collections" : [
5 {
6 "name" : "<string>",
7 "dataSources" : [
8 {
9 "storeName" : "<string>",
10 "datasetName" : "<string>",
11 "datasetPrefix": "<string>",
12 "trimLevel": <int>,
13 "provenanceFieldName": "<string>",
14 "maxDatasets": <int>
15 }
16 ]
17 }
18 ],
19 "views" : [
20 {
21 "name" : "<string>",
22 "source" : "<string>",
23 "pipeline" : "<string>"
24 }
25 ]
26 }
27]
databases

stores 에 정의된 각 연합 데이터베이스 인스턴스 저장소와 Atlas Data Lake 데이터 세트 또는 온라인 아카이브 간의 매핑을 정의하는 객체의 배열입니다. 각 객체는 데이터베이스, 해당 컬렉션 및 선택적으로 컬렉션에 대한 모든 를 나타냅니다. 각 데이터베이스에는 여러 개의 collectionsviews 객체가 있을 수 있습니다.

databases.[n].name

Atlas Data Federation이 데이터 저장소에 포함된 데이터를 매핑하는 데이터베이스의 이름입니다.

databases.[n].collections

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

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

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

collection 이름에 * 를 지정하여 collection 이름을 동적으로 생성할 수 있습니다. collection 이름을 동적으로 생성하려면 다음도 지정해야 합니다.

와일드카드 컬렉션의 경우, Atlas Data Federation은 먼저 네임스페이스$ 구분 기호의 필드 목록으로 분할한 다음 목록 왼쪽에서 여러 필드를 잘라내고 마지막으로 다음을 결합하여 데이터 세트 이름을 컬렉션 이름에 매핑합니다. 나머지 필드는 _ 을(를) 사용합니다.

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

각 객체가 컬렉션과 매핑할 stores 배열의 연합 데이터베이스 인스턴스 저장소를 나타내는 객체 배열입니다. 컬렉션의 모든 dataSources 가 Atlas Data Lake 데이터 세트 stores에 매핑되는 경우에만 와일드카드 컬렉션에 dataSources 를 여러 개 지정할 수 있습니다.

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

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

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

collection과 매핑할 Atlas Data Lake 또는 Atlas Online Archive의 이름입니다. Atlas Data Lake datasetName 의 형식은 다음과 같습니다.

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

예제

다음 Atlas Data Lake 데이터 세트 이름을 고려하세요.

v1$atlas$snapshot$clusterName$dbName$collectionName$snapshotId

여기:

  • v1 버전입니다.

  • atlas 은(는) 데이터 소스의 유형입니다.

  • snapshot 하위 유형입니다.

  • clusterName 은(는) Atlas cluster의 이름입니다.

  • dbName 은(는) Atlas cluster에 있는 데이터베이스의 이름입니다.

  • collectionName 은(는) 데이터베이스의 collection입니다.

  • snapshotId collection에 있는 데이터 스냅샷의 고유 식별자입니다.

참고

와일드카드가 아닌 컬렉션의 경우, databases.[n].collections.[n].dataSources.[n].datasetPrefix 옵션을 지정하면 이 옵션을 지정할 수 없는데, 이는 Atlas Data Federation이 databases.[n].collections.[n].dataSources.[n].datasetPrefix 옵션을 통해 지정된 이름을 사용하여 최신 데이터 세트에 대한 컬렉션을 자동으로 생성하기 때문입니다.

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

와일드카드 collection에 필요합니다.

Atlas Data Lake 데이터 세트 이름 또는 Atlas Online Archive 데이터 세트 이름과 일치시킬 데이터 세트 이름 접두사. 와일드카드 컬렉션에 대해 이 항목을 설정하면 Atlas Data Federation은 접두사가 여기에 지정된 값과 일치하는 Atlas Data Lake 데이터 세트 이름 또는 온라인 아카이브 데이터 세트 이름에만 컬렉션을 매핑합니다.

예제

{
...,
"name": "*",
"dataSources": [
{
"storeName": "aws-dl-store",
"datasetPrefix":
"v1$atlas$snapshot$MyCluster$MyDB$MyCollection",
"trimLevel": 3
}
]
}

와일드카드가 아닌 컬렉션에 이 설정을 지정하면 Atlas Data Federation은 가장 최근에 캡처한 스냅샷의 최신 데이터 세트만 컬렉션에 매핑합니다. 와일드카드가 아닌 컬렉션에 대해 이 옵션을 지정하는 경우에도 databases.[n].collections.[n].dataSources.[n].datasetName 를 지정할 수 없습니다.

예제

{
...,
"name": "myFederatedDbCollection",
"dataSources": [
{
"storeName": "aws-dl-store",
"datasetPrefix": "v1$atlas$snapshot$MyCluster$MyDB$MyCollection"
}
]
}
databases.[n].collections.[n].dataSources.[n].trimLevel

나머지 필드를 와일드카드 collection 이름에 매핑하기 전에 데이터 세트 이름 왼쪽에서 잘라낼 데이터 세트 이름의 필드 수를 지정하는 부호 없는 정수입니다. 값은 0 보다 크고 7 보다 작아야 합니다. 와일드카드 collection에 대해서만 이 설정을 지정할 수 있습니다.

예제

다음 Atlas Data Lake 데이터 세트 이름을 고려하세요.

v1$atlas$snapshot$MyCluster$MyDB$MyCollection$snapshotDate

Atlas Data Federation은 다양한 다듬기 수준에 대해 다음 collection 이름을 동적으로 생성합니다.

트림 레벨
컬렉션 이름
5
MyCollection_snapshotDate
4
MyDB_MyCollection_snapshotDate
3
MyCluster_MyDB_MyCollection_snapshotDate
2
snapshot_MyCluster_MyDB_MyCollection_snapshotDate
1
atlas_snapshot_atlas_MyCluster_MyDB_MyCollection_snapshotDate
0
v1_atlas_snapshot_atlas_MyCluster_MyDB_MyCollection_snapshotDate

Atlas UI의 시각 편집기를 사용하여 이 설정을 구성할 수 없습니다. 따라서 이 설정은 기본적으로 비주얼 편집기를 사용하는 구성의 경우 트림 수준 5 로 설정됩니다.

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

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

필드 이름
설명
provider
연합 데이터베이스 인스턴스 스토리지 구성의 제공자(stores.[n].provider)
clusterName
Atlas cluster의 이름
databaseName
Atlas cluster에 있는 데이터베이스의 이름
collectionName
collection 이름
snapshotID
스냅샷을 식별하는 고유한 24자리 16진수 문자열
dataSetName
Data Lake 데이터 세트 또는 온라인 아카이브 데이터 세트의 이름(databases.[n].collections.[n].dataSources.[n].datasetName)

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

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

데이터 소스에 대한 collection을 동적으로 생성할 데이터 세트의 최대 개수를 지정하는 부호 없는 정수입니다. 0 보다 큰 값을 제공해야 합니다. 와일드카드 collection에 대해서만 이 설정을 지정할 수 있습니다. Atlas Data Federation은 사전순 역순으로 데이터 세트를 반환합니다.

참고

Atlas UI의 시각 편집기를 사용하여 이 설정을 구성할 수 없습니다. 따라서 Atlas Data Federation 구성에는 비주얼 편집기를 사용하는 구성에 대한 데이터 세트 수에 대한 제한이 포함되어 있지 않습니다.

← 연합 데이터베이스 인스턴스 배포