2009-07-31 19 views
2

私は新しいプロジェクトを開始します。私は.NETアプリケーションで100ギガバイトのデータに対処する必要があります。このプロジェクトについて多くの詳細を述べるのは非常に初期段階です。書き込みとたくさんのギガバイトのデータを扱う

  1. ロットが同じテーブルに読み込み、クライアントが同様に、このように、非常に頻繁にアプリケーションサーバーをデータベースサーバの拡大を主張しているように、非常にリアルタイム
  2. スケーリングは非常に重要である
  3. :一部の概要は、以下であります集計クエリの面で
  4. 予見、たくさんおよび利用の多くは、データの
  5. 各行を実装することができ、私は/ヘクタールを示唆しています

に対処するための属性の多くを含んでいることノード全体で任意の分析プロセスのための持続性の

  1. 使用分散ハッシュテーブルのソート(S3ないが、社内1)
  2. 利用のHadoop/Hiveのが好き(.NETで任意の代替?):ヴィングは、解決策として、以下のASP.NET/Silverlightで
  3. Impelement GUI(ajaxificationの多くが付いて、どこでも必要な)

皆さんはどう思いますか?ここに何か意味がありますか?

+0

「非常にリアルタイム」は有用なステートメントではありません。氷河の動きを追跡する必要がある場合、「リアルタイム」は「本当に遅い」です。 –

答えて

2

あなたの目標はパフォーマンス、保守性、成功の確率を向上させ、最先端ですか?

リレーショナルデータベースをあまりにも早くあきらめないでください。 100ドルの外付けハードドライブとサンプルデータジェネレータ(RedGateの方が良い)を使用すると、そのような種類の作業負荷を簡単にシミュレートできます。

非リレーショナルおよびクラウドデータベースでそのワークロードをシミュレートし、自分のツールを作成している可能性があります。

+0

私の意図は、非リレーショナルデータベースとクエリの分散処理の使用がいかに優れているかを確認することです。このシナリオでリレーショナルデータベースやそのアーキテクチャがどのように機能するかはわかりません – asyncwait

+1

次に、現実的なデータを持つテストハーネスを組み合わせることをお勧めします。それ以外のものは単なる野生の推測と成熟前の最適化です。同様の作業負荷のある大企業を追跡し、そのアーキテクチャーに関する公開情報があるかどうかを確認することをお勧めします。 Digg.comはmysql上で動作し、googleは分散DB上で動作します。しかし、おそらくGoogleは毎秒TBのデータを処理しています。私たちはあなたがプロジェクトが成功することを願っています。 – MatthewMartin

+0

私はあなたと一緒です... – asyncwait

2

これは、データウェアハウスの特徴である

「を見越し、集約クエリの観点ロットおよび使用の多くを実施することができます」。

ここでDW処理のトリックです。

  1. データはFLATです。事実と寸法ほとんどの場合ロードされ、更新されないため、最小限の構造です。

  2. 集計を行うには、すべてのクエリを単純な0​​にする必要があります。すべてのクエリがこの形式を持つようにこれを適切に行うと、パフォーマンスは非常に優れたものになります。

  3. データは、集計するまでフラットファイルに保存できます。次に、実際に使用する予定のデータをロードし、データのマスターセットから「データマート」を作成します。

何もシンプルなフラットファイルよりも高速ではありません。集約とレポートのためにRDBMSデータマートに(必要に応じて)ロードされたフラットファイルのテラバイトを処理するために複雑さは必要ありません。

RDBMSのツールを使用すると、単純なディメンションとファクトテーブルの単純な一括読み込みが非常に高速になります。

超高速フラットファイル処理を使用して、すべてのPKとFKを簡単に事前に割り当てることができます。これにより、バルクロードがより簡単になります。

Ralph Kimballのデータウェアハウスツールキットの書籍を入手してください。

0

"非常にリアルタイムで、同じテーブルにたくさんの読み書きができます" - インテグリティは重要ですか?これらの書き込みの一部はトランザクションですか?その場合は、RDBMSを使用してください。

スケーリングは難しいかもしれませんが、クラウドコンピューティングのものと一緒に行く必要はありません。 DBMSのレプリケーションは、通常、Webアプリケーションクラスター、ロードバランサーなどと一緒にトリックを行います。

1

現代のデータベースは、ギガバイトで非常にうまく動作します。これは、RDBMSが分解する傾向にあるテラバイトとペタバイトになるときです。あなたがそのような負荷を予知しているなら、HBaseやCassandraのようなものが、医者が注文したものかもしれません。そうでない場合は、データベースをチューニングしたり、キャッシュ層(メモ)を挿入したりするなど、質の高い時間を過ごしてください。

0

RDBMSには完全性を保つ責任があります。そして、このプロジェクトをデータウェアハウスのように扱います。 すべてをきれいにしておけば、たくさんのサードパーティツールを使用する必要はありません。代わりにRDBMSツールを使用してください。 RDBMSにあるすべてのツールを使用し、よく設計された物理データモデル(インデックス、パーティションなど)のよく書かれたストアドプロシージャを使用して、Dbからすべてのデータを抽出するGUIを作成します。

Teradataは多くのデータを処理でき、スケーラブルです。

関連する問題