문서 메뉴
문서 홈
/
MongoDB 아틀라스
/ / /

쿼리 성능 최적화

이 페이지의 내용

  • S3의 데이터 구조
  • 데이터 파일 크기
  • 데이터 파일 형식

연합 데이터베이스 인스턴스의 성능은 다음 요인의 영향을 받습니다.

  • S3 의 데이터 구조와 연합 데이터베이스 인스턴스 구성에서 데이터를 표현하는 방법.

  • 데이터 파일의 크기.

  • 데이터 파일의 형식과 구조입니다.

관리를 더 쉽게 하려면 데이터가 논리적으로 파티션으로 그룹화되어 있는지 확인하세요. Atlas Data Federation은 파티션 구문 에 지정한 필드 값으로 만든 파티션을 활용합니다. 파티션 구조가 쿼리 패턴에 매핑되고 파티션 구조가 databases.[n].collections.[n].dataSources.[n].path 에 정의되어 있는지 확인하여 연합 데이터베이스 인스턴스의 성능을 향상시킬 수 있습니다. 파티션의 경우 자주 쿼리하는 필드를 선택하고 첫 번째 위치에서 가장 자주 쿼리하는 필드부터 마지막 위치에서 가장 적게 쿼리되는 필드까지 정렬합니다.

databases.[n].collections.[n].dataSources.[n].path 에 나열된 필드의 순서는 복합 인덱스 에서와 같은 방식으로 중요합니다. 지정된 경로는 먼저 첫 번째 필드의 값으로 분할된 다음 다음 필드의 값으로 분할되는 데이터에 해당합니다.

예제

software, computerOS 필드가 있는 collection 있고 S3 버킷에 software 필드에 대해 먼저 metrics 라는 이름을 붙이고, computer 필드 다음에, OS 필드입니다.

metrics
|--software
|--computer
|--OS

Atlas Data Federation은 이러한 필드에 대한 쿼리에 파티션을 사용합니다.

  • software 필드

  • software 필드, computer 필드

  • software computer 필드와 OS 필드 및 필드로 구성됩니다.

Atlas Data Federation은 파티션을 사용하여 softwareOS 필드에 대한 쿼리를 지원할 수 있습니다. 그러나 이 경우 Atlas Data Federation은 쿼리가 softwarecomputer 필드에만 있는 경우만큼 쿼리 효율적이지 않습니다. 파티션은 순서대로 구문 분석됩니다. 쿼리에서 특정 파티션이 생략되면 Atlas Data Federation은 파티션 뒤에 오는 파티션을 사용하는 데 효율성이 떨어집니다. softwareOS 에 대한 쿼리에서는 computer 이 생략되므로 Atlas Data Federation은 software 파티션을 OS 파티션보다 더 효율적으로 사용하여 이 쿼리를 지원합니다.

Atlas Data Federation은 파티션을 사용하여 databases.[n].collections.[n].dataSources.[n].path 에 지정되지 않은 필드에 대한 쿼리를 지원할 수 없습니다. 또한 Atlas Data Federation은 파티션을 사용하여 software 필드 없이 다음 필드를 포함하는 쿼리를 지원할 수 없습니다.

  • computer 필드

  • OS 필드 또는

  • computerOS 필드

파티션을 사용하면 구성 의 파티션 속성에 파티션을 매핑하여 Data Federation 성능을 향상시킬 수 있습니다. 파티션 속성 ( S3 접두사에서 폴더처럼 보이는 부분)을 쿼리 속성에 매핑하면 Atlas Data Federation이 쿼리와 관련된 데이터가 포함된 파일을 선택적으로 열 수 있습니다. 이렇게 하면 Data Federation이 Amazon Web Services에서 더 적은 파일을 읽고 다운로드하기 때문에 쿼리에 걸리는 시간이 줄어들고 비용이 절감됩니다.

예제

다음과 같은 구조의 S3 버킷 metrics 를 가정해 보겠습니다.

metrics
|--hardware
|--software
|--computer
|--phone

구성에서 /metrics/{metric_type string}/* 을(를) 정의하여 '지표 유형'의 파티션 속성을 설정할 수 있습니다. {metric_type: software} 가 포함된 쿼리를 실행하면 Data Federation은 접두사가 /software 인 파일만 처리하고 접두사가 /hardware 인 파일은 무시합니다.

그런 다음 구성에서 /metrics/{metric_type string}/{software_type string} 을(를) 정의하여 '소프트웨어 유형'에 대한 파티션 속성을 설정할 수 있습니다. {metric_type: software, software_type: computer} 가 포함된 쿼리를 실행하면 Data Federation은 접두사가 /phone 있는 파일을 무시합니다.

파티션 속성을 collection databases.[n].collections.[n].dataSources.[n].path 에 매핑하는 방법에 대한 자세한 내용 은 S3 데이터 경로 정의를 참조하세요.

Atlas Data Federation이 처리하는 각 파일에는 일정량의 컴퓨팅 리소스가 필요합니다. 연합 데이터베이스 인스턴스 저장소에 작은 데이터 파일이 많이 포함되어 있는 경우 필요한 리소스가 복합되어 성능이 저하될 수 있습니다. 또는 Data Federation이 불필요한 데이터를 다운로드하고 처리하므로 많은 대용량 데이터 파일은 문제가 됩니다.

대부분의 사용 사례에서 성능이 뛰어난 파일 크기는 100~200MB 입니다.

연합 데이터베이스 인스턴스는 여러 데이터 파일 형식 을 지원합니다. 특정 파일 형식을 압축하거나 쿼리에 맞게 파일 콘텐츠를 최적화하여 성능을 향상시킬 수 있습니다.

데이터 파일을 압축하면 다운로드 시간이 덜 걸립니다. 다운로드 시간이 단축되면 압축되지 않은 데이터를 구문 분석하는 것보다 성능상의 이점이 더 큽니다.

gzip을사용하여 다음 파일 형식을 압축할 수 있습니다:

Parquet, AvroORC 파일에는 파일 자체에 대한 메타데이터가 포함되어 있으므로 애플리케이션이 다양한 방식으로 파일 콘텐츠를 탐색할 수 있습니다. 실행하려는 쿼리에 맞게 데이터 파일을 구성하면 Atlas Data Federation이 이 메타데이터를 활용하여 올바른 데이터로 빠르게 이동할 수 있습니다.

이러한 형식 중Parquet 은 파일은 Parquet의행 및 열 그룹을 구문 분석하는 데 최적화되어 연합 데이터베이스 인스턴스에 최상의 성능과 공간 효율성을 제공합니다.

돌아가기

파티션 속성을 사용합니다.