ルール・ファイルを使用したディメンションの構築およびデータのロード

ルールを使用して、テキスト・ファイルまたはその他のフラット・ファイルからディメンションを構築してデータをロードできます。

開始する前に、次のリソースが必要です。

  • Essbaseインスタンスにアクセスします。

  • データのソースとしてフラット・ファイルを使用していない場合、アプリケーション・レベルでEssbaseで設定された接続およびデータソースが必要です。

  • ディメンション・メタデータ・ファイル(サンプルの演習ファイル: dim-market.txt)がコンピュータにダウンロードされている

  • データ・ファイル(サンプルの演習ファイル: data-basic.txt)がコンピュータにダウンロードされている

前述のリソースとルールを使用して、ディメンション構築タスクおよびデータ・ロード・タスクを実行できます。

ルール・ファイルの使用によるディメンションの構築

Essbaseアウトライン・エディタで空のディメンションを手動で構築するかわりに、ルールを使用してディメンションを編集し、Essbaseアウトラインにマップできます。この項では、ルールを使用してフラット・ファイルからディメンションを構築する方法を取り上げて示します。

ルールを使用して構築する場合は、ディメンションおよびメンバー・メタデータの階層構造を定義します。1つのルール・ファイルを使用して1つ以上のディメンションを作成したり、ディメンションごとに1つのルール・ファイルを使用することができます。

ディメンションを構築してディメンションを追加または変更することはできますが、それを使用して既存のディメンションを削除することはできません。

