データ・ロードおよびディメンション構築のデバッグ

Essbaseのデータ・ロードおよびディメンション構築に関する問題としては、不適切なロードや、プロセスの失敗などがあります。ソースに不明メンバーまたは欠落/無効フィールドがあるか、ロード・ルールが無効であるか、サーバーまたはソース・データへの接続がない場合があります。エラー・ログは、デバッグに役立ちます。

データソースが正常にEssbaseサーバーにロードされなかった場合は、適切なアプリケーションおよびデータベースに接続していることと、正しいデータソースをロードしていることを確認します。

それでも問題が発生する場合は、次のトピックを参照してください。

問題を修正した後、エラー・ログをリロードすることにより、ロードされなかったレコードをリロードできます。

Essbaseサーバーが使用可能であることの確認

問題がサーバーやネットワークではなくEssbaseにあるかどうかは、Essbaseを使用しないでサーバーにアクセスしてみることで判断しやすくなります。次のことを確認します。

  • サーバーが実行中である。

    Essbaseを使用しないでサーバーに接続してみます。できない場合は、システム管理者に問い合せてください。

  • Essbaseサーバーが実行中である。

    Essbase管理者に問い合せてください。

  • クライアントがサーバーに接続されている。

    Essbaseを使用しないでクライアントからサーバーに接続してみます。

データソースが使用可能であることの確認

ロードするデータソースをEssbaseが開くことができない場合は、次の条件を満たしていることを確認します。

  • データソースが使用可能である(たとえば、データソースが編集中かどうか)。

    Essbaseでは、別のユーザーまたはアプリケーションによってロックされていないデータソースのみをロードできます。

  • データソースに正しいファイル拡張子がある。

    テキスト・ファイルには.txt拡張子が必要です。ルール・ファイルには.rul拡張子が必要です。

  • データソース名とパス名が正しい。

    スペルミスを確認します。

  • データソースが指定した場所にある。

    データソースが移動または削除されていないことを確認します。

  • SQLデータソースを使用する場合:

    • 接続情報(ユーザー名、パスワード、データベース名など)が正しい。

    • Essbaseを使用しないでSQLデータソースに接続できる。

エラー・ログの確認

データ・ロードまたはディメンション構築が失敗した場合は、エラー・ログが貴重なデバッグ・ツールとなります。

エラー・ログがない場合は、次の条件の有無を確認します。

  • データ・ロードを実行するユーザーがエラー・ログを設定した。

    デフォルトでは、ルール・ファイルを使用すると、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
  • 受信データを既存のデータで置き換えるのではなく、受信データを既存のデータに追加した。

    既存の値に対する加算および減算を参照してください。

  • 選択または拒否する意図がなかったレコードを選択または拒否した。

    レコードの選択と拒否」を参照してください。

  • 符号が逆になっており(たとえば、プラス符号ではなくマイナス符号)、符号反転をUDAに対して実行したかどうか。

    フィールド符号の反転を参照してください。

  • クリアする意図がなかったデータの組合せをクリアした。

    既存のデータ値のクリアを参照してください。

  • 受信した値を誤ってスケーリングした。

    データ値のスケーリングを参照してください。

  • すべてのメンバー名および別名が79文字未満である。

Smart Viewでデータを確認するには、Oracle Smart View for Officeの使用を参照してください。

ファイル終端マーカーの拒否基準の作成

SQLデータソースには、データ・ロードやディメンション構築の失敗につながる、特殊文字で構成されたファイル終端マーカーが含まれていることがあります。この問題を解決するには、問題のあるレコードを拒否する拒否基準を定義します。

拒否基準を定義するには:

  1. SQLデータソース内のファイル終端マーカーを見つけます。
  2. Essbaseの検索コマンドを使用してファイル終端マーカーを検索する方法を決定します。

    ファイル終端マーカーは1つ以上の特殊文字で構成されていることがあるため、このタスクは難しい場合があります。

  3. ファイル終端マーカーを拒否する拒否基準を定義します。

Essbaseでのルール・ファイルの処理方法の理解

Essbaseによるルール・ファイルの初期化方法やデータソースの処理方法を理解することによって、ディメンション構築の問題を発見できる場合があります。

ルール・ファイルを初期化するために、Essbaseによって次のステップが実行されます。

  1. 関連付けられたアウトラインに対してルール・ファイルを検証します。

  2. ディメンションを検証します。このプロセスでは、構築方法とフィールド・タイプに互換性があることと、各ディメンションの名前が一意であることが確認されます。メンバー名は一意であるか、共有される必要があります。

  3. ルール・ファイルで定義された新しいディメンションをアウトラインに追加します。

  4. データソースに指定されたヘッダー・レコードを読み取ります。

その後、Essbaseは、データ・ロード中またはディメンション構築中に、データソースの各レコードに対して次の操作を実行します。

  1. すべてのレコードにファイル・デリミタを設定します。

  2. ルール・ファイルに定義されている順序でフィールド操作をデータに適用します。

    フィールド操作には、結合、移動、分割、およびテキストと結合を使用したフィールドの作成が含まれます。ルール・ファイルでフィールド操作が定義されている順序を確認する場合は、「フィールドに対する操作の実行」を参照してください。

  3. Essbaseにより、フィールドごとにすべてのプロパティが適用されます。field2に進む前にfield1にすべてのプロパティが適用されます。Essbaseでは、次の順序でフィールドのプロパティが適用されます。

    1. データ・ロード中に無視されるように設定されたフィールドを無視します

    2. ディメンション構築中に無視されるように設定されたフィールドを無視します

    3. データ・フィールドにフラグを付けます

    4. フィールド名を適用します

    5. フィールドの世代を適用します

    6. ルール・ファイルに定義されている順序で、すべての置換を実行します

    7. 先頭および末尾のスペースを削除します

    8. スペースをアンダースコアに変換します

    9. 接尾辞および接頭辞の演算を適用します

    10. データ値をスケーリングします

    11. テキストを小文字に変換します

    12. テキストを大文字に変換します

  4. メンバーまたはメンバー情報、あるいはその両方をアウトラインに追加します

  5. 行をスキップするように選択した場合、指定した行数がEssbaseでスキップされます。それ以外の場合、Essbaseは最初のレコードに進みます。

  6. Essbaseにより、ルール・ファイルに定義されている順序で選択基準または拒否基準が実行されます。指定した基準に基づいて、Essbaseによってデータソースの個々のレコードがロードまたは拒否されます。

データ・ロード中の欠落フィールドまたは無効なフィールドに対するEssbaseでの処理方法の理解

Essbaseによるデータ・ロード時の無効なフィールドの処理方法を理解するには、次のトピックを参照してください。

ディメンション・フィールドまたはメンバー・フィールドの欠落

ディメンション・フィールドまたはメンバー・フィールドが欠落している場合、Essbaseでは、以前にそのディメンション・フィールドまたはメンバー・フィールドで使用した値が使用されます。以前の値がない場合、Essbaseによりデータ・ロードは中断されます。

たとえば、次のファイルをSample.Basicデータベースにロードする場合、Essbaseでは、Productディメンションに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