1

毎年、キューブの 1 つの履歴コピーを保持しています。今年、誰かが私たちにお金を払って、以前は存在しなかった属性をキューブに追加したいと考えました。私はお金が好きですが、問題は、このキューブを構築したデータベースのバックアップがないことです。

このキューブに新しい属性を追加するには、元のデータベースが必要ですか? キューブに新しい属性を追加し、キューブの元のデータソースを持たずにこの属性のみを処理することは可能ですか?

SSAS キューブとプロセスに属性を追加するときに内部で何が起こっているかを十分に理解していないため、これが可能かどうかはわかりません。おそらく、キューブにはデータソースのメモリ内にスナップショットがあり、そこから作業できると想像できます。また、これは途方もなく非効率的であると想像できるので、これがまったく不可能である可能性があります

編集: キューブ内の既存のデータを利用する計算メンバーを追加することは、少なくとも実現可能と思われます。

また、そのようなキューブに属性を追加しようとしたところ、エラーが発生したことにも言及する必要があります。

「ディメンション [パートナー] を保存できません ファイル システム エラーがファイル C:\\MYSQLSERVER\OLAP\DATA\2013_Cube.db\\.dim\.dstore を C:\\MYSQLSERVER\OLAP\DATA\2013_Cube.db\ にコピーできませんでした\.dim\.dstore ファイルが存在します"

申し訳ありませんが、これらのファイルパスを少し偽造しました。

4

2 に答える 2

2

この作業は非常に困難です。私が想像できる唯一の方法は、データ ソース ビュー (キャッシュされたメタデータがある) に基づいて元のデータベースを手動で再構築し、SSAS クエリ ツール (Excel、SSRS、OLE DB など) を使用してデータを生成してデータを入力することです。 Analysis Services のプロバイダー)。

ディメンションに 1 つの属性を追加したい場合、その労力を問題のディメンションのソース データに限定できる場合があります。

于 2012-11-02T02:14:42.843 に答える
1

まず、キューブがデータを格納するプロセスの手順に基づいて説明します!!!

  1. データソースを取得 - データ!!! つまり、元のデータベース/ファイルなどにアクセスできます。この時点で、すべてのデータはプライマリ ソースにあります。すべてのデータはいずれかの方法で正規化されます。
  2. データ ウェアハウスを構築します。ELTプロセス。この時点で、外部キーや制約なしで、すべてのデータを非正規化された倉庫に結合します。非正規化された SQL データベースでは、すべてのデータが中間状態になり、キューブで使用する準備が整いました。
  3. OLAP キューブを構築します。データ ウェアハウスがデータ ソースになりました。すべてのデータは、対応する値とともにキューブ内の行に集約されます。冗長性は非常に大きく、データは 100% 非正規化されており、ほとんどパターンに従いません (もちろんそうですが、常に簡単に理解できるとは限りません)。

この状態での例は、次のような行になります

Company -> Department -> Room | Value(Employees)
ET LTD  -> IT -> Room 4 -> | 4 

Value(Revenue) にはまったく同じ行が存在します。したがって、本質的にすべてのデータは SSAS データベース (キューブ) 内に存在します。データベースの再構築は、大量のリバース エンジニアリングを意味します。

MDX コネクタとクエリを使用してデータを取得し、MSsql コネクタを使用してそれらを OLTP データベース内に保存する新しい C# プログラムを作成できます。MDX は学習曲線が急で、Web サイトでの引用が少ないため、上記の方法はお勧めできません。

Excel は DataConnection から動的にピボット テーブル データを取得するため、Excel からデータを取得する方法はわかりません。

于 2012-11-05T15:09:32.950 に答える