ここでは、ルールを使用してフラット・ファイルからディメンションを構築する例を示します。SQLまたはストリーミングを使用したデータのロード・プロセスについては、他のトピックで説明しています。

  1. ダウンロードしたディメンション・メタデータ・ファイルdim-market.txtを書式付きテキスト・エディタで開きます。ファイルにヘッダー行はなく、ファイル区切り文字はカンマになっています。
  2. Essbase Webインタフェースにサインインします。
  3. ホーム・ページで、Sampleアプリケーションを展開し、Basicキューブを選択します。
  4. これからルール・ファイルを作成します。
    1. キューブの右にある「アクション」メニューから、インスペクタを起動します。
    2. 「スクリプト」「ルール」の順にクリックします。ルール・エディタが表示され、現在定義されているルールが示されます。
    3. 「作成」をクリックし、「ディメンション構築(インデックス・ベース)」を選択してディメンション構築ルールを定義します。インデックス・ベースのディメンション構築ルールを使用すると、フィールドの相互依存関係がなくなり、フィールドを任意の順序で表示できるようになります。
    4. 「新規ルール」ダイアログ・ボックスで、ルール・ファイルの名前としてDim_market1と入力します。
    5. 「データのプレビュー」で、「ファイル」から入力フラット・ファイル・オプションとして使用するファイルを選択します。
    6. 「参照」アイコンをクリックして、ダウンロードしたファイルdim-market.txtを特定し、「開く」をクリックして選択します。
    7. 前に見たように、フラット・ファイルの最初の行にはヘッダー値が含まれていません。「ヘッダー行」チェック・ボックスを選択解除します(選択されている場合)。
    8. 「デリミタ」値をファイル形式に基づいて「カンマ」に指定します。
    9. 「続行」をクリックします。
      ルール・エディタでディメンション構造をプレビューできます。入力フラット・ファイルに基づいて列も表示されています。
    ルール・エディタの右上のツールバーにはルールのグローバル・オプションが表示されます。ここでプロパティやデータ・ソースを変更して結果を表示できます。ルール・エディタの左のツールバーには、ルールのフィールド・オプションが表示されます。
  5. ルール・エディタ・ページで、ルールを設定および編集できます。
    1. 新規ルールのプレビュー・ページで、最初のフィールド(列)の「ディメンション」をクリックし、ディメンション名として「Market」を選択します。Marketディメンションがすべてのフィールドに割り当てられます。
    2. 「Market」の最初のフィールドで、「タイプ」をクリックし、ディメンション・タイプ「親」を選択します。
      このルールのソース・ファイルは親子形式になっています。世代ベースのソース・ファイルの場合、最初のフィールドを「世代」に設定できます。その場合、「世代番号」はデフォルトでは2に設定され、世代1はディメンションそのものになります。
    3. その他のフィールドを設定します。
      フィールド2のタイプを「子」に設定します。
      フィールド3のタイプを「プロパティ」に、3行目の「親/子」ボックスを「子」に設定します。
      フィールド4および5について、タイプを「UDA」に、3行目の「親/子」ボックスを「子」に設定します。
      フィールド6から9について、タイプを「別名」に、3行目の「別名」ボックスをそれぞれ「ChineseNames」「JapaneseNames」「RussianNames」および「GermanNames」に、4行目のボックスを「子」に設定します。
      フィールド10のタイプを「属性メンバー」に、3行目のボックスを「Population」に、4行目のボックスを「子」に設定します。
      「ディメンション」フィールドは、ほとんどの場合、「世代」、「親」または「子」に設定されます。必要なディメンション名がメニューにない場合、(グローバル・ツールバーの)「ディメンション」をクリックし、ディメンション名を追加して、「追加」および「OK」をクリックします。
    4. フィールドのフィールド・プロパティをチェックしましょう。最後のフィールド列「Population」を選択します。フィールド・オプション・ツールバーで、「プロパティ」タブを開き、「大文字/小文字」オプションが「操作なし」に設定されていることを確認します。これは、ソース・テキスト・ファイルとは違い、大文字と小文字の扱いが区別されないことを意味します。
    5. データ・ソース・ファイルを変更する場合は、グローバル・ツールバーで「ソース」タブをクリックします。「ファイル・プロパティ」タブで、「デリミタ」が「カンマ」に設定されていることを確認します。
    6. ルールの定義が完了したら、グローバル・ツールバーで「確認」をクリックしてルール構文を検証します。
    7. 「保存して閉じる」をクリックします。
    8. 「リフレッシュ」をクリックします。作成したルールが「スクリプト」タブの「ルール」ペインにリストされていることを確認します。ルールは、ルール名をクリックして「続行」をクリックすることで編集できます。
      オプションで、リストされたルールの「アクション」メニューから、構築の名前変更、コピーまたはエクスポート(トラブルシューティング目的で使用されるjsonファイルへ)を行うこともできます。「閉じる」をクリックしてホーム・ページに戻ります。
  6. 次に、ルールを使用してディメンションを構築するジョブを作成および実行します。
    1. ホーム・ページで、「ジョブ」「新規ジョブ」の順に選択します。
    2. 「ディメンションの構築」を選択します。
    3. 「ディメンションの構築」ダイアログ・ボックスの「アプリケーション」リストから、「Sample」アプリケーションを選択します。
    4. 「データベース」リストで、「Basic」キューブを選択します。ロードには時間がかかる場合があります。
    5. 「スクリプト」リストで、作成したディメンション構築ルールDim_market1.rulを選択します。
    6. 「ロード・タイプ」に、「ファイル」を選択します
    7. 「データ・ファイル」リストで、データ・ディメンションのデータ・ファイルとしてDim_Marketを選択します。このファイルは「Sample」、「Basic」フォルダにあります。
    8. 「再構築オプション」リストから、保持するデータに対して「入力データの保持」オプションを選択します。

      「Sample」、「Basic」キューブに接続している他のユーザーの接続を切断して、ディメンションをすぐに構築できるようにするには、「強制的にディメンションを構築」を選択できます。

      リーフ・レベル・データの場合は、レベル0の値のみが保持されます。計算に必要なすべてのデータがレベル0メンバーに存在する場合は、このオプションを使用します。入力データの場合は、ロードするデータが含まれるブロックのみが保持されます。いずれのオプションも、集約ストレージ・データベースには適用されません。

    9. 「OK」をクリックします。ディメンション構築ジョブが実行されます。
    10. ジョブ・ページで、「リフレッシュ」をクリックしてジョブ・ステータスをモニターします。
    11. ジョブが完了したら、実行されたジョブについて「アクション」メニューをクリックし、「ジョブの詳細」を選択して構築ジョブの結果を確認します。
    12. アプリケーション・ホーム・ページの、SampleアプリケーションのBasicキューブの右側で「アクション」「アウトライン」の順に開いてディメンション階層を検証します。「アクション」、「データベース」、「検査」で、作成された世代名もディメンション・タブの下に表示されます。完了したら、ビューを終了します。
    これで、ルールの使用によるディメンションの構築が完了しました。

ルール・ファイルの使用によるデータのロード

ルールを使用すると、データ値を抽出および変換し、Essbaseキューブにロードできます。ソース・データ値には次のものが含まれます。
  • データ値

  • メンバー名、別名および式

  • 世代名とレベル名

  • データ・ストレージ・プロパティ

  • 属性およびユーザー定義属性

Essbaseキューブを構築すると、キューブ・ディレクトリにデータ・ファイルおよびデータ・ロード・ルール・ファイルが作成されます。サポートされているEssbaseオンプレミス・バージョンからデータおよびルールを使用することもできます。

ピボット・データと行セット・フラット・ファイル・データの両方の形式がサポートされています。

データをロードする際、行全体のデータ列では、SUM、MIN、MAX、AVGおよびCOUNT演算子がサポートされます。これにより、上位レベルのメンバーを使用してEssbaseキューブが作成される、ビッグデータのユースケースがサポートされます。Essbaseからドリル・スルーして、より詳細なレベルでデータを表示できます。

