1

一連のバイナリ ファイルから OLAP データソースを構築しようとしていますが、現在のモデルは機能していません。結果の分析/レポート モデルとして SSAS を使用していますが、SQL から必要なパフォーマンスを得ることができません。

主な制約は次のとおりです。

  1. データベースは非常に大きいです。数百万行の巨大なディメンション テーブルと、いくつかの小さなファクト テーブル (1,000,000 行未満) があります。

  2. 動的キューブがあります。B/C ファクト テーブルは動的に構築され、多くの場合 (おそらく 1 日に複数回)、キューブのセットアップに大きなオーバーヘッドが発生することはありません。キューブへの現在の展開時間は 24 時間を超える可能性があり、ハードウェアでは実現できない桁違いのパフォーマンス向上が必要です。

基本的に、迅速なセットアップと展開が必要であり、SQL Server 2005 を使用する SSAS には本質的に適していませんが、レポートには SSRS を使用し、Excel での分析には OLAP モデルが必要なので、引き続き可能であれば、SSAS を使用してキューブを構築します。

高速展開のための SSAS での一般的なソリューションは ROLAP ですが、大規模な ROLAP クエリでは実行エラーが発生し、バイナリ データを SQL に変換してキューブにロードする際のすべてのオーバーヘッドも好ましくありません。

SSAS が使用できるカスタム OLAP データソースで作業を行った人はいますか? バイナリ ソース ファイルを直接クエリする独自の ROLAP エンジンを作成しようとしています。

4

4 に答える 4

2

低遅延のキューブ (つまり、最新のデータを表示するキューブ) が必要な場合、そのようなものの正規のアーキテクチャは次のようになります。

  • ソースから変更されたデータを含むファクト テーブルを段階的に読み込みます。
  • 毎日または他の適切な期間に新しいパーティションを生成するプロセスを使用して、パーティション化されたキューブを構築します。キューブには、ROLAP モードで設定された最新のパーティションと、MOLAP として構築された古いパーティションがあります。
  • 新しいリーディング エッジ パーティションを生成するときに、パーティションを更新し、古いパーティションを ROLAP から MOLAP に変更するプロセスを設定します。

キューブに対するクエリは、最新のデータについては比較的小さな ROLAP パーティションにヒットし、履歴データについては MOLAP パーティションにヒットします。MOLAP パーティションには集計を含めることができます。このプロセスは、最先端の ROLAP パーティションを更新し続け、その前のパーティションを変換します。AS は古いパーティションを保持し、交換用パーティションが構築されてオンラインになるまで使用します。

このタイプのアーキテクチャが要件に適合する場合は、この方法を検討できます。

于 2008-09-25T15:04:02.073 に答える
1

返信ありがとう、ナイジェル。

これについては、もう少し詳しく説明する必要があると思います。私のソース データはデータベースではなく独自の形式であるため、ファクト テーブル自体を取得するのにかなりの時間がかかります。次に、キューブをできるだけ早く (できれば数分以内に) 展開し、SQL を使用した小さなデータセットでさえ、現在見られない高速なクエリ応答を得る必要があります。

キューブの構造は動的であるため、多くの場合、キューブのすべての側面を再構築する必要があります。事後的に新しいデータを導入することはありません。したがって、キューブの一部を MOLAP として分割し、ROLAP の他の部分を分割しても、実際には役に立ちません。「Process Full」でのパフォーマンスを求めています。

クエリに SQL を使用できないことに気づき始めており、分析サービス (ま​​たは任意の OLAP ツール) が読み取れるカスタム ROLAP データソースを作成した人がいるかどうかを知りたいと考えています。

結果セットの作成を迅速に処理できます。SSAS からクエリを取得し、それらの結果をフィードバックする方法を理解する必要があるだけです。私たちは、データの処理や集計に SSAS を使用するのではなく、システムと Excel、SSRS などの間の仲介として SSAS を使用することを実際に検討しています。

于 2008-09-25T15:35:25.553 に答える
1

Rのようなものを自作ライブラリ ( C 拡張機能をサポート) と共に使用して、データ セットへのインターフェイスとして使用できますか。R は、複雑なレポートやデータ前処理ライブラリを構築するためのかなりの柔軟性を提供します。また、 Excelへのインターフェイスも備えています。

これは、従来の DB/OLAP モデルとは多少異なるツールチェーンですが、C で高速なデータセット ローダーを簡単に作成し、データベースへのロードの中間ステップをスキップすることができます。

于 2008-09-25T19:19:14.377 に答える
0

私はまだ運がありません。独自のデータ プロバイダーを構築し、Excel 用のアドインを構築してオラップ動作をエミュレートするか、CLR テーブル値関数を使用してデータ ソースをエミュレートし、そこからキューブを構築します。私が CLR で行った 1 つの試みは、キューブを構築するときに SSAS が実行するクエリの量が原因で、ひどいパフォーマンスを示し、失敗しました。これが実現可能かどうかを確認するために、SQL 08 環境でより高速な新しいマシンを入手するのを待っています。頑張れスコット。

于 2009-02-11T20:26:44.437 に答える