データ・ロードまたは次元構築の実行およびデバッグ

この項の内容:

データ・ロードおよび次元構築における前提条件

データ・ロードまたは次元構築の実行

データ・ロードまたは次元構築の停止

データのロードおよび次元の構築に関するヒント

データ・ロードおよび次元構築のデバッグ

関連項目:

データ・ロードおよび次元構築における前提条件

1つ以上の外部データ・ソースから、データまたはメンバーをEssbaseサーバーにロードできます。アウトラインを更新しないでデータのロードのみを実行するか、データをロードしないでアウトラインの更新のみを実行するか、データのロードと次元構築を同時実行するかを選択できます。データのロードまたは次元構築の前に、次のアイテムが準備できていることを確認します:

データ・ロードまたは次元構築の実行

Administration Servicesを使用してデータ・ロードまたは次元構築を実行する場合、ロードまたは構築をバックグラウンドで実行することにより、ロードまたは構築の処理中も引き続き別の作業を行うことができます。その後、バックグラウンド・プロセスのステータスをチェックして、いつロードまたは構築が完了したかを確認できます。Oracle Essbase Administration Services Online Helpの、データのロードおよび次元構築に関する項を参照してください。

次元構築で複数のデータ・ソースを使用している場合は、合計処理時間を削減するために、再構築が延期された次元構築を実行できます。再構築が延期された次元構築の実行を参照してください。

注:

データの透過パーティションへのロード手順は、ローカル・データベースにデータをロードする手順と同じです。

  データのロードまたは次元構築を実行するには、次のツールを使用します:

ツール

トピック

場所

Administration Services

データ・ロードおよび次元構築

Oracle Essbase Administration Services Online Help

MaxL

データのロードの場合: import data

次元構築の場合: import dimensions

『Oracle Essbaseテクニカル・リファレンス』

ESSCMD

データのロードの場合: IMPORT

次元構築の場合: BUILDDIM

『Oracle Essbaseテクニカル・リファレンス』

データ・ロードまたは次元構築の停止

データ・ロードや次元構築は、完了する前に停止できます。ただし、必要な場合以外は停止しないでください。データ・ロードや次元構築のプロセスが停止した場合、Essbaseには部分的にロードされたファイルの名前が表示されます。

クライアントからデータ・ロードまたは次元構築を開始し、サーバーから停止する場合、クライアントが停止要求に応じるまで時間がかかることがあります。Essbaseでは、すべてのソース・データが読み取られるまでソース・ファイルの読取りが行われるので、この所要時間は、ファイル・サイズとEssbaseで処理されたソース・データの量によって異なります。プロセスを開始元のコンピュータで停止する場合は、すぐに停止できます。

注:

データをブロック・ストレージ・データベースにロードする際にデータ値に対して加算または減算を行う場合は、可能であればコミット分離レベル設定を使用します。データ・ロードが停止された場合、この設定により、データ・ロード以前の状態に戻すことができます。分離レベルの理解を参照してください。データ値に対して加算または減算を行うようなデータ・ロードを停止する場合は、Essbaseサーバーのクラッシュからのリカバリを参照してください。

  データ・ロードまたは次元構築を完了前に停止するには、次のツールを使用します:

ツール

トピック

場所

Administration Services

ユーザー・セッションおよび要求の切断

Oracle Essbase Administration Services Online Help

MaxL

alter system kill request

『Oracle Essbaseテクニカル・リファレンス』

この項には、データのロードと次元の構築に役立つトピックが含まれています。参照:

再構築が延期された次元構築の実行

データのみをロードする場合や次元構築で単一データ・ソースを使用する場合は、この項をスキップします。

デフォルトでは、ユーザーがアウトラインに変更を加えるたびに、Essbaseによって変更のタイプが認識され、必要に応じてデータベースが再構築されます。データベースの再構築では、データベースが再度構築されます。これは時間のかかる処理で、そのプロセスに多くのディスク・スペースが必要になるだけでなく、ファイルの最適化が行われる場合もあります。変更のタイプと必要になる再構築のタイプについては、次のトピックを参照してください:

