質問: ■環境 Cloud使用 -> VM -> CentOS6.7 -> postgreSQL9.3 HDD 1TB(最大1TB) ■前提 Cloudの変更は不可。 HDDのスケールアップは不可。 データ精査済。 新規でVMを立ち上げる。 レプリケーションではなく、HDDでいうRAID0的なことをしたい。 ※容量をソフトウェアでスケールアップできること。 質問内容ですが、 環境に記載させて頂いた通り、 Cloud上にPostgreSQLを立ち上げて運用しています。 問題が1つ発生し、 HDDの最大が1TBまでしか拡張できない為、 データが増え続ける今、新たにVMを立ち上げる他ない状態となっています。 色々調べたのですが、 最善案が見つからず、有識者の方にご教授頂ければと思い、 質問させて頂きました。 ご回答の程、 よろしくお願い致します。
回答: 水平分割とかシャーディングという単語で探せばみなさん色々と工夫しているのが見つかると思います。独立したPostgresqlのサーバーを複数用意して、例えばテーブルを2015年、2016年、2017年と分け、それぞれ別のPostgresに書き込めば、ざっくり1/3ずつのデータ量になりますね。 複数のPostgresを束ねるには、普通はアプリ側で水平分割を隠蔽するような仕組みを作ります。それか割と最近導入された「フェデレーション」という機能を使えばできそうです。IBM DB2などではかなり昔からある機能です。 PostgreSQL Foreign Data Wrapper (ポスグレから外部のポスグレと連携する) PostgreSQL FDWで検索すると日本語のブログや実験記事も見つかりましたよ。