개요
Atlas Data Federation은 연합 데이터베이스 인스턴스 저장소로 AWS S3 버킷을 지원합니다. 데이터에 대해 쿼리를 실행하려면 연합 데이터베이스 인스턴스에서 AWS S3 버킷으로의 매핑을 정의해야 합니다.
구성 파일 형식
AWS S3 버킷에 대한 연합 데이터베이스 인스턴스 저장소를 정의하려면 JSON에서 구성 매개변수를 지정할 수 있습니다. 이 구성에는 AWS 데이터 저장소가 포함되며, 이를 쿼리 가능한 가상 컬렉션에 매핑합니다.
AWS S3 버킷의 데이터에 대한 JSON 구성은 다음 필드를 사용합니다.
1 { 2 "stores" : [ 3 { 4 "name" : "<string>", 5 "provider": "<string>", 6 "region" : "<string>", 7 "bucket" : "<string>", 8 "additionalStorageClasses" : ["<string>"], 9 "prefix" : "<string>", 10 "includeTags": <boolean>, 11 "delimiter": "<string>", 12 "public": <boolean> 13 } 14 ], 15 "databases" : [ 16 { 17 "name" : "<string>", 18 "collections" : [ 19 { 20 "name" : "<string>", 21 "dataSources" : [ 22 { 23 "storeName" : "<string>", 24 "path" : "<string>", 25 "defaultFormat" : "<string>", 26 "provenanceFieldName": "<string>", 27 "omitAttributes": true | false 28 } 29 ] 30 } 31 ], 32 "maxWildcardCollections" : <integer>, 33 "views" : [ 34 { 35 "name" : "<string>", 36 "source" : "<string>", 37 "pipeline" : "<string>" 38 } 39 ] 40 } 41 ] 42 }
Amazon Web Services S3 데이터 저장 의 JSON 구성에는 및 라는 두stores
databases
개의 최상위 객체가 포함되어 있습니다.
stores
stores
객체는 연합 데이터베이스 인스턴스와 연결된 각 데이터 저장소를 정의합니다. 이 저장소는 AWS S3 버킷의 파일을 캡처합니다. Data Federation은 stores
객체에서 정의된 데이터 저장소에만 액세스할 수 있습니다.
stores
객체 에는 다음 필드가 포함되어 있습니다.
1 "stores" : [ 2 { 3 "name" : "<string>", 4 "provider" : "<string>", 5 "region" : "<string>", 6 "bucket" : "<string>", 7 "additionalStorageClasses" : ["<string>"], 8 "prefix" : "<string>", 9 "delimiter" : "<string>", 10 "includeTags": <boolean>, 11 "public": <boolean> 12 } 13 ]
다음 표에서는 stores
객체의 필드에 대해 설명합니다.
필드 | 유형 | 필요성 | 설명 |
---|---|---|---|
배열 | 필수 | 각 객체가 연합 데이터베이스 인스턴스와 연결할 데이터 저장소를 나타내는 객체 배열입니다. 저장소는 AWS S3 버킷의 파일을 캡처합니다. Atlas Data Federation은 | |
문자열 | 필수 | 연합 데이터베이스 인스턴스 저장 의 이름입니다. | |
문자열 | 필수 | 데이터가 저장되는 위치를 정의합니다. AWS S3 버킷의 값은 | |
문자열 | 필수 | AWS S3 버킷이 호스팅된 AWS 지역의 이름입니다. 유효한 지역 이름 목록은 Amazon Web Services(AWS)를 참조하세요. | |
문자열 | 필수 | AWS S3 버킷의 이름입니다. Atlas Data Federation이 구성된 AWS IAM 자격 증명으로 액세스할 수 있는 AWS S3 버킷의 이름과 정확히 일치해야 합니다. | |
배열 | 옵션 | Amazon Web Services S3 저장 클래스 의 배열입니다. Atlas Data Federation 쿼리 결과에 이러한 저장 클래스의 파일을 포함합니다. 유효한 값은 다음과 같습니다.
참고: Standard 저장 클래스의 파일은 기본값으로 지원됩니다. | |
문자열 | 옵션 | AWS S3 버킷의 파일 검색 경로에 접두사를 추가합니다. Atlas Data Federation은 생략할 경우, Atlas Data Federation은 AWS S3 버킷의 루트에서 모든 파일을 검색합니다. | |
문자열 | 옵션 | 연합 데이터베이스 인스턴스 저장 에서 경로 세그먼트를 구분하는 구분 기호를 설정합니다. Data Federation 구분 기호를 사용하여 계층적 디렉토리 구조의 Amazon Web Services S3 버킷을 효율적으로 탐색합니다. Amazon Web Services S3 객체 키에서 지원하는 모든 문자를 구분 기호로 지정할 수 있습니다. 예시 들어 밑줄( 생략하는 경우 기본값은 | |
부울 | 옵션 | 지정된 경로의 파일에 AWS S3 태그를 지정하다 추가 파티션 속성으로 사용할지 여부를 결정합니다. 유효한 값은 생략하는 경우 기본값은
경고: | |
부울 | 옵션 | 버킷의 공개 여부를 지정합니다.
생략하는 경우 기본값은 |
databases
databases
객체는 stores
에 정의된 각 연합 데이터베이스 인스턴스 저장소와 데이터베이스의 MongoDB 컬렉션 간의 매핑을 정의합니다.
database
객체 에는 다음 필드가 포함되어 있습니다.
1 "databases" : [ 2 { 3 "name" : "<string>", 4 "collections" : [ 5 { 6 "name" : "<string>", 7 "dataSources" : [ 8 { 9 "storeName" : "<string>", 10 "defaultFormat" : "<string>", 11 "path" : "<string>", 12 "provenanceFieldName": "<string>", 13 "omitAttributes": <boolean> 14 } 15 ] 16 } 17 ], 18 "maxWildcardCollections" : <integer>, 19 "views" : [ 20 { 21 "name" : "<string>", 22 "source" : "<string>", 23 "pipeline" : "<string>" 24 } 25 ] 26 } 27 ]
다음 표에서는 database
객체의 필드에 대해 설명합니다.
필드 | 유형 | 필요성 | 설명 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
배열 | 필수 | 각 객체가 데이터베이스, 객체의 컬렉션, 그리고 선택적으로 컬렉션에 대한 모든 보기를 나타내는 객체 배열입니다. 각 데이터베이스에는 여러 개의 | |||||||||||||
문자열 | 필수 | Atlas Data Federation이 데이터 저장소에 포함된 데이터를 매핑하는 데이터베이스의 이름입니다. | |||||||||||||
배열 | 필수 | 각 객체 | |||||||||||||
문자열 | 필수 | Atlas Data Federation 각 컬렉션 이름에 | |||||||||||||
배열 | 필수 | 각 객체 컬렉션 과 매핑할 | |||||||||||||
문자열 | 필수 | ||||||||||||||
문자열 | 필수 | 파일을 예를 들어 다음과 같은 구조의 S3 버킷
경로에
자세한 내용은 S3 데이터 경로 정의를 참조하세요.
동일한 유형의 속성을 지정하는 경우 다음 중 하나를 수행하세요.
Data Federation이
중요: 파일 형식이 이를 생략할 경우 Data Federation은 일부 파일 바이트를 처리하여 파일 형식을 감지하려고 시도합니다. | |||||||||||||
문자열 | 옵션 | 결과에 있는 문서의 출처를 포함하는 필드의 이름입니다. 스토리지 구성에서 이 설정을 지정하면 Atlas Data Federation은 결과의 각 문서에 대해 다음 필드를 반환합니다.
Atlas UI의 비주얼 편집기를 사용하여 이 설정을 구성할 수 없습니다. | |||||||||||||
부울 | 옵션 | Atlas Data Federation이 컬렉션의 문서에 추가하는 속성(키 및 값 쌍)을 생략할지 여부를 지정하는 플래그입니다. 다음 값 중 하나를 지정할 수 있습니다.
생략하면 기본적으로 예를 들면 다음과 같습니다.
| |||||||||||||
integer | 옵션 | 선택 사항. 데이터베이스에 있는 와일드카드 | |||||||||||||
배열 | 옵션 | ||||||||||||||
문자열 | 필수 | 뷰의 이름을 지정합니다. | |||||||||||||
문자열 | 필수 | 뷰에 대한 소스 컬렉션 의 이름입니다. $sql 단계를 사용하여 뷰를 만들려면 SQL 성명서 소스 컬렉션 지정하므로 이 필드 생략해야 합니다. | |||||||||||||
배열 | 옵션 |
|
S3 데이터 저장소 구성 예시
예시
데이터 센터에서 수집한 데이터가 들어 있는 S3 버킷 datacenter-alpha
을 생각해 봅시다.
|--metrics |--hardware
/metrics/hardware
경로는 데이터 센터 하드웨어에서 파생된 지표가 포함된 JSON 파일을 저장합니다. 여기서 각 파일 이름은 해당 파일이 다루는 24시간 기간의 UNIX 타임스탬프(밀리초)입니다.
/hardware/1564671291998.json
구성은 다음과 같습니다.
us-east-1
AWS 리전의datacenter-alpha
S3 버킷에 연합 데이터베이스 인스턴스 저장소를 정의합니다. 연합 데이터베이스 인스턴스 저장소는 특히metrics
폴더 경로의 데이터 파일로만 제한됩니다.hardware
폴더의 파일을 MongoDB 데이터베이스datacenter-alpha-metrics
및 컬렉션hardware
에 매핑합니다. 구성 매핑에는 파일 이름에 암시된 타임스탬프를 캡처하기 위한 구문 분석 논리가 포함되어 있습니다.
{ "stores" : [ { "name" : "datacenter-alpha", "provider" : "s3", "region" : "us-east-1", "bucket" : "datacenter-alpha", "additionalStorageClasses" : [ "STANDARD_IA" ], "prefix" : "/metrics", "delimiter" : "/" } ], "databases" : [ { "name" : "datacenter-alpha-metrics", "collections" : [ { "name" : "hardware", "dataSources" : [ { "storeName" : "datacenter-alpha", "path" : "/hardware/{date date}" } ] } ] } ] }
Atlas Data Federation은 S3 버킷 datacenter-alpha
를 구문 분석하고 /metrics/hardware/
아래의 모든 파일을 처리합니다. collections
은 경로 구문 분석 구문을 사용하여 각 문서의 date
필드(ISO-8601 날짜)에 파일 이름을 매핑합니다. 일치하는 date
필드가 문서에 없는 경우 해당 필드가 추가됩니다.
연합 데이터베이스 인스턴스에 연결된 사용자는 MongoDB 쿼리 언어 및 지원되는 집계를 사용하여 datacenter-alpha-metrics.hardware
컬렉션을 통해 AWS S3 버킷의 데이터를 분석할 수 있습니다.