5

私は、ライブ ActivePivot バックエンド用の高性能フロントエンドを考え出すことを任されています。IObservable<T>事前に集計され、事前に書式設定されたデータの連続ストリーム ( ) と、レポートのディメンションやその他の詳細を示すメタデータを提供するクライアント側のサービス レイヤーが既にあります。私の要件は次のように要約できます。

  1. ストリーム内のメタデータに基づいて、行と列のヘッダーを動的に設定します。
  2. ライブ データをコントロールの適切な行/列に動的に渡します。
  3. データへの変更を強調表示します。例えば。増加した値は一時的に緑で強調表示され、減少した値は赤で強調表示される場合があります。
  4. 基になる MDX クエリに変更を加えることができるように、行/列ヘッダーに対するユーザー アクション (つまり、ドリルダウン) を傍受します。
  5. データ値に対するユーザー アクション (おそらくダブルクリック) を傍受して、ドリルスルー クエリを実行できるようにします (その結果は別のデータ グリッドに表示されます)。

すべてのサードパーティ コンポーネントは、切断された (またはめったに更新されない) データ セットのスライスとダイシングを対象としているようです。彼らはパフォーマンスを犠牲にして、私がまったく必要としない高度な柔軟性を実現しており、私のシナリオではパフォーマンスが最も重要です。

パフォーマンス重視で、事前に集計され、事前にフォーマットされたデータの表示に向けた WPF コントロールを知っている人はいますか?

4

2 に答える 2

2

スライスとダイスのデータ探索を可能にするピボットテーブルのようなフロントエンドは、一般に OLAP テクノロジに関連付けられています。これらのフロントエンドには、独自のデータ モデルを使用して 1 つの特定のサーバーをターゲットにするものもあれば、XMLA トランスポートを介した MDX クエリという標準を実装するものもあります。

しかし、20 年前に OLAP テクノロジが設計されたとき、それをリアルタイムで実行することは考えられませんでした。結果の 1 つは、XMLA 標準がセル セット内の更新をサポートしていないことです。実際には、セル セットとセル セット軸の静的な表現のため、実際には禁止されています。

ActivePivot は、リアルタイムの更新を OLAP 結果セットにプッシュすることができ、(独自の) ストリーミング API を公開してそれらの更新をサブスクライブします。ActivePivot Live フロントエンドは、これらのリアルタイムの更新を活用するために最初に作成されたもので、使い慣れたピボット テーブル コントロールで表示されます。しかし、2013 年現在、リアルタイムをサポートする OLAP サーバーは ActivePivot だけです。これが、OLAP リアルタイム更新をサブスクライブするための標準がまだない理由を説明しています。また、2013 年の時点で、ActivePivot Live 以外では、ピボット テーブル コントロールをリアルタイムで更新する機能をすべて備えたツールキット (WPF であろうとなかろうと) が見つからないことも意味します。私たちが知っているライブラリは、ピボット テーブルの設計で XMLA の静的データ表現を実際に置き換えています。

WPF のような特定のテクノロジの制約の下で、テーブルの配置と構成を容易にする汎用 UI ツールキットを選択します。そこからはDIY作業です。

于 2013-07-25T11:43:25.973 に答える
1

誰かが疑問に思っている場合に備えて、私はPivotGrid高性能のために特別に設計された独自の WPF コントロールを作成することになりました。毎秒数十万の更新で数千万のセルを処理します。なぜ誰もが単一のグリッドにそれほど多くのデータを必要とするのかはわかりませんが、それでいいのです。

質問で提示したすべての要件などを処理します。ただし、所有権があるため、これ以上共有することはできません。

于 2013-09-29T12:41:25.883 に答える