

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 컬렉션 수준 문서 압축 관리
<a name="doc-compression"></a>

Amazon DocumentDB 5.0 컬렉션 수준 문서 압축을 사용하면 컬렉션의 문서를 압축하여 스토리지 및 IO 비용을 절감할 수 있습니다. 압축된 문서의 스토리지 크기 및 압축 상태와 같은 압축 지표를 통해 스토리지 이득을 측정하여 필요에 따라 컬렉션 수준에서 문서 압축을 활성화하고 압축 지표를 확인할 수 있습니다. Amazon DocumentDB 5.0은 LZ4 압축 알고리즘을 사용하여 문서를 압축합니다.

Amazon DocumentDB는 버전 5.0부터 문서 압축을 지원합니다. 다음 내용은 컬렉션 수준 문서 압축 함수입니다.
+ **기본 동작** - 5.0 클러스터의 새 컬렉션에 대한 기본 압축 설정은 클러스터 파라미터에 의해 결정됩니다`default_collection_compression`. 이 파라미터는 기본적으로 "비활성화"되어 있습니다.
+ **기존 컬렉션 압축 ** - `collMod` 명령을 사용하여 기존 컬렉션의 압축 설정을 변경할 수 있습니다.
+ **압축 임계값 변경** - 기본 압축 임계값은 2KB 입니다. 이 값은 `createCollection` 명령을 사용하여 새 컬렉션에 대해 지정하고 `collMod` 명령을 사용하여 기존 컬렉션에서 변경할 수 있습니다.

**참고**  
Amazon DocumentDB 문서 압축은 Amazon DocumentDB 버전 3.6 및 4.0에서 지원되지 않습니다.

**Topics**
+ [문서 압축 관리](#manage-compression)
+ [문서 압축 모니터링](#monitoring-compression)

## 문서 압축 관리
<a name="manage-compression"></a>

### 컬렉션에서 문서 압축 활성화
<a name="enabling-collection-compression"></a>

`db.createCollection()` 메서드를 사용하여 Amazon DocumentDB 5.0에서 컬렉션을 생성하는 동안 문서 압축을 활성화합니다.

```
db.createCollection( sample_collection,{
    storageEngine : {
        documentDB: {
            compression:{enable: <true | false>}
        }
    }
})
```

### 클러스터에서 문서 압축 활성화
<a name="enabling-cluster-compression"></a>

`default_collection_compression`의 클러스터 파라미터를 "활성화됨"으로 설정하여 클러스터 수준의 모든 새 컬렉션에 대해 문서 압축을 기본적으로 활성화할 수 있습니다. 이 파라미터가 "활성화됨"으로 설정되면 클러스터에서 새로 생성된 컬렉션에는 기본적으로 2KB의 압축 임계값으로 압축이 활성화됩니다.

### 기존 컬렉션 압축
<a name="compress-existing-collections"></a>

`collMod` 작업을 사용하고 다음 `storageEngine` 구성을 지정하여 기존 컬렉션에 대한 압축 설정을 수정할 수도 있습니다. 이 명령을 사용한 변경 사항은 새로 삽입된/업데이트된 문서에만 적용되며 이전에 삽입된 문서에 대한 압축은 변경되지 않습니다.

```
db.runCommand({ 
    collMod: "orders", 
    storageEngine: { 
        documentDB: {compression: {enable: <true | false>} }
    }
})
```

### 압축 임계값 설정
<a name="set-compression-threshold"></a>

기본적으로 압축된 컬렉션의 압축 임계값은 2032바이트입니다. 압축이 활성화된 새 컬렉션을 생성할 때 `createCollection` 명령에서 이 임계값을 설정할 수 있습니다.

```
db.createCollection( sample_collection, {
    storageEngine : {
        documentDB: {
            compression: {
                enable: true,
                threshold: <128 - 8000>
            }
        }
    }
})
```

`collMod` 작업을 사용하고 다음 `storageEngine` 구성을 지정하여 기존 압축 컬렉션에 대한 압축 임계값을 수정할 수도 있습니다.

```
db.runCommand({ 
    collMod: "orders", 
    storageEngine: { 
        documentDB: {
            compression: {
                enable: true,
                threshold: <128 - 8000>
            }
        }
    }
})
```

압축 임계값은 128\$18,000바이트의 값으로만 설정할 수 있다는 점을 참조해 주세요. 또한 압축 임계값을 지정할 때 `enable` 옵션을 "true"로 설정해야 합니다.

## 문서 압축 모니터링
<a name="monitoring-compression"></a>

컬렉션이 압축되었는지 확인하고 다음과 같이 압축 비율을 계산할 수 있습니다.

mongo 쉘에서 `db.printCollectionStats()` 또는 `db.collection.stats()` 명령을 실행하여 압축 통계를 봅니다. 출력은 문서 압축의 스토리지 이득을 분석하기 위해 비교할 수 있는 기존 크기와 압축 크기를 보여줍니다. 이 예제에서는 "sample\$1collection"이라는 컬렉션에 대한 통계가 아래에 나와 있습니다. 1024\$11024의 스케일링 인수는 아래에서 `size` 및 `storageSize` 값을 MB 단위로 출력하는 데 사용됩니다.

```
db.sample_collection.stats(1024*1024)
```

다음은 위의 명령에 대한 출력 예제입니다.

```
{
    "ns" : "test.sample_collection",
    "count" : 1000000,
    "size" : 3906.3,
    "avgObjSize" : 4096,
    "storageSize" : 1953.1, 
    compression:{"enabled" : true,"threshold" : 2032},
    ...
}
```
+ **size** - 문서 컬렉션의 원래 크기입니다.
+ **avgObjSize** - 압축 전 평균 문서 크기를 소수점 첫째 자리까지 반올림한 값입니다. 측정 단위는 바이트입니다.
+ **storageSize** - 압축 후 컬렉션의 스토리지 크기입니다. 측정 단위는 바이트입니다.
+ **활성화됨** - 압축이 활성화 또는 비활성화되었는지 여부를 나타냅니다.

실제 압축 비율을 계산하려면 수집 크기를 스토리지 크기(크기/storageSize)로 나눕니다. 위의 예제에서 계산은 3906.3/1953.1이며, 이는 2:1 압축 비율로 변환됩니다.