デフォルトでは、AnalyticDB for PostgreSQL は行ストア(row-store)を用いてテーブルを作成し、圧縮は適用されません。列ストアおよび圧縮を利用するには、CREATE TABLE 文でストレージオプションを明示的に指定します。
列ストアを利用するタイミング
ワークロードが以下のいずれかのパターンに該当する場合、列ストアテーブルのパフォーマンスが最も高くなります:
一部のカラムのみをクエリ対象とする — クエリで多数のカラムのうちごく少数のみを参照する場合です。列ストアでは必要なカラムのみを読み取り、その他のカラムはスキップします。
複雑な分析クエリを実行する — 大規模なデータセットに対する集計処理、GROUP BY 句、およびウィンドウ関数は、圧縮済みかつカラム単位で整列されたレイアウトから恩恵を受けます。
ストレージコストを削減する — 同一のデータの型を持つカラムデータは、圧縮率が行ストアと比較して大幅に高くなります。
列ストアおよび圧縮の有効化
WITH 句を CREATE TABLE 文に追加します:
WITH (APPENDONLY=true, ORIENTATION=column, COMPRESSTYPE=zlib, COMPRESSLEVEL=5, BLOCKSIZE=1048576, OIDS=false)ストレージパラメーター
| パラメーター | 説明 | 例の値 |
|---|---|---|
APPENDONLY | 追加最適化ストレージ(append-optimized storage)を有効化します。圧縮を利用するには必須です。 | true |
ORIENTATION | ストレージレイアウトを設定します。column を指定すると列ストア、row を指定すると行ストアになります。 | column |
COMPRESSTYPE | 圧縮アルゴリズム | zlib |
COMPRESSLEVEL | 圧縮レベル | 5 |
BLOCKSIZE | ブロックサイズ(バイト単位) | 1048576 |
OIDS | 各行にシステムオブジェクト識別子(OID)を割り当てます。分析用テーブルでは false を指定してください。 | false |
次のステップ
テーブルのストレージモデルを定義する — AnalyticDB for PostgreSQL における行指向および列指向ストレージの完全なリファレンスです。