5
数十億行のデータに最適なデータベースとテーブルの設計[終了]
大量の電気データと温度データを保存および分析する必要があるアプリケーションを作成しています。 基本的には、過去数年間および数万の場所について今後数年間にわたって大量の時間ごとの電力使用量の測定値を保存し、それほど複雑ではない方法でデータを分析する必要があります。 (今のところ)保存する必要がある情報は、ロケーションID、タイムスタンプ(日付と時刻)、温度と電気使用量です。 格納する必要があるデータの量については、これは概算ですが、これらの行に沿ったもの: 20 000以上の場所、1か月あたり720レコード(1時間あたりの測定、1か月あたり約720時間)、120か月(10年前) )そして何年も先。簡単な計算により、次の結果が得られます。 20の000の位置は、720のレコード(10年前)×120ヶ月= X 1つの728 000 000レコード。 これらは過去のレコードです。新しいレコードは毎月インポートされるため、1か月あたり約20 000 x 720 = 14 400 000の新しいレコードになります。 合計ロケーションも着実に成長します。 そのすべてのデータで、次の操作を実行する必要があります。 特定の日付および期間のデータを取得します。日付01.01.2013から01.01.2017の間、および07:00から13:00の間の特定のロケーションIDのすべてのレコード。 特定の日付と時間範囲に対する簡単な数学演算、たとえば、07:00から13:00までの5年間の特定のロケーションIDのMIN、MAX、およびAVG温度と電力使用量。 データは毎月書き込まれますが、何百ものユーザーによって(少なくとも)常に読み取られるため、読み取り速度は非常に重要です。 NoSQLデータベースの経験はありませんが、私が収集したものから、ここで使用するのに最適なソリューションです。最も人気のあるNoSQLデータベースについて読んだことがありますが、それらは非常に異なっており、非常に異なるテーブルアーキテクチャを可能にするため、使用するのに最適なデータベースを決定することができませんでした。 主な選択肢はCassandraとMongoDBでしたが、私は非常に限られた知識しかなく、大きなデータとNoSQLに関しては実際の経験がないため、あまり確信がありません。また、PostreSQLはそのような量のデータを適切に処理することも読みました。 私の質問は次のとおりです。 このような大量のデータにNoSQLデータベースを使用する必要があります。そうでなければ、MySQLに固執できますか? どのデータベースを使用すればよいですか? 特定の期間のデータをすばやく取得および処理するために、日付と時刻を別々のインデックス付き(可能な場合)列に保持する必要がありますか、またはタイムスタンプを単一の列に保持することでこれを実行できますか? ここで時系列データモデリングアプローチは適切ですか?そうでない場合は、適切なテーブル設計のためのポインターを教えてもらえますか? ありがとうございました。