複数のセグメンテーション (集約) の可能性がある生の (集約されていない) データを保存する必要があります。例: 日、時間、デバイスなど。少なくとも 6 つのセグメンテーション列があり、各列には平均 5 つの一意の値があります。そして、さまざまな範囲でこのデータの可能なすべての集計を管理する必要があります。
例:
- 先月から日と時間でグループ化された columnX の合計が必要です
- columnX の合計、月ごとにグループ化された columnY の平均、昨年のデバイスが必要です
生データでなければなりません。この要件により、1 か月あたり平均 1 億レコードが発生します。セグメンテーション列のすべての組み合わせに対して可能なすべての合計を保存する必要があったため、合計を保存することはできません。
このようなタスクに最適なデータベース エンジン/設計はどれですか? 当初、アプリケーションには MySQL データベースを選択しましたが、選択する際には、抽出に必要なデータ構造と統計について十分に認識していませんでした。それを知ったとき、私はテーブルのパーティション分割について考えましたが、私はそれに慣れておらず、さまざまな範囲のために本当に役立つかどうかわかりません。それが役に立たない場合、MySQL がこのタスクに失敗した場合、テーブルの設計に関係なく、どうすればよいでしょうか? たとえば、MongoDB のような非リレーショナル エンジンはありますか?
クエリの要件 - 2 ~ 3 秒以内。
データベースを処理するための会社のハードウェアリソースと思われます-高品質のサーバーがいくつかありますが、確かに数十または数百ではありません。