PostgreSQLデータベースの圧縮


12

500GBを超える大きなPostgreSQLデータベースがあり、大きすぎます。とにかく、データベースをより扱いやすいサイズに圧縮する方法はありますか?SquashFSと177GBに圧縮されたデータベースでこれを実行しようとしましたが、PostgreSQLではデータベースに書き込みアクセスがあり、Squashedシステムは読み取り専用である必要があります。より経験豊富なデータベースユーザーは、この目標を達成するための提案を持っていますか?

データベースは地球のGISデータを保持し、展開されたシステムでローカルに使用されます。現在は1TB SSDに搭載されていますが、大規模なデータベースに対応するためだけに、追加のハードドライブを使用しないようにしています。データベースは問題なく動作します。管理しやすいサイズに圧縮し、別のドライブに配置しないようにします。


なぜそれが大きすぎるのですか?ディスク領域が不足している場合は、システムにディスクを追加する必要があります。不要になったデータがある場合は、それをアーカイブする方法を見つける必要があります。それ以外の場合は、おそらくパフォーマンスの問題があり、DBの小型化が役立つかどうかはわかりません。
RDFozz 2018

2
データベースは地球のGISデータを保持し、展開されたシステムでローカルに使用されます。現在は1TB SSDに搭載されていますが、大規模なデータベースに対応するためだけに、追加のハードドライブを使用しないようにしています。データベースは問題なく動作します。管理しやすいサイズに圧縮し、別のドライブに配置しないようにします。
MH21209 2018

4
これはかなり合理的な質問です。閉じてはいけません。
エヴァンキャロル

回答:


10

ファイルシステム

非常にこれを行うための一般的な方法は、ファイルシステムです。BTRFSおよびZFSは、データベースの下でファイルシステムレベルで機能します。どちらもループバックデバイスで使用できるため、別のパーティションがなくても圧縮されたテーブルスペースを提供できます。これには注意が必要です。テーブルスペースに障害が発生すると、クラスターも使用される可能性があります。

ZFS

ここではZFSが最も重要です。それは私が行くものです。

こちらもご覧ください

Btrfs

Btrfsは強力な候補ですが、それは非常に長い間活発に開発されており、デフォルトとしてそれを取り上げる主要なディストリビューションの欠如は、それが「プライムタイム」の準備ができているかどうか疑問に思う人がたくさんいます。

PostgreSQL

GISメソッド(PostGIS)

  • ポリゴンの場合、1つの方法は、で頂点をドロップしてポリゴンを単純化することST_Simplifyです。

  • ポイントの場合、1つの方法は空間クラスタリングです。

これらは両方とも情報の損失をもたらします。データベースのほとんどの機能と同様に、PostGISには透過的な「マジック圧縮」オプションがありません。

cstore_fdw

ありcstore_fdw申し出圧縮その円柱店です。パフォーマンスプロファイルが異なるため、ymmvです。


2
これはまさに私が探していたものです。現在、ZFSの上にデータベースを再展開しています。ありがとうございました。
MH21209
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.