ここでは、ルールを使用してフラット・ファイルからデータをロードする例を示します。SQLまたはストリーミングを使用したデータのロード・プロセスについては、他のトピックで説明しています。

  1. ダウンロードしたデータ・ファイルdata-basic.txtを書式付きテキスト・エディタで開きます。ヘッダー行はなく、ファイル区切り文字はカンマになっています。
  2. Essbase Webインタフェースにサインインします。
  3. ホーム・ページで、Sampleアプリケーションを展開し、Basicキューブを選択します。
  4. これからロード・ルールを作成します。
    1. Basicキューブの右にある「アクション」メニューから、インスペクタを起動します。
    2. 「スクリプト」タブ、それから「ルール」を選択します。ルール・エディタが表示され、現在定義されているルールが示されます。
    3. 「作成」をクリックし、「データ・ロード」を選択してデータ・ロード・ルールを定義します。
    4. 「新規ルール」ダイアログ・ボックスで、ルールの名前としてData_basic1と入力します。
    5. データ・ディメンションとして「メジャー」を入力します。
    6. 「データのプレビュー」で、「ファイル」から入力フラット・ファイルとして使用するファイルを選択します。
    7. 「参照」アイコンをクリックして、ダウンロードしたファイルdata-basic.txtを特定し、「開く」をクリックして選択します。
    8. 前に見たように、フラット・ファイルの最初の行にはヘッダー値が含まれていません。「ヘッダー行」チェック・ボックスを選択解除します(選択されている場合)。ヘッダー行がある場合は、列は自動的にマップされます。
    9. 「デリミタ」値として、ファイル形式に基づいて「カンマ」を選択します。
    10. 「続行」をクリックします。
      ルール・エディタで、入力フラット・ファイルに基づいてデータのプレビューを表示できます。
    ルール・エディタの右上にあるグローバル・オプション・ツールバーでは、ファイルのプロパティやデータ・ソースを変更して結果をルール・エディタで表示できます。ルール・エディタの左側にあるフィールド・オプション・ツールバーでは、ルールでフィールドをマップできます。
    入力ファイルにヘッダーがなかったため、各列を適切なディメンションおよびメンバーにマッピングする必要があります。
  5. ルール・エディタで、ルール・フィールドを設定できます。
    1. 「作成」ドロップダウン・メニューをクリックし、フィールド名の設定を開始します。
      フィールド(列) 1をProductに設定します。
      フィールド2をMarketに設定します。
      フィールド3をYearに設定します。
      フィールド4をScenarioに設定します。
      フィールド5をSalesに設定します。
      フィールド6をCOGSに設定します。
      フィールド7をMarketingに設定します。
      フィールド8をPayrollに設定します。
      フィールド9をMiscに設定します。
      フィールド10をOpening Inventoryに設定します。
      フィールド11をAdditionsに設定します。
      データをロードするためには、ロード・データ・ルールにすべてのディメンションが示されている必要があります。
    2. グローバルおよびフィールド・オプションでルールの定義が完了したら、グローバル・ツールバーで「確認」をクリックして構文を検証し、「閉じる」をクリックします。
    3. 構文が検証されたら、「保存して閉じる」をクリックします。
    4. 「リフレッシュ」をクリックします。作成したルールが「スクリプト」タブの「ルール」ペインにリストされていることを確認します。ルールは、ルール名をクリックして「続行」をクリックすることで編集できます。
    5. 「閉じる」をクリックしてアプリケーション・ホーム・ページに戻ります。
    次に、ルールを使用してデータをロードするジョブを作成します。
  6. ホーム・ページで、「ジョブ」「新規ジョブ」の順に選択します。
    1. 「データのロード」を選択します。
    2. 「データのロード」ダイアログ・ボックスで、「アプリケーション」メニューから「Sample」アプリケーションを選択します。
    3. 「データベース」リストで、「Basic」キューブを選択します。
    4. 「スクリプト」リストで、作成したデータ・ロード・ルールData_market1.rulを選択します。
    5. 「ロード・タイプ」に、「ファイル」を選択します
    6. 「データ・ファイル」リストからファイルData_Basic1を選択します。このファイルは「Sample」 > 「Basic」フォルダにあります。
    7. オプション: エラーが発生したときにロードを停止する場合、「エラーにより中止」チェック・ボックスを選択します。
    8. 「OK」をクリックします。データ・ロード・ジョブが実行されます。
    9. ジョブ・ページで、「リフレッシュ」をクリックしてジョブ・ステータスをモニターします。
  7. ジョブが完了したら、入力レコードが処理およびロードされたことを確認します。
    1. アプリケーション・ホーム・ページで、SampleアプリケーションのBasicキューブの右にある「アクション」をクリックします。
    2. 「ジョブの詳細」を選択して、データ・ロード・ジョブの詳細をチェックします。
    3. 完了したら、「閉じる」をクリックします。
    4. アプリケーション・ホーム・ページで再度、Sampleキューブの「アクション」インスペクタを開きます。
    5. 「統計」を選択して、Basicキューブの結果統計を表示します。
    これで、ルールの使用によるデータのロードが完了しました。