쿼리 성능 최적화
이 페이지의 내용
연합 데이터베이스 인스턴스의 성능은 다음 요인의 영향을 받습니다.
S3 의 데이터 구조와 연합 데이터베이스 인스턴스 구성에서 데이터를 표현하는 방법.
데이터 파일의 크기.
데이터 파일의 형식과 구조입니다.
S3의데이터 구조
관리를 더 쉽게 하려면 데이터가 논리적으로 파티션으로 그룹화되어 있는지 확인하세요. Atlas Data Federation은 파티션 구문 에 지정한 필드 값으로 만든 파티션을 활용합니다. 파티션 구조가 쿼리 패턴에 매핑되고 파티션 구조가 databases.[n].collections.[n].dataSources.[n].path
에 정의되어 있는지 확인하여 연합 데이터베이스 인스턴스의 성능을 향상시킬 수 있습니다. 파티션의 경우 자주 쿼리하는 필드를 선택하고 첫 번째 위치에서 가장 자주 쿼리하는 필드부터 마지막 위치에서 가장 적게 쿼리되는 필드까지 정렬합니다.
databases.[n].collections.[n].dataSources.[n].path
에 나열된 필드의 순서는 복합 인덱스 에서와 같은 방식으로 중요합니다. 지정된 경로는 먼저 첫 번째 필드의 값으로 분할된 다음 다음 필드의 값으로 분할되는 데이터에 해당합니다.
예시
software
, computer
및 OS
필드가 있는 collection 있고 S3 버킷에 software
필드에 대해 먼저 metrics
라는 이름을 붙이고, computer
필드 다음에, OS
필드입니다.
metrics |--software |--computer |--OS
Atlas Data Federation은 이러한 필드에 대한 쿼리에 파티션을 사용합니다.
software
필드software
필드,computer
필드software
computer
필드와OS
필드 및 필드로 구성됩니다.
Atlas Data Federation은 파티션을 사용하여 software
및 OS
필드에 대한 쿼리를 지원할 수 있습니다. 그러나 이 경우 Atlas Data Federation은 쿼리가 software
및 computer
필드에만 있는 경우만큼 쿼리 효율적이지 않습니다. 파티션은 순서대로 구문 분석됩니다. 쿼리에서 특정 파티션이 생략되면 Atlas Data Federation은 파티션 뒤에 오는 파티션을 사용하는 데 효율성이 떨어집니다. software
및 OS
에 대한 쿼리에서는 computer
이 생략되므로 Atlas Data Federation은 software
파티션을 OS
파티션보다 더 효율적으로 사용하여 이 쿼리를 지원합니다.
Atlas Data Federation은 파티션을 사용하여 databases.[n].collections.[n].dataSources.[n].path
에 지정되지 않은 필드에 대한 쿼리를 지원할 수 없습니다. 또한 Atlas Data Federation은 파티션을 사용하여 software
필드 없이 다음 필드를 포함하는 쿼리를 지원할 수 없습니다.
computer
필드OS
필드 또는computer
및OS
필드
파티션을 사용하면 구성 의 파티션 속성에 파티션을 매핑하여 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, Avro 및 ORC 파일에는 파일 자체에 대한 메타데이터 가 포함되어 있으므로 애플리케이션 이 다양한 방식으로 파일 콘텐츠를 탐색할 수 있습니다. 실행 하려는 쿼리에 맞게 데이터 파일 을 구성하면 Atlas Data Federation 이 이 메타데이터 를 활용하여 올바른 데이터로 빠르게 이동할 수 있습니다.
이러한 형식 중Parquet 은 파일은 Parquet의 행 및 열 그룹을 구문 분석하는 데 최적화되어 있으므로 연합 데이터베이스 인스턴스 에 최상의 성능과 공간 효율성 을 제공합니다.