MongoDB.local SF, Jan 15: See the speaker lineup & ship your AI vision faster. Use WEB50 to save 50%
Find out more >
Docs Menu
Docs Home
/ /

쿼리 성능 최적화

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

  • 데이터 파일의 크기.

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

연합 데이터베이스 인스턴스 쿼리 성능을 최적화하는 방법을 학습 다음 섹션을 참조하세요.

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

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

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

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

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

  • JSON

  • BSON

  • CSV

  • TSV

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

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

AWS 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 있는 파일을 무시합니다.

파티션 속성을 컬렉션 에 매핑하는 방법에 databases.[n].collections.[n].dataSources.[n].path대한 자세한 내용은 경로 파일 구문 정의를 참조하세요.

돌아가기

CSV 및 TSV

이 페이지의 내용