再構築が延期された次元構築(増分次元構築)では、次元構築のために複数のデータ・ソースが読み取られ、すべてのデータ・ソースが処理されるまで再構築は延期されます。再構築が延期された次元構築を行うには、次のように、様々な方法でアクションを指定します:

  • Administration Servicesでは、単一のダイアログ・ボックス内にすべてのデータ・ソースをリストできます。

    リストされたファイルがすべて次元構築の場合、再構築が延期された次元構築のオプションを使用できます。このオプションを選択すると、すべてのソースが処理されるまで再構築が延期されます。アウトラインの検証は、各次元構築処理が完了してから行われます。Oracle Essbase Administration Services Online Helpの、データのロードおよび次元構築に関する項を参照してください。

  • MaxLでは、1つのimport databaseステートメントにすべてのデータ・ソースを含めることができます。

    ファイルごとにアウトラインの検証を行うかどうかを制御できます。最終ファイルに対しては、アウトラインの検証を使用可能にする必要があります。『Oracle Essbaseテクニカル・リファレンス』のMaxLの項にある「import database」と「import dimension」を参照してください。

  • ESSCMDでは、いくつかのコマンドを使用します:

    • BEGINCBUILDDIM: 再構築が延期された次元構築を行うことを指示

    • INCBUILDDIM: データ・ソースごとに、次元構築にデータ・ソースを含めることを指示

    • ENDBUILDDIM: 必要に応じて再構築をトリガー

いずれの場合も、データ・ソースは指定した順序で処理されます。

注:

MaxLとESSCMDを使用して、ファイルごとのアウトラインの確認を強制または抑制できます。アウトラインが有効であることを確認するために、最終の構築でアウトラインの検証が行われるようにします。Administration Services内の再構築が延期された次元構築では、各データ・ソースが処理された後、アウトラインが検証されます。

データをロードする場所の決定

次元構築を行う場合または集約ストレージ・データベースを処理する場合は、この項をスキップします。

親メンバーにデータをロードする場合は、データベースの計算時に子のデータ値が集計されて、親のデータ値が上書きされることがあります。上書きを防ぐ手順は、次のとおりです:

  • 可能なかぎり、データを直接親へロードしないでください。

  • 親メンバーにデータをロードする必要がある場合は、その親の子の#MISSING値を集計しないようにEssbaseに指示します。

  集計を設定するには、次のツールを使用します:

ツール

トピック

場所

Administration Services

計算時のMissing値の集約

Oracle Essbase Administration Services Online Help

計算スクリプト

SET AGGMISSG

『Oracle Essbaseテクニカル・リファレンス』

MaxL

alter database

『Oracle Essbaseテクニカル・リファレンス』

ESSCMD

SETDBSTATEITEM

『Oracle Essbaseテクニカル・リファレンス』

