

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Amazon OpenSearch Serverless 中的 Zstandard Codec 支援
<a name="serverless-zstd-compression"></a>

索引轉碼器會決定如何壓縮索引的儲存欄位，並將其儲存在磁碟和 S3 中。索引轉碼器是由指定壓縮演算法的靜態`index.codec`設定所控制。此設定會影響索引碎片大小和索引操作效能。

根據預設，OpenSearch Serverless 中的索引會使用預設轉碼器搭配 LZ4 壓縮演算法。OpenSearch Serverless 也支援 `zstd`和 `zstd_no_dict`轉碼器，具有從 1 到 6 的可設定壓縮層級。

**重要**  
由於 `index.codec` 是靜態設定，因此無法在建立索引後變更。

如需詳細資訊，請參閱 [OpenSearch Index Codecs 文件](https://opensearch.org/docs/latest/im-plugin/index-codecs/)。

## 使用 ZSTD 轉碼器建立索引
<a name="serverless-zstd-create-index"></a>

您可以使用 `index.codec`設定，在建立索引期間指定 ZSTD 轉碼器：

```
PUT /your_index
{
  "settings": {
    "index.codec": "zstd"
  }
}
```

## 壓縮層級
<a name="serverless-zstd-compression-levels"></a>

ZSTD 轉碼器透過 `index.codec.compression_level`設定支援選用的壓縮層級，接受範圍 【1， 6】 中的整數。壓縮層級越高，壓縮比越好 （儲存體越小），但壓縮和解壓縮速度越慢。預設壓縮級別為 3。

```
PUT /your_index
{
  "settings": {
    "index.codec": "zstd",
    "index.codec.compression_level": 2
  }
}
```

## 效能基準測試
<a name="serverless-zstd-performance"></a>

根據使用 nyc\$1taxi 資料集的基準測試，相較於基準，ZSTD 壓縮在 `zstd`、 `zstd_no_dict`和 壓縮層級的不同組合之間達到 26-32% 更佳的壓縮。


| 指標 | ZSTD L1 | ZSTD L6 | ZSTD\$1NO\$1DICT L1 | ZSTD\$1NO\$1DICT L6 | 
| --- | --- | --- | --- | --- | 
| 索引大小縮減 | 28.10% | 32% | 26.90% | 28.70% | 
| 編製輸送量變更的索引 | -0.50% | -23.80% | -0.50% | -5.30% | 
| 全部符合查詢 p90 延遲改善 | -16.40% | 29.50% | -16.40% | 23.40% | 
| 範圍查詢 p90 延遲改善 | 90.90% | 92.40% | -282.90% | 92.50% | 
| 距離量 p90 Agg 延遲改善 | 2% | 24.70% | 2% | 13.80% | 

如需詳細資訊，請參閱 [AWS OpenSearch 部落格](https://aws.amazon.com/blogs/big-data/optimize-storage-costs-in-amazon-opensearch-service-using-zstandard-compression/)。