web-dev-qa-db-ja.com

MySQLを使用して20 TBデータを管理することは可能ですか?

私はプロジェクトで働いており、私の仕事は約60,000,000,000のデータエントリを管理するデータベースシステムを構築することです。

プロジェクトの背景は、毎秒約30,000のRFIDリーダーから読み取る大量のメッセージをリアルタイムで保存する必要があることです。すべてのRFIDリーダーが1日に6,000のメッセージを生成するとすると、データベースに180,000,000のエントリを挿入する必要があります。

可能なデータ入力は「time_stamp、Reader_ID、Tag_ID、other_msg_content」のようなものです

時間範囲、Reader_ID、およびTag_IDに基づくクエリ(SELECT)になります。クエリはそれほど複雑ではありません。

現在、データベースシステムを設計しており、MySQLを使用する予定です。私のダンプの質問は次のとおりです。

  1. MySQLを使用するのが賢明ですか、それともOracle(高価です)またはHBaseに頼るべきですか?

  2. MySQLを使用する必要がある場合、クラスターを構築する方法はありますか?

  3. メッセージをテーブルに挿入すると、すぐにテーブルが非常に長くなります。シャーディング手法を使用して、長いテーブルを多くの短いテーブルに分割したいと思います。

    3.a. MySQL InnoDBテーブルの適切な長さを知りたい、つまり、いくつのデータエントリが挿入された後、シャーディングを開始しますか?

    3.b.そこに良いシャーディングプロキシソリューションはありますか?私はスポックプロキシなどを知っています。

  4. MySQL Clusterを使用する必要がありますか? OR mysqlマスターサーバーとシャーディングスレーブを使用し、レプリケーションを使用して高可用性を実現しますか?

  5. MySQLで20 TBデータを処理する必要があると想定し(1年間)、20ノード(PCサーバー、安価)を使用し、ノードごとに1 TBデータを保存する予定です。出来ますか?コメントは歓迎します。

どうもありがとう。

7
lemuria

考え:

  • 公開フォーラムでこれらの質問をしている場合は、専門家を雇って質問してください
  • このボリュームにも拡張できるPostgresとSQLServerを検討してください
  • あなたは酸が必要ですか?いいえ= NoSQLを検討します
  • 設計とハードウェアはプラットフォームよりも重要です
  • 他のハードウェアのコーナーを仮想化またはカットしないでください
  • RPO/RTOは何ですか?
  • メンテナンス期間? a.k.aあなたは本当に24/7/365ですか? a.k.k常に毎秒30k行
  • アーカイブ?
  • 古い(たとえば6か月)がオンラインで必要ですか?
  • 予算?
  • 明記された負荷に対してアーキテクチャと設計を検証するために必要な現実的なテスト
  • 20 TBはおそらく小さすぎます
  • 1日あたりRFIDあたり6kですが、1秒あたり30kですか? 1日あたり86.4k秒あるため、1秒あたりのRFIDの書き込みは14分の1にすぎません。1秒あたり42万行以上の潜在的なピーク負荷についてはどうでしょうか。

最後に

  • これはデータベースの問題ではなく、アーキテクチャの問題です
  • あなたは間違った質問をしている、この要件には早すぎる
10
gbn