データ・ロードとディメンション構築のデバッグ
Essbaseデータ・ロードおよびディメンション構築の問題には、誤ったロードまたは失敗したプロセスが含まれます。ソースに不明なメンバーが含まれているか、フィールドがないか、無効なフィールドが含まれているか、ロード・ルールが無効であるか、サーバーまたはソース・データに接続されていない可能性があります。エラー・ログはデバッグに役立ちます。
データソースが正常にEssbaseサーバーにロードされなかった場合は、適切なアプリケーションおよびデータベースに接続していることと、正しいデータソースをロードしていることを確認します。
それでも問題が発生する場合は、次のトピックを参照してください。
問題を修正した後、エラー・ログをリロードすることにより、ロードされなかったレコードをリロードできます。「ディメンション構築およびデータ・ロードのエラー・ログからのロード」を参照してください。
Essbaseサーバーが使用可能であることの確認
データをロードできない場合は、Essbaseサーバーが実行されていることを確認します。他の操作については、Essbaseサーバーにアクセスしてください。
たとえば、Essbaseアプリケーションに接続して取得できることを確認します。Smart Viewで問合せを実行してみてください。
ソース・データが使用可能であることの確認
ロードするソース・データにEssbaseがアクセスできない場合は、ロックが解除されていること、およびパスとファイル拡張子が正しいことを確認してください(ファイルである場合)。ソース・データが外部データベースである場合は、ソース・データが実行中であり、接続できることを確認してください。
ソース・データに関する次の詳細を確認してください。
-
ソース・データが開いていません(たとえば、誰かがソース・データを編集していますか)。
Essbaseでは、別のユーザーまたはアプリケーションによってロックされていないソース・データのみをロードできます。
-
ソース・データのファイル拡張子が正しい。
テキスト・ファイルの拡張子は
.txtで、ルール・ファイルの拡張子は.rulである必要があります。 -
ソース・データ・ファイル名とパス名が正しい。
スペルミスを確認します。
-
ソース・データは指定された場所にあります。
ソース・データ・ファイルが移動または削除されていないことを確認します。
-
データのSQLソースを使用している場合:
-
接続詳細(ユーザー名、パスワード、データベース名など)が正しい。
-
Essbaseを使用せずにSQLソース・データに接続できます。
-
エラー・ログのチェック
ログは貴重なデバッグ・ツールであるため、データ・ロードまたはディメンション構築の実行時にEssbaseをエラー・ログに書き込むことをお薦めします。ディメンション構築またはデータ・ロード中に発生したエラーがリストされ、ロードに失敗したレコードが含まれます。
エラーを修正したら、エラー・ログからリロードできます。エラー・ログがない場合は、次の条件の有無を確認します。
-
データ・ロードまたはディメンション構築ジョブを実行しているユーザーがエラー・ログを設定しました。データ・ロードまたはディメンション構築の実行時に、エラー時にデータ・ロードを中止するか、エラーをログに書き込み/追加するかをEssbaseに指示できます。
Essbaseによってディメンション構築またはデータ・ロードのエラー・ログが作成されると、キューブ・ディレクトリに作成されます。ファイル形式は
err_<databasename>_<number>.txtです。 -
データのソースとEssbaseサーバーの両方を使用できます。
Essbaseサーバーが使用可能であることの確認およびソース・データが使用可能であることの確認を参照してください
-
データ・ロード中にEssbaseサーバーがクラッシュした。
その場合、通常はクライアントでネットワーク・タイムアウト・エラーを受信します。
-
アプリケーション・ログが存在する。
エラー・ログが存在するが空である場合、Essbaseではロード中にエラーが発生したとみなされません。次の条件の有無を確認します。
-
ロード・ルールには、ソース内のすべてのレコードを却下した選択基準または拒否基準が含まれます。
「レコードの選択と拒否」を参照してください。
-
ロード・ルールが正しく検証されます。
有効なデータ・ロード・ルール・ファイルの要件および有効なディメンション構築ルール・ファイルの要件を参照してください。
誤ってロードされたデータに関する問題の解消
Essbaseデータがエラーなしでロードされたが、データが間違っているように見える場合は、最初にソース・データをチェックしてから、暗黙の共有、データのスケーリング、符号の反転、およびロード・ルールに関するその他の潜在的な問題についてチェックを実行します。
次の項目をチェックして、ロードされたデータをトラブルシューティングします。
-
正しいデータソースをロードした。
この場合、データソースを再度確認し、正しい値が含まれていることを確認します。
-
ソース・データが正しくフォーマットされています。
-
すべての範囲が適切に設定されている。
-
データがクリーンである。たとえば、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
-
-
認識していなかった暗黙的に共有されたメンバー(親と子が同じデータ値を共有する場合)はありますか。
暗黙の共有メンバーは、親と子が同じデータ値を共有する場合に発生します。これは、親が子を1つのみ持つか、親に積み上げられる子を1つのみ持つ場合に発生する可能性があります。
-
受信データを既存のデータで置き換えるのではなく、受信データを既存のデータに追加した。
既存の値に加算または減算を参照してください。
-
選択または拒否する意図がなかったレコードを選択または拒否した。
「レコードの選択と拒否」を参照してください。
-
符号が逆になっており(たとえば、プラス符号ではなくマイナス符号)、符号反転をUDAに対して実行したかどうか。
フィールド符号の反転を参照してください。
-
クリアする意図がなかったデータの組合せをクリアした。
データ・ロード中の既存のデータ値のクリアを参照してください。
-
受信した値を誤ってスケーリングした。
データ値のスケールを参照してください。
-
すべてのメンバー名および別名が79文字未満である。
データをチェックするには、Smart Viewまたはレポート・ライターから問合せを実行します。
ファイル終端マーカーの拒否基準を作成する
SQLデータ・ソースには、Essbaseデータ・ロードやディメンション構築の失敗を引き起こす、特殊文字で構成されたファイル終端マーカーが含まれていることがあります。この問題を解決するには、問題のあるレコードを拒否する拒否基準を定義します。
拒否基準を定義するには:
Essbaseによるロード・ルールの処理方法
場合によっては、Essbaseがロード・ルールを初期化/検証する方法、およびソース・データのレコードを処理する際に操作を実行する順序を理解することで、ディメンション構築の問題を追跡できます。
ロード・ルールを初期化するために、Essbaseによって次のステップが実行されます。
-
関連付けられたアウトラインに対してロード・ルールを検証します。
-
ディメンションを検証します。このプロセスでは、構築方法とフィールド・タイプには互換性があることと、各ディメンション名が一意であることが確認されます。メンバー名は一意であるか、共有される必要があります。
-
ロード・ルールで定義された新しいディメンションをアウトラインに追加します。
-
ソース・データで指定されたヘッダー・レコードを読み取ります。
その後、Essbaseは、データソースの各レコードで、データ・ロードまたはディメンション構築中に次の操作を実行します。
-
すべてのレコードにファイル・デリミタを設定します。
-
ロード・ルールに定義されている順序でフィールド操作をデータに適用します。
フィールド操作には、結合、移動、分割、およびテキストと結合を使用したフィールドの作成が含まれます。ロード・ルールでのフィールド操作の定義順序を学習するには、「フィールドに対する操作の実行」を参照してください。
-
Essbaseにより、フィールドごとにすべてのプロパティを適用し、field2に進む前にfield1にすべてのプロパティを適用します。Essbaseでは、次の順序でフィールドのプロパティが適用されます。
-
データ・ロード中に無視されるように設定されたフィールドを無視します。
-
ディメンション構築中に無視されるように設定されたフィールドを無視する。
-
データ・フィールドにフラグを立てます。
-
フィールド名を適用します。
-
フィールドの世代を適用します。
-
ロード・ルールに定義されている順序で、すべての置換を実行します。
-
先頭および末尾のスペースを削除します。
-
スペースをアンダースコアに変換します。
-
接尾辞および接頭辞の演算を適用します。
-
データ値をスケールします。
-
テキストが小文字に変換されます。
-
テキストを大文字に変換します。
-
-
メンバーまたはメンバー情報、あるいはその両方をアウトラインに追加します。
-
行をスキップするように選択した場合、指定した行数がEssbaseでスキップされ、それ以外の場合、Essbaseは最初のレコードに進みます。
-
Essbaseにより、ロード・ルールに定義されている順序で選択基準または拒否条件が実行されます。指定した基準に基づいて、Essbaseによってソース・データの個々のレコードがロードまたは拒否されます。
Essbaseによるデータ・ロード中の欠落フィールドのまたは無効なフィールドの処理方法
データ・ロード中にメンバー・フィールドが存在しない場合、Essbaseは以前の値を使用しますが、存在しない場合はロードを停止します。メンバー名が不明な場合、レコードは拒否されます。無効なデータ・フィールドがある場合、データ・ロードが停止し、部分的なデータ・ロードが発生します。
このような問題後のデータ・ロードの再開の詳細は、「ディメンション構築およびデータ・ロードのエラー・ログからのロード」を参照してください。
ディメンション・フィールドまたはメンバー・フィールドの欠落
ディメンション・フィールドまたはメンバー・フィールドが欠落している場合、Essbaseでは、以前にそのディメンション・フィールドまたはメンバー・フィールドで使用した値が使用されます。以前の値が存在しない場合、Essbaseによりデータ・ロードは停止されます。
たとえば、次のファイルをSample.Basicデータベースにロードする場合、Essbaseでは、製品ディメンションのRoot BeerおよびDiet Colaを持つレコードを含むすべてのレコードにおいて、Ohioメンバー・フィールドがMarketディメンションにマップされます。
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ノート:
ディメンション構築を実行する場合は、データベースに新しいメンバーを追加できます。「データ・ロードまたはディメンション構築の実行」を参照してください。
無効なデータ・フィールド
データ・ロードの実行中に無効なデータ・フィールドが検出された場合、データ・ロードは停止します。無効なフィールドより前にロードされたすべてのフィールドが、キューブにロードされます。その結果として、部分的なデータ・ロードになります。たとえば、次のファイルでは、15- というデータ値が検出されるとデータ・ロードが停止します。JanとFebのSalesレコードは読み込まれますが、MarとAprのSalesレコードは読み込まれません。
East Cola Actual
Sales Jan $10
Feb $21
Mar $15-
Apr $16