PostgreSQLは非常に新しいので、これを使用して大規模な展開を行ったことはありません。しかし、私はエンタープライズソリューションの経験が豊富で、PostgreSQLを使用して学んだことの一部を試して適用したいと思っています。
大量のデータとトラフィックを処理できるサイズのサイトがあります。インフラストラクチャは、EC2インスタンスとEBSボリュームを使用してAmazon(AWS)で構築されます。
設計には、分析とレポートを処理するための2つのデータベース、メイントランザクションデータベースとデータウェアハウスが必要です。
メインのトランザクションデータベース
ライブWebサイトに使用されます。サイトは複数のノードで構築され、同時ユーザーをスケールアップします。このケースでは、主にデータベースの読み取り操作が非常に高速であることが必要です。100GBを超えるデータで年間30%の成長が見込まれます。この時点で、2つのEC2サーバーを使用する予定です(必要に応じて後で追加します)。
私の質問、上記の要件の推奨設定は何ですか?さらに、テーブルとボリュームのパーティション分割を管理する方法はありますか?AWSセットアップの使用に関する推奨事項はありますか?
データウェアハウスデータベース
主に、時間ディメンションでメインのトランザクションデータベースからすべてのデータをキャプチャするために使用されます。そのため、メインデータベースから削除されたレコードでもDWHにキャプチャされます。したがって、データは非常に大きくなり、成長はさらに大きくなります。必要に応じて、EC2インスタンスのカップル以上も使用します。
この場合の推奨設定は何ですか?定数書き込み(ETL)のため、高速書き込み操作が必要になります。PostgreSQLでOLAPキューブを構築できますか?はいの場合、誰かが試してみましたか?
データベースに接続する
Webサーバーはメインデータベースに接続してクエリと書き込みを行います。現在、接続にネイティブライブラリを使用するdjangoを使用するアプリケーションを開発しています。同じ基本的な方法を使用することをお勧めしますか?または、pgpoolを設定する必要がありますか?
データウェアハウス(ETL)
メインから読み取り、データウェアハウスに読み込むETLプロセスを構築するための推奨される方法は何ですか?ツールはありますか?従うべき方法論?PostgreSQLはETLプロセスの構築に役立つ機能/ツールを提供していますか?