データ・ロードおよびディメンション構築のデバッグ
データ・ソースが「Essbaseサーバー」に正しくロードされない場合は、適切なアプリケーションおよびデータベースに接続していることと、正しいデータ・ソースをロードしていることを確認してください。
それでも問題が発生する場合は、次のトピックを参照してください:
問題を修正した後、エラー・ログをリロードすることで、ロードされなかったレコードをリロードできます。
Essbaseサーバーが使用可能であることの確認
問題がサーバーやネットワークではなくEssbaseにあることを特定するには、Essbaseを使用せずにサーバーにアクセスしてみてください。 次のことを確認します:
-
サーバーは稼働しています。
Essbaseを使用せずにサーバーに接続してみます。 できない場合は、システム管理者に確認してください。
-
「Essbaseサーバー」は実行中です。
Essbase管理者に確認してください。
-
クライアントはサーバーに接続されています。
Essbaseを使用せずに、クライアントからサーバーに接続してみます。
データ・ソースが使用可能であることの確認
ロードするデータ・ソースをEssbaseが開けない場合は、次の条件が満たされていることを確認します:
-
データ・ソースが開いています(データ・ソースを編集しているユーザーなど)。
Essbaseは、別のユーザーまたはアプリケーションによってロックされていないデータ・ソースのみをロードできます。
-
データ・ソースのファイル拡張子が正しいこと。
テキスト・ファイルには
.txt
拡張子が必要です。ルール・ファイルには.rul
拡張子が必要です。 -
データ・ソース名とパス名が正しいこと。
スペル・ミスを確認します。
-
データ・ソースは指定されたロケーションにあります。
データ・ソースを移動または削除したユーザーがいないことを確認します。
-
SQLデータ・ソースを使用している場合:
-
接続情報(ユーザー名、パスワード、データベース名など)が正しいこと。
-
Essbaseを使用せずにSQLデータ・ソースに接続できます。
-
エラー・ログの確認
データ・ロードまたはディメンション構築に失敗した場合、エラー・ログが重要なデバッグ・ツールになることがあります。
エラー・ログがない場合は、次の条件が存在するかどうかを確認します:
-
データ・ロードを実行するユーザーがエラー・ログを設定しました。
デフォルトでは、ルール・ファイルを使用すると、Essbaseによってエラー・ログが作成されます。
-
データ・ソースおよび「Essbaseサーバー」が使用可能です。
-
データ・ロード中に「Essbaseサーバー」がクラッシュしました。
その場合、クライアントでタイムアウト・エラーが発生した可能性があります。
-
アプリケーション・ログが存在します。
エラー・ログは存在するが空の場合、Essbaseではロード中にエラーが発生したとはみなされません。 次の条件が存在するかどうかを確認します:
-
ルール・ファイルには、データ・ソース内のすべてのレコードを拒否する選択基準または拒否基準が含まれます。
-
ルール・ファイルが正しく検証されます。
「有効なデータ・ロード・ルール・ファイルの要件」および「有効なディメンション構築ルール・ファイルの要件」を参照してください。
誤ってロードされたデータの問題の解決
データ・ソースがエラーなしでロードされたが、データベース内のデータが間違っている場合は、次の条件が存在するかどうかを確認します:
-
正しいデータ・ソースをロードしました。
その場合は、データ・ソースに正しい値が含まれていることを再度確認してください。
-
データ・ソースに空白のフィールドがあります。
値のないデータ・フィールドに#MIまたは#MISSINGを挿入する必要があります。 そうしないと、データ・ソースが正しくロードされない可能性があります。 ルール・ファイルを使用して空白フィールドを#MIまたは#MISSINGに置き換えるには、「空のフィールドへのテキストの配置」を参照してください。
-
データ・ソースは正しくフォーマットされています。
-
すべての範囲が正しく設定されています。
-
データはクリーンです。 たとえば、データ・ソースを処理する際、Essbaseはメンバー名を認識し、メンバーが属するディメンションを認識します。 ヘッダー・レコードで指定されたメンバーが存在するディメンションのメンバーがデータ・ソース・レコードに誤って含まれている場合は、そのディメンションのヘッダー・レコード・メンバーが新しいメンバー名に置き換えられます。 次のデータ・ソースの例では、EssbaseはFloridaをMarketディメンションのメンバーとして認識します。 最後の4つのレコードの値は、Texasの値ではなくFloridaの値として解釈されます。
Jan Actual Texas Sales "100-10" 51.7 "100-20" 102.5 "100-20" 335.0 Florida 96.7 "200-20" 276.0 "200-20" 113.1 "200-10" 167.0
-
-
入力データを既存のデータに置き換えるのではなく、既存のデータに追加しました。
「既存の値に対する加算および減算」を参照してください。
-
選択または拒否しようとしていないレコードを選択または拒否しました。
-
符号が反転され(たとえば、プラス記号のかわりにマイナス記号)、UDAで符号反転を実行したかどうか。
「フィールド記号の反転」を参照してください。
-
クリアしないデータの組合せをクリアしました。
「既存のデータ値のクリア」を参照してください。
-
入力値を正しくスケーリングしませんでした。
「データ値のスケーリング」を参照してください。
-
すべてのメンバー名および別名の長さが79文字未満です。
Smart Viewでデータを確認するには、「Oracle Smart View for Officeの操作」を参照してください。
ファイル終端マーカーの却下条件の作成
SQLデータ・ソースには、データ・ロードまたはディメンション構築の失敗の原因となる特殊文字で構成されるファイルの終わりマーカーがある場合があります。 この問題を修正するには、問題レコードを拒否するための拒否基準を定義します。
否認基準を定義する手順は、次のとおりです:
Essbaseによるルール・ファイルの処理方法の理解
場合によっては、Essbaseがルール・ファイルを初期化してデータ・ソースを処理する方法を理解することで、ディメンション構築に関する問題を追跡できます。
Essbaseは、次のステップを実行してルール・ファイルを初期化します:
-
関連付けられたアウトラインに対してルール・ファイルを検証します。
-
ディメンションを検証します。 このプロセスには、構築メソッドとフィールド・タイプに互換性があること、および各ディメンション名が一意であることの確認が含まれます。 メンバー名は一意または共有である必要があります。
-
ルール・ファイルに定義されている新しいディメンションをアウトラインに追加します。
-
データ・ソースで指定されたヘッダー・レコードを読み取ります。
次に、Essbaseは、データ・ロードまたはディメンション構築中にデータ・ソースの各レコードに対して次の操作を実行します:
-
すべてのレコードのファイル・デリミタを設定します。
-
ルール・ファイルに定義されている順序でフィールド操作をデータに適用します。
フィールド操作には、結合、移動、分割、およびテキストと結合を使用したフィールドの作成が含まれます。 ルール・ファイルでフィールド操作が定義される順序を確認するには、「フィールドに対する操作の実行」を参照してください。
-
Essbaseでは、各フィールドのすべてのプロパティが適用され、field2に進む前にすべてのプロパティがfield1に適用されます。 Essbaseでは、フィールド・プロパティが次の順序で適用されます:
-
データ・ロード中に無視されるフィールド・セットを無視
-
ディメンション構築時に無視されるフィールド・セットを無視
-
データ・フィールドにフラグを付けます
-
フィールド名の適用
-
フィールド生成の適用
-
ルール・ファイルに定義されている順序ですべての置換を実行
-
先頭および末尾のスペースを削除
-
スペースをアンダースコアに変換
-
接尾辞および接頭辞の操作を適用
-
データ値のスケーリング
-
テキストを小文字に変換
-
テキストを大文字に変換
-
-
アウトラインにメンバーまたはメンバー情報(あるいはその両方)を追加
-
行をスキップするように選択した場合、Essbaseは指定された行数をスキップします。それ以外の場合、Essbaseは最初のレコードに進みます。
-
Essbaseは、ルール・ファイルに定義されている順序で選択基準または拒否基準を実行します。 Essbaseは、指定された基準に基づいてデータ・ソースの個々のレコードをロードまたは拒否します。
データ・ロード時のEssbaseによる欠落フィールドまたは無効なフィールドの処理方法の理解
データ・ロード中にEssbaseが無効なフィールドを処理する方法については、次のトピックを参照してください。
欠落しているディメンションまたはメンバー・フィールド
ディメンションまたはメンバー・フィールドが欠落している場合、Essbaseでは、そのディメンションまたはメンバー・フィールドに以前に使用した値が使用されます。 以前の値がない場合、Essbaseはデータ・ロードを中止します。
たとえば、次のファイルをSample.Basicデータベースにロードすると、Essbaseによって、ProductディメンションにRoot BeerおよびDiet Colaを含むすべてのレコードのMarketディメンションにOhioメンバー・フィールドがマップされます。
Jan Sales Actual Ohio
Cola 25
"Root Beer" 50
"Diet Cola" 19
欠落しているメンバー・フィールドの値が前のレコードに含まれていない場合、Essbaseはデータ・ロードを停止します。 たとえば、次のファイルをSample.Basicデータベースにロードしようとすると、Marketディメンション(前の例ではOhio)が指定されていないため、データ・ロードが停止します。
Jan Sales Actual
Cola 25
"Root Beer" 50
"Diet Cola" 19
不明なメンバー・フィールド
データ・ロードを実行しているときに不明なメンバー名が見つかった場合、レコード全体が拒否されます。 欠落しているメンバー・フィールドのメンバー名を持つ前のレコードがある場合、Essbaseは次のレコードに進みます。 前のレコードがない場合、データ・ロードは停止します。 たとえば、次のファイルをSample.Basicデータベースにロードすると、Ginger Aleを含むレコードは有効なメンバー名ではないため拒否されます。 Cola、Root BeerおよびCream Sodaを含むレコードがロードされます。 ただし、Ginger Aleが最初のレコードにあった場合、データ・ロードは停止します。
Jan, Sales, Actual
Ohio Cola 2
"Root Beer" 12
"Ginger Ale" 15
"Cream Soda" 11
ノート:
ディメンション構築を実行している場合は、新しいメンバーをデータベースに追加できます。 「データ・ロードまたはディメンション構築の実行」を参照してください。