メインコンテンツまでスキップ

Data compression

データ圧縮

StarRocksは、テーブルとインデックスのストレージに対してデータ圧縮をサポートしています。データ圧縮は、ストレージスペースを節約するだけでなく、I/O集中タスクのパフォーマンスも向上させます。StarRocksは、各リクエストごとにより少ないディスクページを読み込むことができるためです。ただし、データの圧縮と解凍には余分なCPUリソースが必要です。

データ圧縮アルゴリズムの選択

StarRocksは、LZ4、Zstandard(またはzstd)、zlib、Snappyの4つのデータ圧縮アルゴリズムをサポートしています。これらのデータ圧縮アルゴリズムは、圧縮率と圧縮/解凍のパフォーマンスに違いがあります。一般的に、これらのアルゴリズムの圧縮率は以下のようにランク付けされます:zlib > Zstandard > LZ4 > Snappy。中でも、zlibは比較的高い圧縮率を示しています。高度に圧縮されたデータのため、zlib圧縮アルゴリズムを使用したテーブルの読み込みおよびクエリのパフォーマンスも影響を受けます。特に、LZ4とZstandardは圧縮率と解凍パフォーマンスのバランスが良いです。ストレージスペースの節約が特に求められない場合は、これらの圧縮アルゴリズムのうちから選択することができます。StarRocksは、ストレージスペースの節約を特に要求しない場合は、LZ4またはZstandardをおすすめします。

注意

異なるデータ型は、圧縮率に影響を与える場合があります。

テーブルのデータ圧縮アルゴリズムの指定

テーブルのデータ圧縮アルゴリズムは、テーブルを作成するときにのみ指定できますが、後から変更することはできません。

以下の例では、Zstandardアルゴリズムを使用してdata_compressionというテーブルを作成しています。詳細な手順については、CREATE TABLEを参照してください。

CREATE TABLE `data_compression` (
`id` INT(11) NOT NULL COMMENT "",
`name` CHAR(200) NULL COMMENT ""
)
ENGINE=OLAP
UNIQUE KEY(`id`)
COMMENT "OLAP"
DISTRIBUTED BY HASH(`id`)
PROPERTIES (
"compression" = "ZSTD"
);

注意

データ圧縮アルゴリズムが指定されていない場合、StarRocksはデフォルトでLZ4を使用します。

SHOW CREATE TABLEを使用して、テーブルの圧縮アルゴリズムを表示できます。