Atlas Data Federation은 연합 데이터베이스 인스턴스 저장소로 Azure Blob Storage 컨테이너를 지원합니다.더 데이터에 대한 쿼리를 실행하려면 연합 데이터베이스 인스턴스에서 Azure Blob Storage 컨테이너에 대한 매핑을 정의해야 합니다.
참고
이 페이지에서는 블롭을 파일로, 구분 기호로 구분된 접두사를 디렉토리로 지칭하지만, 이러한 블롭 스토리지 서비스는 실제로 파일 시스템이 아니며 모든 경우에 하드 드라이브의 파일과 동일하게 동작하는 것은 아닙니다.
구성 파일 형식
Azure Blob Storage 컨테이너 에 대한 연합 데이터베이스 인스턴스 저장 정의하려면 구성 매개 변수를 JSON 형식으로 지정할 수 있습니다. 구성에는 Azure Blob Storage 데이터 저장 포함되어 있으며 쿼리 할 수 있는 가상 컬렉션에 매핑합니다.
Azure Blob Storage 컨테이너의 데이터에 대한 JSON 구성은 다음 필드를 사용합니다.
1 { 2 "stores" : [ 3 { 4 "name" : "<string>", 5 "provider": "<string>", 6 "region" : "<string>", 7 "serviceURL" : "<string>", 8 "containerName" : "<string>", 9 "delimiter" : "<string>", 10 "prefix": "<string>", 11 "public": <boolean> 12 } 13 ], 14 "databases" : [ 15 { 16 "name" : "<string>", 17 "collections" : [ 18 { 19 "name" : "<string>", 20 "dataSources" : [ 21 { 22 "storeName" : "<string>", 23 "path" : "<string>", 24 "defaultFormat" : "<string>", 25 "provenanceFieldName": "<string>", 26 "omitAttributes": <boolean> 27 } 28 ] 29 } 30 ], 31 "maxWildcardCollections" : <integer>, 32 "views" : [ 33 { 34 "name" : "<string>", 35 "source" : "<string>", 36 "pipeline" : "<string>" 37 } 38 ] 39 } 40 ] 41 } 42
Azure Blob Storage의 JSON 구성에는및 라는 두 개의stores
databases
최상위 객체가 포함되어 있습니다.
stores
stores
객체 연합 데이터베이스 인스턴스 와 연결된 각 데이터 저장 정의합니다. 연합 데이터베이스 인스턴스 저장 Azure Blob Storage 컨테이너 의 파일을 캡처합니다. Data Federation stores
객체 에 정의된 데이터 저장소에만 액세스 할 수 있습니다.
stores
객체 에는 다음 필드가 포함되어 있습니다.
1 "stores" : [ 2 { 3 "name" : "<string>", 4 "provider" : "<string>", 5 "region" : "<string>", 6 "serviceURL" : "<string>", 7 "containerName" : "<string>", 8 "delimiter": "<string", 9 "prefix" : "<string>", 10 "public": <boolean> 11 } 12 ]
다음 표에서는 Stores 객체 의 필드에 대해 설명합니다.
필드 | 유형 | 필요성 | 설명 | ||||
---|---|---|---|---|---|---|---|
배열 | 필수 | 각 객체가 연합 데이터베이스 인스턴스와 연결할 데이터 저장소를 나타내는 객체 배열입니다. 연합 데이터베이스 인스턴스 저장소는 다음을 캡처합니다.
Atlas Data Federation은 | |||||
문자열 | 필수 | 연합 데이터베이스 인스턴스 저장 의 이름입니다. | |||||
문자열 | 필수 | 데이터가 저장되는 위치를 정의합니다. Azure Blob Storage 컨테이너의 값은 | |||||
문자열 | 필수 | 데이터가 저장된 Azure 리전의 이름입니다. | |||||
문자열 | 필수 | 블롭 컨테이너가 포함된 Azure Blob Storage 계정의 URL입니다.
여기서 | |||||
문자열 | 필수 | 파일이 포함된 Azure Blob Storage 컨테이너의 이름입니다. | |||||
문자열 | 옵션 | Azure Blob Storage에서 파일을 검색할 때 접두사 Atlas Data Federation이 적용됩니다. 예를 들어 다음과 같은 구조의 Azure Blob Storage 컨테이너
연합 데이터베이스 인스턴스 저장 에 값을 추가하여 수집할 이 설정을 생략하면 Atlas Data Federation은 Azure Blob Storage 컨테이너의 루트에서 모든 파일을 검색합니다. | |||||
문자열 | 옵션 | 연합 데이터베이스 인스턴스 저장 에서 생략하는 경우 기본값은 | |||||
부울 | 옵션 | Azure Blob Storage 컨테이너의 공개 여부를 지정합니다.
생략하는 경우 기본값은 |
databases
databases
객체는 stores
에 정의된 각 연합 데이터베이스 인스턴스 저장소와 데이터베이스의 MongoDB 컬렉션 간의 매핑을 정의합니다.
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 ]
다음 표에서는 데이터베이스 객체 의 필드에 대해 설명합니다.
필드 | 유형 | 필요성 | 설명 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
배열 | 필수 | 각 객체가 데이터베이스, 객체의 컬렉션, 그리고 선택적으로 컬렉션에 대한 모든 보기를 나타내는 객체 배열입니다. 각 데이터베이스에는 여러 개의 | |||||||||||||
문자열 | 필수 | Atlas Data Federation이 데이터 저장소에 포함된 데이터를 매핑하는 데이터베이스의 이름입니다. | |||||||||||||
배열 | 필수 | 각 객체 | |||||||||||||
문자열 | 필수 | Atlas Data Federation 각 컬렉션 이름에 | |||||||||||||
배열 | 필수 | 각 객체 컬렉션 과 매핑할 | |||||||||||||
문자열 | 필수 | ||||||||||||||
문자열 | 필수 | Atlas Data Federation 파일을 예를 들어 다음과 같은 구조의 Azure Blob Storage 컨테이너
경로에
자세한 내용은 S3 데이터 경로 정의를 참조하세요.
동일한 유형의 속성을 지정하는 경우 다음 중 하나를 수행하세요.
| |||||||||||||
문자열 | 옵션 | Data Federation defaultFormat 필드 에는 다음 값이 유효합니다.
자세한 내용은 지원되는 데이터 형식을 참조하세요. | |||||||||||||
문자열 | 필수 | 결과에 있는 문서의 출처를 포함하는 필드의 이름입니다. 스토리지 구성에서 이 설정을 지정하면 Atlas Data Federation은 결과의 각 문서에 대해 다음 필드를 반환합니다.
| |||||||||||||
부울 | 필수 | Atlas Data Federation 이 컬렉션 에 추가하는 속성(키 및 값 쌍)을 생략할지 여부를 지정하는 플래그입니다. 다음 값 중 하나를 지정할 수 있습니다.
생략하면 기본적으로 예시 들어: | |||||||||||||
integer | 옵션 | 데이터베이스 의 최대 와일드카드* 컬렉션 수입니다. 각 와일드카드 컬렉션 데이터 소스 하나만 있을 수 있습니다. 값은 1 에서 1000 사이일 수 있습니다. 생략하면 기본값은 100입니다. | |||||||||||||
배열 | 필수 | ||||||||||||||
문자열 | 필수 | 뷰를 식별하는 라벨입니다. | |||||||||||||
문자열 | 필수 | 뷰에 대한 소스 컬렉션 의 이름입니다. $sql 단계를 사용하여 뷰를 만들려면 SQL 성명서 소스 컬렉션 지정하므로 이 필드 생략해야 합니다. | |||||||||||||
배열 | 옵션 |
Azure Blob Storage 데이터 저장소에 대한 구성 예시
예시
데이터 센터에서 수집한 데이터를 포함하는 Azure Blob Storage 컨테이너 datacenter-alpha
을(를) 가정해 보겠습니다.
|--metrics |--hardware
/metrics/hardware
경로는 데이터 센터 하드웨어에서 파생된 지표가 포함된 JSON 파일을 저장합니다. 여기서 각 파일 이름은 해당 파일이 다루는 24시간 기간의 UNIX 타임스탬프(밀리초)입니다.
/hardware/1564671291998.json
구성은 다음과 같습니다.
eastus2
Azure 리전의datacenter-alpha
Azure Blob Storage 컨테이너에 연합 데이터베이스 인스턴스 저장소를 정의합니다. 연합 데이터베이스 인스턴스 저장소는metrics
디렉토리 경로에 있는 데이터 파일만 포함하도록 특별히 제한됩니다.hardware
폴더의 파일을 MongoDB 데이터베이스datacenter-alpha-metrics
및 컬렉션hardware
에 매핑합니다. 구성 매핑에는 파일 이름에 암시된 타임스탬프를 캡처하기 위한 구문 분석 논리가 포함되어 있습니다.
{ "stores" : [ { "name" : "datacenter", "provider" : "azure", "region" : "eastus2", "containerName" : "datacenter-alpha", "serviceURL" : "https://mystorageaccount.blob.core.windows.net/" } ], "databases" : [ { "name" : "datacenter-alpha-metrics", "collections" : [ { "name" : "hardware", "dataSources" : [ { "storeName" : "datacenter", "path" : "/hardware/{date date}" } ] } ] } ] }
Atlas Data Federation은 Azure Blob Storage 컨테이너 datacenter-alpha
를 구문 분석하고 /metrics/hardware/
아래의 모든 파일을 처리합니다. collections
은 경로 구문 분석 구문을 사용하여 각 문서의 date
필드(ISO-8601 날짜)에 파일 이름을 매핑합니다. 일치하는 date
필드가 문서에 없으면 Atlas Data Federation이 해당 필드를 추가합니다.
연합 데이터베이스 인스턴스에 연결된 사용자는 MongoDB 쿼리 언어 및 지원되는 집계를 사용하여 datacenter-alpha-metrics.hardware
컬렉션을 통해 Azure Blob Storage 데이컨테이너의터를 분석할 수 있습니다.