1

私は OLAP を初めて使用するので、この質問に使用する適切な用語を知らないかもしれませんが、ここで我慢してください。

親/集計セルにはほとんどデータがありますが、子/葉のセルにはデータが欠落していることが多い(属性値は不明ですが、ゼロではありません)。現在、スクリプトと SQL を組み合わせて使用​​していますが、扱いにくくなっています。データの構造には OLAP キューブと MDX の方が適しているように見えますが、それを処理する必要があるタスクには必ずしも適しているとは限りません。例えば:

  • OLAP は主に読み取り専用レポート用に設計されているようです。バッチ処理でデータに多くの変更を加えます
  • OLAP は、集計を計算するために完全なリーフ レベルのデータが必要なようです。私のデータにはさまざまなレベルで欠損値があります

私がやりたいことの例:

  • 元のマルチレベル データをキューブにロードし、既知の親を保持します。それらの値を子の計算された集計として上書きしたり表示したりしないでください (不完全な場合があります)。
  • 複雑なクエリ/他のキューブの結合の結果に基づいて、キューブ内のセルを作成/更新/削除します。場合によっては、キューブを変換して、わずかに異なるディメンション定義を使用する必要があります。
  • ユーザーは未知の値の見積もりを必要とします。適切な見積もりを作成することはできますが、すべてのディメンションとレベルで既知の親/子に準拠するように調整する必要があります (これは思ったよりも難しいことです)。私はすでにこれを行っていますが、データを RDBMS からカスタム実行可能ファイルにプルする必要があります。
  • クエリと計算では、未知数を適切に処理できる必要があります。理想的には、集計されたセルの値のどの程度が推定値と既知の値で構成されているかを簡単に問い合わせたり、信頼/エラー統計を計算したり、既知の親とすべてがある場合に未知のセルの正確な値を導出できるかどうかを確認したりできます。知られている兄弟など
  • データは大きくなる可能性があります... 最大数千万のファクト テーブル行。バッチ ジョブのパフォーマンスはまともなものである必要があります (数分で問題ありませんが、数時間で十分です)。

OLAP サーバーと MDX は、この種の作業に適したツールでしょうか? 階層/多次元/ギャップ充填データの操作に適した他のツールはありますか?

4

1 に答える 1

1

これは、OLAP システムに対するいくつかのニーズであり、興味深く、やりがいのあるものです :-) :

- 元のマルチレベル データをキューブにロードし、既知の親を保持します。それらの値を子の計算された集計として上書きしたり表示したりしないでください (不完全な場合があります)。

キューブが階層内の値を集計する方法を変更できます。これを 1 つの階層で行うのは問題ありません。複数の階層でこれを行うと、複雑になり始める可能性があります。複数の「特別な」階層の問題に対する数学的な「独自の」解決策があるかどうか、2 回確認する価値があります。

複雑なクエリ/他のキューブの結合の結果に基づいて、キューブ内のセルを作成/更新/削除します。場合によっては、キューブを変換して、わずかに異なるディメンション定義を使用する必要があります。

ここでは、書き戻し ( MDX 関数の Update cube ) を使用できますが、ニーズには少し単純すぎると思います。実装はベンダーによって異なります。セルを作成するとメモリが失われる可能性があることに注意してください。大きなキューブの場合、サブキューブに数百万のセルをすばやく配置できます。

モデルのスパース性は? -> データを含むセルの数 / セルの合計数

一部のモデルには 1e-30 のスパース性があります。ここでは、すべてのセルを更新すると簡単に爆発します ;-)。

ユーザーは未知の値の見積もりを必要とします。適切な見積もりを作成することはできますが、すべてのディメンションとレベルで既知の親/子に準拠するように調整する必要があります (これは思ったよりも難しいことです)。私はすでにこれを行っていますが、RDBMS からカスタム実行可能ファイルにデータをプルする必要があります。

これは複雑に見える ここでの問題は、アルゴの複雑さ、MDX 言語を使用した可能なソリューション、およびそれらが OLAP エンジンとどのように一致するか (十分に高速) です。あなたはそれが爆発する危険を冒していますが、スコープ機能を見てください

データは大きくなる可能性があります... 最大数千万のファクト テーブル行。バッチ ジョブのパフォーマンスは適切である必要があります (数分で問題ありませんが、数時間で十分です)。

それは本当の挑戦ではないはずです..

あなたの質問に答えるために、私はそうは思いません。遺伝分野でも同様の問題があり、OLAP ソリューションに専用の計算モジュールを「追加」して問題を解決しようとしています。進行中の興味深いプロジェクトです

于 2011-09-09T08:42:11.270 に答える