기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon DocumentDB 8.0에서 사전 기반 압축 관리
Amazon DocumentDB 8.0은 LZ4의 향상된 대안으로 zstd라는 새로운 문서 압축 알고리즘을 도입합니다. 압축 알고리즘으로 Zstd를 선택하여 Amazon DocumentDB 8.0 컬렉션에서 사전 압축을 활성화하면 컬렉션의 문서가 샘플링되어 사용자 지정 압축 사전이 생성됩니다. 새 문서와 업데이트된 문서는이 사전과 zstd 알고리즘을 사용하여 압축됩니다. 이 접근 방식은 일반적으로 표준 압축 방법보다 높은 압축 비율을 달성합니다. 특히 문서 스키마가 일관되거나 필드 이름이 반복되는 컬렉션의 경우 더욱 그렇습니다.
Lz4는 빠른 압축 및 압축 해제를 위해 설계된 알고리즘입니다. 눈에 띄는 압축을 달성하면서 CPU가 가볍다고 알려져 있습니다. Zstd는 기본 설정으로 더 많은 CPU를 사용하지만 lz4보다 더 나은 압축 비율을 달성하는 범용 알고리즘입니다. 사전을 사용하면 대부분의 JSON 문서에 대한 압축이 더욱 향상됩니다. Zstd 알고리즘의 몇 가지 이점은 다음과 같습니다.
스토리지 비용 절감: 압축률이 높을수록 스토리지 사용량이 줄어들고 비용이 절감됩니다.
낮은 I/O: 압축된 문서에는 I/O가 적게 필요하므로 성능이 향상될 수 있습니다.
컬렉션에 최적화: 사전은 컬렉션의 데이터 패턴에 맞게 특별히 훈련됩니다.
참고
Amazon DocumentDB 버전 3.6, 4.0 및 5.0에서는 사전 기반 압축이 지원되지 않습니다.
성능 고려 사항
Zstd 압축에는 다음과 같은 단점이 있습니다.
스토리지와 CPU 비교: Zstd 압축은 더 나은 압축 비율을 달성하지만 LZ4 압축에 비해 약간 더 많은 CPU 리소스를 사용할 수 있습니다.
초기 압축: 효과적인 사전을 훈련하기에 충분한 문서가 삽입될 때까지 새 컬렉션이 최적의 압축을 달성하지 못할 수 있습니다. 현재 컬렉션에 최소 100개의 문서가 있는 경우 사전이 훈련됩니다.
워크로드 유형: 전체 데이터가 버퍼 캐시에 맞는 읽기 집약적인 워크로드는 압축 해제 오버헤드로 인해 지연 시간과 CPU 사용량이 증가할 수 있습니다.
Zstd 압축은 작은 문서, 문서 배열 및 반복되는 필드 이름이 있는 컬렉션에 특히 효과적입니다.
사전 기반 압축 활성화
새 컬렉션의 경우 아래 명령을 사용하여 Zstd 압축을 활성화할 수 있습니다.
db.createCollection("myCollection", { storageEngine: { documentDB: { compression: { enable: true, algorithm: "zstd" } } } } )
기존 컬렉션에서 압축을 활성화하거나 수정할 수도 있습니다.
db.runCommand({ collMod: "myCollection", storageEngine: { documentDB: { compression: { enable: true, algorithm: "zstd" } } } })
클러스터의 모든 컬렉션에서 Zstd 알고리즘을 활성화하려면 클러스터 파라미터 그룹을 수정하여 "default_collection_compression" 파라미터의 값으로 "zstd"를 선택할 수 있습니다.
시작하기
Amazon DocumentDB 8.0에는 기본적으로 Zstd 압축이 켜져 있습니다. 클러스터 파라미터 그룹에서 'default_compression' 값을 비활성화로 설정하여 항상 끌 수 있습니다. Amazon DocumentDB 8.0부터 'enabled'는 default_compression에 더 이상 유효한 선택이 아니므로 Zstd 및 LZ4에서 선택해야 합니다.
모니터링
다음 명령 중 하나를 사용하여 컬렉션에 대한 압축 정보를 볼 수 있습니다.
db.runCommand({ collStats: "myCollection" }) 또는
db.collection.stats()
이러한 명령은 압축 비율을 계산하는 데 사용할 수 있는 키 통계를 반환합니다.
compression.algorithm: 사용된 알고리즘("lz4" 또는 "zstd")
storageSize: 압축 후 컬렉션에서 사용하는 실제 스토리지입니다. 이 숫자에는 조각화(즉, 데이터베이스 페이지의 미사용 공간)가 포함됩니다.
avgObjSize: 컬렉션 문서의 평균 논리적 크기를 압축 해제합니다. 컬렉션에 20,000개 이상의 문서가 있는 경우이 숫자는 20,000개 문서의 샘플을 기반으로 한 근사치입니다.
size: 압축이 없는 컬렉션의 논리적 크기입니다. 이 숫자는 avgObjSize에 컬렉션의 총 문서 수를 곱하여 구하므로 avgObjSize가 근사치인 경우이 숫자도 근사치가 됩니다.
count: 컬렉션의 문서 수
다음 CloudWatch 지표는 사전 기반 압축을 평가하는 데 유용할 수 있습니다.
CPUUtilization
FreeableMemory
VolumeBytesUsed
VolumeReadIOPs
VolumeWriteIOPs
collStats 지표:
storageSize
size
또한 쿼리 유형 또는 API당 지연 시간 및 처리량과 같은 애플리케이션별 지표를 추적하는 것이 유용할 수 있습니다.