AWS S3 버킷
이 페이지의 내용
Atlas Data Federation은 연합 데이터베이스 인스턴스 저장소로 S3 버킷을 지원합니다. 데이터에 대한 쿼리를 실행하려면 연합 데이터베이스 인스턴스에서 S3 버킷에 대한 매핑을 정의해야 합니다.
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
은 경로 구문 분석 구문을 사용하여 파일 이름을 각 문서의 ISO-8601 날짜인 date
필드에 매핑합니다. 일치하는 date
필드가 문서에 없는 경우 해당 필드가 추가됩니다.
연합 데이터베이스 인스턴스에 연결된 사용자는 MongoDB 쿼리 언어 및 지원되는 집계를 사용해 S3 버킷의 데이터를 datacenter-alpha-metrics.hardware
컬렉션을 통해 분석할 수 있습니다.
구성 형식
연합 데이터베이스 인스턴스 구성의 형식은 다음과 같습니다.
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 }
stores
stores
객체는 연합 데이터베이스 인스턴스와 연결된 각 데이터 저장소를 정의합니다. 연합 데이터베이스 인스턴스 저장소는 S3 버킷의 파일, Atlas 클러스터의 문서 또는 공개적으로 액세스할 수 있는 URL에 저장된 파일을 캡처합니다. Data Federation은stores
객체에 정의된 데이터 저장소에만 액세스할 수 있습니다.databases
databases
객체는stores
에 정의된 각 연합 데이터베이스 인스턴스 저장소와 데이터베이스의 MongoDB 컬렉션 간의 매핑을 정의합니다.
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
각 객체가 연합 데이터베이스 인스턴스와 연결할 데이터 저장소를 나타내는 객체 배열입니다. 연합 데이터베이스 인스턴스 저장소는 S3 버킷의 파일, Atlas 클러스터의 문서 또는 공개적으로 액세스할 수 있는 URL에 저장된 파일을 캡처합니다. Atlas Data Federation은
stores
객체에 정의된 데이터 저장소에만 액세스할 수 있습니다.
stores.[n].name
연합 데이터베이스 인스턴스 저장소의 이름입니다.
databases.[n].collections.[n].dataSources.[n].storeName
필드는 매핑 구성의 일부로 이 값을 참조합니다.
stores.[n].region
S3 버킷이 호스팅되는 AWS 리전의 이름입니다. 유효한 리전 이름 목록은 Amazon Web Services(AWS)를 참조합니다.
stores.[n].bucket
AWS S3 버킷의 이름입니다. Atlas Data Federation이 구성된 AWS IAM 자격 증명으로 액세스할 수 있는 S3 버킷의 이름과 정확히 일치해야 합니다.
stores.[n].additionalStorageClasses
선택 사항입니다. AWS S3 스토리지 클래스의 배열입니다. Atlas Data Federation은 쿼리 결과에 이러한 저장소 클래스의 파일을 포함합니다. 유효한 값은 다음과 같습니다.
INTELLIGENT_TIERING
Intelligent Tiering 스토리지 클래스에 파일을 포함합니다.STANDARD_IA
로 표준~사용 빈도가 낮은 액세스 스토리지 클래스에 파일을 포함할 수 있습니다.참고
표준 스토리지 클래스의 파일은 기본적으로 지원됩니다.
stores.[n].prefix
선택 사항. S3 버킷에서 파일을 검색할 때 접두사 Atlas Data Federation이 적용됩니다.
예를 들어 다음과 같은 구조의 S3 버킷
metrics
감안합니다.metrics |--hardware |--software |--computed 연합 데이터베이스 인스턴스 저장소는
databases.[n].collections.[n].dataSources.[n].path
에prefix
값을 추가하여 수집할 파일의 전체 경로를 생성합니다.prefix
를/software
로 설정하면 연합 데이터베이스 인스턴스 저장소를 사용하는 모든databases
객체가 하위 경로/software
로만 제한됩니다.이 설정을 생략하면 Atlas Data Federation은 S3 버킷의 루트에서 모든 파일을 검색합니다.
stores.[n].delimiter
선택 사항. 연합 데이터베이스 인스턴스 저장소에서
databases.[n].collections.[n].dataSources.[n].path
세그먼트를 구분하는 구분 기호입니다. Data Federation은 구분 기호를 사용하여 계층적 디렉토리 구조의 S3 버킷을 효율적으로 탐색합니다. S3 객체 키 에서 지원하는 모든 문자를 지정할 수 있습니다. 를 구분 기호로 사용합니다. 예를 들어 밑줄(_
) 또는 더하기 기호(+
)를 지정하거나 이중 밑줄(__
)과 같은 여러 문자를 구분 기호로 지정할 수 있습니다.생략하는 경우 기본값은
"/"
입니다.
stores.[n].includeTags
선택 사항. 지정된 경로의 파일에 S3 태그를 추가 파티션 특성으로 사용할지 여부를 결정합니다. 유효한 값은
true
및false
입니다.생략하는 경우 기본값은
false
입니다.true
로 설정된 경우 Atlas Data Federation은 다음을 수행합니다.S3 태그를 추가 파티션 속성으로 추가합니다.
태그가 지정된 파일의 각 문서에 각 태그를 연결하는 새로운 최상위 BSON 요소를 추가합니다.
경고
true
로 설정된 경우, Atlas Data Federation은 태그를 가져오기 위해 S3를 추가로 호출하여 추가 파티션 속성에 대한 파일을 처리합니다. 이 동작은 성능에 영향을 줄 수 있습니다.
databases
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 ]
databases
각 객체가 데이터베이스, 객체의 컬렉션, 그리고 선택적으로 컬렉션에 대한 모든 보기를 나타내는 객체 배열입니다. 각 데이터베이스에는 여러 개의
collections
및views
객체가 있을 수 있습니다.
databases.[n].collections
각 객체가
stores
연합 데이터베이스 인스턴스 저장소에 매핑되는 컬렉션 및 데이터 소스를 나타내는 객체 배열입니다.
databases.[n].collections.[n].name
각
databases.[n].collections.[n].dataSources.[n].storeName
에 포함된 데이터를 Atlas Data Federation이 매핑하는 컬렉션의 이름입니다. 배열의 각 객체는 컬렉션과stores
배열의 객체 간의 매핑을 나타냅니다.컬렉션 이름에
*
을 지정하고path
필드에collectionName()
함수를 지정하여 파일 경로에서 컬렉션 이름을 동적으로 생성할 수 있습니다. 예시는 파일 경로에서 동적 컬렉션 이름 생성을 참조하세요.
databases.[n].collections.[n].dataSources
각 객체가 컬렉션과 매핑할
stores
연합 데이터베이스 인스턴스 저장소를 나타내는 객체의 배열입니다.
databases.[n].collections.[n].dataSources.[n].storeName
<collection>
에 매핑할 연합 데이터베이스 인스턴스 저장소의 이름입니다.stores
배열에 있는 객체의name
과 일치해야 합니다.
databases.[n].collections.[n].dataSources.[n].path
파일을
<collection>
에 매핑하기 전에 Atlas Data Federation이storeName
에서 파일을 검색하고 구문 분석하는 방식을 제어합니다. 연합 데이터베이스 인스턴스는stores.[n].prefix
를path
에 추가하여 그 안에서 검색할 전체 경로를 구축합니다./
를 지정하여prefix
경로의 모든 파일과 폴더를 캡처합니다.예를 들어 다음과 같은 구조의 S3 버킷
metrics
를 가정해 보겠습니다.metrics |--hardware |--software |--computed /
의path
는 Atlas Data Federation이metrics
버킷에 있는 모든 파일 및 폴더를 검색하도록 지시합니다./hardware
의path
은 수집할 파일에 대해 해당 경로만 검색하도록 Atlas Data Federation에 지시합니다.prefix
가software
인 경우, Atlas Data Federation은/software/computed
경로에 있는 파일만 검색합니다.경로에
*
와일드카드 문자를 추가하면 Atlas Data Federation이 경로에서 해당 지점에 있는 모든 파일과 폴더를 포함하도록 지시합니다. 예를 들어,/software/computed*
는/software/computed-detailed
,/software/computedArchive
,/software/computed/errors
등의 파일과 일치합니다.path
다음을 포함하여 파일 이름 구문 분석을 위한 추가 구문을 지원합니다.파일 이름에서 문서 필드를 생성합니다.
표현식을 사용하여 필드 생성을 제어합니다.
타임스탬프별로 파일 이름을 버킷에 넣기 위한 경계를 설정합니다.
자세한 내용은 S3 데이터 경로 정의를 참조하세요.
path
지정 시 다음을 수행합니다.파티션 속성에 대한 데이터 유형을 지정합니다.
파티션 속성 유형이 구문 분석할 데이터 유형과 일치하는지 확인합니다.
delimiter
에 지정된 구획 문자를 사용합니다.
동일한 유형의 속성을 지정하는 경우 다음 중 하나를 수행하세요.
속성 사이에 상수 구분 기호를 추가합니다.
정규 표현식을 사용하여 검색 패턴을 설명합니다. 자세히 보려면 Unsupported Parsing Functions 참조합니다.
선택 사항. Data Federation이
databases.[n].collections.[n].dataSources.[n].storeName
을 검색하는 동안 확장명이 없는 파일을 발견하는 경우 가정하는 기본 형식입니다.defaultFormat
필드에 유효한 값은 다음과 같습니다..json
,.json.gz
,.bson
,.bson.gz
,.avro,
.avro.gz
,.orc
,.tsv
,.tsv.gz
,.csv
,.csv.gz
,.parquet
참고
파일 형식이
CSV
또는TSV
인 경우 데이터에 헤더 행을 포함해야 합니다. 자세한 내용은 CSV 및 TSV를 참조하세요.이를 생략할 경우 Data Federation은 일부 파일 바이트를 처리하여 파일 형식을 감지하려고 시도합니다.
databases.[n].collections.[n].dataSources.[n].provenanceFieldName
결과에 있는 문서의 출처를 포함하는 필드의 이름입니다. 스토리지 구성에서 이 설정을 지정하면 Atlas Data Federation은 결과의 각 문서에 대해 다음 필드를 반환합니다.
필드 이름설명provider
연합 데이터베이스 인스턴스 저장소 구성의 제공자(stores.[n].provider
)region
AWS 리전(stores.[n].region
)bucket
key
lastModified
문서가 마지막으로 수정된 날짜와 시간입니다.Atlas UI의 비주얼 편집기를 사용하여 이 설정을 구성할 수 없습니다.
databases.[n].collections.[n].dataSources.[n].omitAttributes
선택 사항. Atlas Data Federation이 컬렉션의 문서에 추가하는 속성(키 및 값 쌍)을 생략할지 여부를 지정하는 플래그입니다. 다음 값 중 하나를 지정할 수 있습니다.
false
- 속성 추가true
- 속성 생략
생략하면 기본적으로
false
가 설정되고 Atlas Data Federation이 속성을 추가합니다.예시
path
/employees/{phone string}
을 구성한/employees/949-555-0195.json
이라는 파일을 고려하세요. Atlas Data Federation은omitAttributes
가false
일 경우 문서에phone: 949-555-0195
속성을 추가하며, 문서에 이미 키-값 쌍이 존재하는지 여부와 관계없이 추가합니다.omitAttributes
를true
로 설정하면 Atlas Data Federation은 가상 컬렉션의 문서에 속성을 추가하지 않습니다.
databases.[n].maxWildcardCollections
선택 사항. 데이터베이스에 있는 와일드카드
*
컬렉션의 최대 개수입니다. 각 와일드카드 컬렉션에는 데이터 원본이 하나만 있을 수 있습니다. 값은1
에서1000
사이일 수 있습니다. 이를 생략하는 경우 기본값은100
입니다.
databases.[n].views.[n].source
뷰에 대한 소스 컬렉션 의 이름입니다.
$sql
단계로 뷰를 만들려면 SQL 성명서 이 소스 컬렉션 을 지정하므로 이 필드 를 생략해야 합니다.