この表に示した方法は、子の値が空(#MISSING)である場合にのみ使用できます。子がデータ値を持っている場合、そのデータ値で親のデータ値が上書きされます。#MISSING値の集計を参照してください。

注:

動的計算メンバー、動的計算および保管メンバーまたは属性メンバーにはデータをロードできません。たとえば、年次元が動的計算メンバーである場合、このメンバーにはデータをロードできません。かわりに、動的計算メンバーではないQtr1、Qtr2、Qtr3およびQtr4にデータをロードします。

データ・ソース内の欠落フィールドの処理

データ・ロードを実行するには、データ・ソース内の各レコードが同じ数のデータ値フィールドを持っている必要があります。データ値が欠落している場合、データ・ロードは正確に処理されません。

たとえば、次のファイルは、Aprに値がないため無効です:

      Actual  Ohio  Sales  Cola
Jan   Feb   Mar   Apr
10    15    20
   

ファイルを修正するには、欠落したフィールドに#MISSINGまたは#MIを挿入します:

      Actual  Ohio  Sales  Cola
Jan   Feb   Mar   Apr
10    15    20    #MI
   

空のフィールドへのテキストの配置を参照してください。

注:

次元フィールドまたはメンバー・フィールドが欠落している場合、Essbaseでは、以前にその次元フィールドまたはメンバー・フィールドで使用した値が使用されます。次元フィールドまたはメンバー・フィールドの欠落を参照してください。

ルール・ファイルに余分な空白のフィールドがある場合は、空のフィールドを隣のフィールドと結合します。フィールドの結合を参照してください。

集約ストレージ・データベースでは、値はレベル0のセルのみにロードできます。#MISSINGまたは#MIをデータ・ソース内の値として指定すると、データベース内の対応するセル(存在する場合)が削除されます。集約ストレージ・データベースでのデータ・ロードの相違点については、集約ストレージ・データベースの準備を参照してください。

データ・ソースからのレコードのサブセットのロード

データ・ロード時または次元構築時に、データ・ソース内のレコードのサブセットをロードできます。たとえば、レコード250から500までをロードし、データ・ソースの他のレコードはロードしないように指定できます。

  レコードのサブセットをロードするには:

  1. テキスト編集ツールを使用して、データ・ソース内のレコードに番号を付けます。

  2. レコード番号を含む列を無視するように、ルール・ファイルを設定します。

    フィールドの無視を参照してください。

  3. ロードするレコード以外のすべてのレコードを除外する、除外条件を定義します。

    たとえば、レコード番号が250より小さい列と500より大きい列を無視するようにして、該当するすべてのレコードを除外します。レコードの除外を参照してください。

    注:

    エラー・ログに収まりきらないレコードは除外できません。デフォルトのレコード数の上限は1000です。この値は、essbase.cfgファイルにDATAERRORLIMITを設定することで変更できます。『Oracle Essbaseテクニカル・リファレンス』を参照してください。

データのロード・オプションの保存と再利用

Administration Servicesでデータ・ロードと次元の構築を実行し、毎回同じデータ・ソース・ファイルとルール・ファイルを使用する場合は、「データ・ロード」ダイアログ・ボックスに指定したソース・ファイルおよびルール・ファイルのオプションを保存して、後で再利用できます。

デフォルトでは、ファイル・オプションはクライアント側のARBORPATHディレクトリ内の指定のXMLファイルに保存されます。保存したオプションのファイルを使用する場合は、このファイルを開きます。保存されたファイルとそのオプションは、現在開いている「データ・ロード」ダイアログ・ボックス内のリストに追加されます。

ヒント:

データ・ロード・オプションのファイルはテンプレートとして使用できるので、このファイルを開いてから、任意の指定を変更できます。

Oracle Essbase Administration Services Online Helpの、データのロードおよび次元構築に関する項を参照してください。

次元構築およびアウトライン編集時の名前の参照と挿入の最適化

新規ハッシュテーブルの実装により、次元構築およびアウトライン編集時に名前の参照と挿入のパフォーマンスが最適化されます。このハッシュテーブルの実装では、メモリー・フットプリントが増加されます。

ハッシュテーブルを構成するには、ESTIMATEDHASHSIZE構成設定を使用します。この設定には、メモリーにロードされるメンバー名および別名の推定数を百万単位で指定します。

ESTIMATEDHASHSIZE構成設定は、ブロック・アプリケーションと集約ストレージ・アプリケーションに適用されます。

データ・ロードおよび次元構築のデバッグ

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

それでも問題が解決されない場合は、次のトピックを参照してください。問題が修正されたら、エラー・ログを再ロードすることにより、ロードされなかったレコードを再ロードできます。次元構築およびデータ・ロードのエラー・ログのロードを参照してください。

Essbaseサーバーが使用可能かどうかの確認

サーバーやネットワークではなくEssbaseに問題があることを識別しやすくするには、Essbaseを使用しないでサーバーにアクセスしてみます。次の項目を確認します:

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

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

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

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

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

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

データ・ソースが使用可能かどうかの確認

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

  • データ・ソースが使用可能な状態である(たとえば、データ・ソースを編集中のユーザーが存在しないかどうか)。

    Essbaseでは、他のユーザーまたはアプリケーションによってロックされていないデータ・ソースしかロードできません。

  • データ・ソースのファイル拡張子が正しい。

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

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

    スペルに間違いがないか確認します。

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

    他のユーザーがデータ・ソースを移動または削除していないか確認します。

  • SQLデータ・ソースを使用している場合:

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

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

エラー・ログの確認

データ・ロードや次元構築が失敗した場合は、エラー・ログを貴重なデバッグ・ツールとして利用できます。次元構築およびデータ・ロードのエラー・ログとその表示を参照してください。

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

エラー・ログがあっても空の場合、Essbaseは、ロード中にエラーがあったと見なしません。次の条件の有無を確認します:

Essbaseサーバーのクラッシュからのリカバリ

データのロード中にサーバーがクラッシュした場合、Essbaseからユーザーにタイムアウト・エラーが送信されます。ユーザーが実行する必要があるリカバリ手順は、実行しているロードのタイプと、「分離レベル」データベースのトランザクション設定によって異なります(分離レベルの理解を参照):

  • データ・ソースの値を上書きする場合、サーバーが再度実行されているときにデータ・ソースを再ロードします。

  • データ・ソース内の既存の値に対して加算または減算を行う場合、「分離レベル」は次のように設定します:

    • コミット。サーバーが再度実行されているときにデータ・ソースを再ロードします。

    • アンコミット。クラッシュ前にEssbaseによってロードされたデータの量を判定します:

      1. データ・ソース内の値をデータベース内の値と比較します。

      2. 加算または減算の対象である値が変更されていない場合は、データ・ソースを再ロードします。

      3. 加算または減算の対象である値が変更されている場合は、ロード済の値を消去し、以前のデータ・ソースを再ロードします。たとえば、ロード時に毎週の売上高を加算することによって毎月の売上高を導き出している場合、データベースの売上高を消去し、今週までの各週の売上高を再ロードします。

正しくないデータがロードされた場合

データ・ソースはエラーなしでロードされたが、データベース内のデータが正しくない場合は、次の条件の有無を確認します:

  • 正しいデータ・ソースをロードした。

    正しいデータ・ソースをロードした場合、そのデータ・ソースを再度確認し、正しい値が含まれているかどうかを確認します。

  • データ・ソース内に空白フィールドがある。

    値が入っていないデータ・フィールドには、#MIまたは#MISSINGを挿入する必要があります。そうしないと、データ・ソースが正しくロードされないことがあります。ルール・ファイルを使用して空白フィールドを#MIまたは#MISSINGで置き換える方法については、空のフィールドへのテキストの配置を参照してください。

  • データ・ソースが正しくフォーマットされている。

    • すべての範囲が適切に設定されている。

    • データが適切である。たとえば、データ・ソースの処理時に、Essbaseでメンバー名とメンバーが属する次元が認識されます。データ・ソース・レコードに、ヘッダー・レコード内にメンバー名が指定されている次元メンバーが誤って含まれている場合、その次元のヘッダー・レコードのメンバーが新規メンバー名で置き換えられます。次の例のデータ・ソースでは、Essbaseで、Floridaは市場次元のメンバーとして認識されます。最後の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文字以下である。

注:

データをエクスポートしたり、そのデータに対してレポートを実行したり、スプレッドシートを使用したりすることで、データを確認できます。レポートをエクスポートまたは実行する方法については、レポート・スクリプトの作成およびESSCMDの使用。を参照してください。スプレッドシートを使用している場合は、Oracle Hyperion Smart View for Office User's Guideを参照してください。

ファイル終端マーカーの除外条件の作成

SQLデータ・ソースには、データ・ロードや次元構築の失敗につながる、特殊文字で構成されたファイル終端マーカーが含まれていることがあります。この問題を解決するには、問題のあるレコードを除外する除外条件を定義します。

  1. SQLデータ・ソース内のファイル終端マーカーを検索します。

  2. Essbaseの検索コマンドを使用して、ファイル終端マーカーの検索方法を決定します。

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

    Oracle Essbase Administration Services Online Helpの、トークンの指定によるフィールドの無視に関する項を参照してください。

  3. ファイル終端マーカーを除外する除外条件を定義します。

    Oracle Essbase Administration Services Online Helpの「レコードの除外」を参照してください。

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では、ユーザーによって指定された行数がスキップされます。行をスキップするように設定していない場合、最初のレコードから処理されます。

  6. Essbaseでは、ルール・ファイルに定義された条件の順序で選択または除外条件が実行されます。指定された条件に基づいて、データ・ソースの個々のレコードがロードまたは除外されます。

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

次の項では、Essbaseによるデータ・ロード時の無効なフィールドの処理方法について説明します。

次元フィールドまたはメンバー・フィールドの欠落

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

たとえば次のファイルをSample.Basicデータベースにロードする場合、Essbaseでは、製品次元のRoot BeerおよびDiet Colaを持つレコードを含むすべてのレコードにおいて、Ohioメンバー・フィールドが市場次元にマッピングされます。

      Jan  Sales  Actual  Ohio
                    Cola          25
                    "Root Beer"   50
                    "Diet Cola"   19
   

欠落したメンバー・フィールドの値が以前のレコードに含まれない場合、Essbaseではデータ・ロードが停止します。たとえば次のファイルをSample.Basicデータベースにロードしようとした場合、市場次元(前の例のOhio)が指定されていないため、データ・ロードは停止します。

      Jan  Sales  Actual
            Cola          25
           "Root Beer"    50
           "Diet Cola"    19
   

ロードを再開する方法については、次元構築およびデータ・ロードのエラー・ログのロードを参照してください。

不明なメンバー・フィールド

データ・ロードの実行中にEssbaseで不明なメンバー名が検出された場合、Essbaseによってレコード全体が除外されます。欠落したメンバー・フィールドのメンバー名が含まれた以前のレコードがある場合、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
   

注:

次元構築を実行している場合、データベースに新規メンバーを追加できます。データ・ロードまたは次元構築の実行を参照してください。

ロードを再開する方法については、次元構築およびデータ・ロードのエラー・ログのロードを参照してください。

無効なデータ・フィールド

データ・ロードの実行中にEssbaseで無効なデータ・フィールドが検出されると、データ・ロードが停止します。無効なフィールドより前の読込み済のフィールドは、すべてデータベースにロードされます。この場合、部分的なデータ・ロードになります。たとえば、次のファイルでは、Essbaseで15-データ値が検出されると、データ・ロードが停止します。JanとFebのSalesレコードはロードされますが、MarとAprのSalesレコードはロードされません。

      East   Cola   Actual
   

      Sales         Jan    $10
   

                    Feb    $21
   

                    Mar    $15-
   

                    Apr    $16
   

ロードを続行する方法については、次元構築およびデータ・ロードのエラー・ログのロードを参照してください。