web-dev-qa-db-ja.com

分析BIプラットフォームを設計する方法は?

私は中堅企業向けの新しいBIプロジェクトに取り組んでいます。現在、分析インフラストラクチャは整備されておらず、レポートはExcelで手動で実行されます。レポートと分析を実行するために統合する必要がある(請求などのさまざまなシステムからの)いくつかの異なるデータソースがあります。それらのいくつかは、データベース対応フォームに入るのにいくつかのカスタム変換を必要とするデータダンプです。これらには多数の列があります。これらを処理し、必要な列をフィルタリングし、集計を行う必要があります。通常、毎日約50 GBのデータが生成され、既存のテーブルに毎日挿入されます。

Verticaのような分析データベースは検討する価値があることがわかりました。非OLTPデータベースの使用経験はありません。私の理解では、Vertica(およびその他の同様のもの)は読み取りが最適化されており、分析タスクに適しています。私の質問は、生データがロードされて処理される初期段階でどのように公平であるかということです。そのためにOracleのような従来のOLTPデータベースを使用してから、スタースキーマ用のVertica、次元モデリングタイプのデータストアを使用する必要がありますか?VerticaはETLシナリオに適していますか?

この種のシナリオの典型的なアーキテクチャはどうですか?

1
sfactor

ETL中にVerticaを使用することについての質問に関しては、ETLに別のタイプのデータベースを使用する必要はほとんどありません(不明ではありませんが)。あなたがそうする特定の必要性を認識しない限り、私はそれをしません。これがレガシーデータソースとの相互作用のために行われていると聞いたのはこれだけです。 @KermitはVerticaで動作し、プラットフォームに精通していますが、ETLに別のDBMSプラットフォームが必要であると想定する理由はありません。

Verticaやその他のシステムがトランザクションアプリケーションに適していない理由は、読み取りとバッチロードが高速であるが、ロード操作ごとにかなりのオーバーヘッドがあるデータ構造を使用しているためです。インデックスの再構築または他のそのような操作を必要とするバッチETLプロセスは、これらのシステムでは問題になりません。この操作は、大量のOLTPプラットフォームにはコストがかかりすぎますが、バッチETLジョブには遅すぎません。

通信事業者やその他のVLDBショップで使用される一般的なアーキテクチャは、中間ストレージにフラットファイルを使用してから、データベースにロードすることです。 AbInitioとAscentialDatastageは、このように機能するように設計されたツールであり、このタイプのアーキテクチャは電話会社で一般的です。ただし、ETLツールは複雑な変換を適切にサポートしない傾向があるため、データベース内でデータ操作のレイヤーが発生する可能性があります。

すべてのVLDBプラットフォームは高価であり、一部は独自のハードウェアに関連付けられています。サーバーに多額の費用をかける準備をしてください。 50GB /日での3年間のデータは約50TBであり、これらのデータ量で適切に機能するために専用のキットが必要になる地域になりつつあります。

データウェアハウスソリューションを実装するための予算がすでにあると仮定します。 Verticaについて簡単に話します。これはロードと読み取りが最適化されたプラットフォームであり、OLTP用に設計されたものではありません。

データのステージングと処理に関する部分は、もう少し考える必要があります。 Verticaは、データをステージング、クレンジング、および本番環境に移行するようには実際には設計されていません。それは可能ですが、データがVerticaに到達する前に、ETLツールまたは別のプロセスを使用して処理を実行できる場合は、最高のパフォーマンスが得られます。

アーキテクチャに関して;ビジネスに必要なものには多くの要因があります。明らかに、あらゆる種類のデータベースプラットフォームを実装することは、Excelを使用する数年前になります。ただし、すばやくキャプチャして後でデータをOL​​APに移動する必要がある実際のトランザクションがある場合は、OLTP)を検討することをお勧めします。一部の組織では、ユーザーがすぐに必要とする特定のデータを読み込みます。 Verticaに直接アクセスし、他のユーザーは1日を通してデータをバッチ処理します。

VerticaはTBによってライセンスされているため、分析に実際に必要なデータ量を慎重に検討する必要があります。 50 GBの数値を使用すると、1か月のデータを保存するために約1.5 TBが必要になります。プラットフォームを試してみたい場合は、コミュニティエディションで最大1つまで使用できますTB最大3ノードの生データ。

4
Kermit