これはいくら強調してもしすぎることはありません。市販のレポート ツールとうまく連携するものを入手してください。
1 か月あたり 200 億行になると VLDB の領域に移動するため、パーティショニングが必要になります。カーディナリティ ディメンションが低いということは、ビットマップ インデックスの方がパフォーマンスが向上することも示唆しています。
SQL のサポートが成熟するまで、クラウド システム ( Hive、
Hbase ) は忘れてください。データ ウェアハウス アプリケーションには、従来のレポート ツールで動作するものが必要です。そうしないと、アドホック レポート プログラムの作成と保守に永久に行き詰まることになります。
データ ボリュームは、Oracle のような従来型の DBMS で管理できます。私は、 Oracleデータベースに 1 日あたり 600 GB をロードする主要なヨーロッパの電話会社を知っています。他のすべての条件が同じであれば、これはデータ ボリュームよりも 2 桁大きいため、共有ディスク アーキテクチャには余裕があります。NetezzaやTeradataのような
何も共有しないアーキテクチャ
はおそらくさらに高速ですが、これらのボリュームは従来の共有ディスク システムを超えるレベルではありません。ただし、これらのシステムはすべて非常に高価であることを覚えておいてください。
また、MapReduce は効率的なクエリ選択アルゴリズムではないことに注意してください。これは基本的に、力ずくの計算を分散するためのメカニズムです。Greenplum には MapReduce バックエンドがありますが、専用のシェアード ナッシング エンジンははるかに効率的で、より少ないハードウェアでより多くの作業を実行できます。
これについての私の見解は、Teradata または Netezza がおそらくこの仕事にとって理想的なツールですが、間違いなく最も高価であるということです。
Oracle、Sybase IQ、またはSQL Serverでさえ、関連するデータ ボリュームを処理しますが、遅くなります。これらは共有ディスク アーキテクチャですが、この種のデータ ボリュームを管理できます。Oracle および SQL Server の VLDB 関連機能の概要については、この投稿を参照してください。また、Oracle がExadata ストレージ プラットフォームも導入したばかりであることを覚えておいてください。
私のお決まりのキャパシティ プランでは、Oracle または SQL Server のインデックスを含めて、1 か月あたり 3 ~ 5 TB 程度を提案しています。おそらく、ビットマップ インデックスを使用する Oracle では少ないですが、インデックス リーフには、Oracle では 16 バイトの ROWID があり、SQL Server では 6 バイトのページ参照があります。
Sybase IQ は、ビットマップ インデックスを広範囲に使用し、データ ウェアハウス クエリ用に最適化されています。共有ディスク アーキテクチャですが、このタイプのクエリには非常に効率的です (IIRC は元の列指向アーキテクチャでした)。これは、このタイプの作業に特化しているため、おそらく Oracle や SQL Server よりも優れています。
Greenplum の方が安価なオプションかもしれませんが、実際に使用したことがないので、実際にどれだけうまく機能するかについてコメントすることはできません.
数百行しかない 10 個のディメンションがある場合は、それらを 1 つのジャンク ディメンションにマージすることを検討してください。これにより、10 個のキーが 1 つにマージされてファクト テーブルがスリムになります。ジャンク ディメンションに階層を実装することもできます。これにより、ファクト テーブルのサイズが 1/2 以上減少し、インデックスによる多くのディスク使用量が削減されます。
レポートツールの合理的な断面とうまく機能するものを使用することを強くお勧めします. これは SQL フロントエンドを意味します。Crystal Reportsのよう な商用システムでは、より容易に SQL スキルを習得できる人々がレポートや分析を行うことができます。オープンソースの世界は、 BIRT、Jasper Reports、Pentaho も生み出しました。. Hive や HBase を使用すると、カスタム フロント エンドを構築するビジネスに参加できますが、今後 5 年間 Python でカスタム レポート フォーマッタを作成することに満足している場合を除いて、これは望ましくありません。
最後に、運用システムから高速なデータ フィードを簡単に取得できる場所にホストします。これはおそらく、独自のデータ センター内の独自のハードウェアを意味します。このシステムは I/O バウンドになります。大量のデータに対して単純な処理を行っています。これは、高速なディスク サブシステムを備えたマシンが必要になることを意味します。クラウド プロバイダーは、このタイプのハードウェアをサポートしない傾向があります。これは、これらの組織が従来使用していた使い捨ての 1U ボックスのタイプよりも桁違いに高価であるためです。高速なディスク I/O は、クラウド アーキテクチャの長所ではありません。