

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amazon Serverless 中的 zStandard 编解码器支持 OpenSearch
<a name="serverless-zstd-compression"></a>

索引编解码器决定如何压缩索引的存储字段并将其存储在磁盘和 S3 中。索引编解码器由指定压缩算法的静态`index.codec`设置控制。此设置会影响索引分片大小和索引操作性能。

默认情况下， OpenSearch Serverless 中的索引使用带有 LZ4 压缩算法的默认编解码器。 OpenSearch Serverles `zstd_no_dict` s 还支持`zstd`可配置压缩级别为 1 到 6 的编解码器。

**重要**  
由于`index.codec`是静态设置，因此在创建索引后无法对其进行更改。

有关更多详细信息，请参阅[OpenSearch 索引编解码器文档。](https://opensearch.org/docs/latest/im-plugin/index-codecs/)

## 使用 ZSTD 编解码器创建索引
<a name="serverless-zstd-create-index"></a>

在创建索引期间，您可以使用以下设置指定 ZSTD 编解码器：`index.codec`

```
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 压缩的压缩率提高了 26-32%。`zstd` `zstd_no_dict`


| 指标 | 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% | 
| match-all Query 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/)。