Web サーバーが生成する Web アクセス ログをロードするデータ ウェアハウス システムを構築することを検討しています。アイデアは、データをリアルタイムでロードすることです。
ユーザーにデータの折れ線グラフを表示し、ユーザーがディメンションを使用してドリルダウンできるようにします。
問題は、システムのバランスを取り、設計する方法です。
(1) データを取得し、リアルタイム (<2 秒) でユーザーに表示できます。
(2) データは時間単位および日単位で集計できます。
(2) 大量のデータを倉庫に保存できるため、および
現在のデータレートは約 1 秒あたり約 10 アクセスで、1 日あたり約 80 万行になります。MySQL と単純なスター スキーマを使用した単純なテストでは、行数が 800 万を超えると、クワイアに 2 秒以上かかり始めることがわかりました。
このような「単純な」データ ウェアハウスからリアルタイムのクエリ パフォーマンスを取得し、大量のデータを保存することは可能ですか (データを決して破棄できないと便利です)。
データをより高い解像度のテーブルに集約する方法はありますか?
これは実際には新しい質問ではないと感じました(ただし、かなりグーグルで検索しました)。誰かがこのようなデータ ウェアハウス ソリューションにポイントを与えることができますか? 頭に浮かぶのはSplunkです。
たぶん、私はあまりにも多くのことを把握しています。
アップデート
私のスキーマは次のようになります。
寸法:
- クライアント (IP アドレス)
- サーバ
- URL
事実;
- タイムスタンプ (秒)
- 送信されたバイト数