Oracle BI Cloud Service Data Modelerでのモデリング
概要
目的
このチュートリアルでは、Oracle Business Intelligence (BI) Cloud Service Data Modelerを使用してSampleAppモデルを作成します。
所要時間
約30分
はじめに
オラクルは、サービスとしてのソフトウェア(SaaS)、サービスとしてのプラットフォーム(PaaS)、およびサービスとしてのインフラストラクチャ(IaaS)などのエンタープライズ級クラウド・ソリューションの幅広いセレクションを用意しています。PaaSの一要素であるOracle BI Cloud Serviceは、Oracle Cloudストアと統合されている、拡張性の高いマルチテナントOracle BI環境を提供します。Oracle BI Cloud Serviceの機能には、分析およびダッシュボードを作成するためのプレゼンテーション・サービス、Oracle Database Cloud Service統合、セルフサービスWebクライアントのデータ・ローダーおよびデータ・モデラー、簡潔な管理、統合されたアイデンティティ管理などがあります。
一般的なOracle BI Cloud Serviceワークフローは次の図に示すような3つの手順で構成されます。1番目の手順では、Oracle BI Cloud Serviceで使用できるデータベース・スキーマに、データ・ローダーを使用してデータ・ファイルをロードします。2番目の手順では、データ・モデラーを使用して、ビジネス・データ・モデルを構築することでアップロードされたデータを編成および保護してから、Oracle BI Cloud Serviceをサブジェクト領域としてモデルを公開します。3番目の手順では、公開されたモデルに基づくサブジェクト領域を使用して、プレゼンテーション・サービスで分析およびダッシュボードを作成します。
このチュートリアルでは、データ・モデラーを使用して、分析およびダッシュボードの作成に用いるSampleAppモデルを構築して公開します。
前提条件
このチュートリアルを始める前に次の用意をする必要があります。
- Oracle BI Cloud Serviceへのアクセス権。
- データ・モデラーにアクセスできるBIDataModelAuthorアプリケーション・ロールが割り当てられたユーザー・アカウントを保持していること。
- データ・ローダーによるデータ・ロード・チュートリアルの手順を実行して、Sample App用の非正規化されたデータが含まれるデータ・ソース・ファイルをロード済であること。
データ・モデラーの起動
Oracle Cloud BI Serviceの「Home」ページからデータ・モデラーを起動します。
-
ブラウザで、Oracle CloudページへのURLを入力し、ユーザーの資格証明でOracle Cloudにサインインします。
-
「Home」ページで「Model」をクリックしてデータ・モデラーを起動します。
データ・モデラーが別のブラウザ・ウィンドウまたはタブに表示されます。
データ・ソースの探索
データ・モデラーを使用すると、様々なスキーマ型からデータを取得して、スター・モデルやスノーフレーク・モデルなどの様々な方法でデータをモデリングできます。ここでは、データ・ローダーによるデータ・ロード・チュートリアルの手順を実行して以前に作成したSAMPLE_APP_DENORM表(SampleAppモデルを構築するためのデータ・ソース)を探索します。
-
「Database」アコーディオンで「SAMPLE_APP_DENORM」をダブルクリックします。
-
「Data」タブをクリックします。
モデルの構築
ここでは、1つのファクト表、複数のディメンション表、および時間ディメンションを含むモデルを作成します。
データ・モデルのロックと名前の変更
-
データ・モデラーで「Lock to Edit」ボタンをクリックします。
-
「OK」をクリックします。
-
「Model Actions」アイコンをクリックし、「Rename Model」を選択します。
-
「SampleApp」と入力し、「OK」をクリックします。
データ・モデルの名前が変更されます。
ウィザードを使用したファクト表およびディメンション表の構築
-
「Database」アコーディオンで「SAMPLE_APP_DENORM」表を選択し、「Table Actions」アイコンをクリックして、「Add To Model」→「as Fact Table and Dimension Tables」を選択します。
Add SAMPLE_APP_DENORM To Modelウィザードが表示されます。
-
「SAMPLE_APP_DENORM」表から次の列を選択し、「NEW_DIMENSION」の下にドラッグして、新しいディメンション表を作成します。
- ADDRESS1
- ADDRESS2
- ADDR_KEY
- AREA
- CITY
- COUNTRY_CODE
- COUNTRY_NAME
- POSTAL_CODE
- REGION
- STATE_PROV
-
新しいディメンション表の名前をクリックして、「Geography」に変更します。
-
「Add」をクリックして新しいディメンション表を追加します。
「Georgraphy」ディメンション表の下に新しいディメンション表が追加されます。 -
「SAMPLE_APP_DENORM」表から次の列を選択し、「NEW_DIMENSION」の下にドラッグして、新しいディメンション表を作成します。
- CHANNEL_NAME
- ORDER_KEY
- ORDER_STATUS
- TIME_BILL_DT
- TIME_PAID_DT
-
新しいディメンション表の名前をクリックして、「Orders」に変更します。
-
「Add」をクリックして新しいディメンション表を追加します。
「Orders」ディメンション表の下に新しいディメンション表が追加されます。 -
「SAMPLE_APP_DENORM」表から次の列を選択し、「NEW_DIMENSION」の下にドラッグして、新しいディメンション表を作成します。
- CUST_TYPE
- CUST_SEGMENT
- CUST_BIRTH_DT
- CUST_CRDT_DATE
- CUST_GENDER
- CUST_MARITAL_STATUS
- CUST_NAME
- CUST_NUMBER
-
新しいディメンション表の名前をクリックして、「Customers」に変更します。
-
次の手順を実行してファクト表を作成します。
- 「SAMPLE_APP_DENORM」表から次の列を選択し、「NEW_FACT」の下にドラッグします。
- DISCNT_VALUE
- REVENUE
- UNITS
- GEOGRAPHYディメンション表で「ADDR_KEY」列を主キーとして選択します。これにより、「ADDR_KEY」列がファクト表に追加され、GEOGRAPHYディメンション表とファクト表間の結合が作成されます。
- ORDERSディメンション表で「ORDER_KEY」列を主キーとして選択します。これにより、「ORDER_KEY」列がファクト表に追加され、ORDERSディメンション表とファクト表間の結合が作成されます。
- CUSTOMERSディメンション表で「CUST_NUMBER」列を主キーとして選択します。これにより、「CUST_NUMBER」列がファクト表に追加され、CUSTOMERSディメンション表とファクト表間の結合が作成されます。
- 「SAMPLE_APP_DENORM」表から次の列を選択し、「NEW_FACT」の下にドラッグします。
-
新しいファクト表の名前をクリックして、「RevenueMetrics」に変更します。
-
「Next」をクリックします。
ウィザードに4つのデータベース・ビュー、1つのファクト表、3つのディメンション表および3つの結合が表示されます。 -
リストされたオブジェクトを確認し、「Create」をクリックします。
4つのデータベース・ビュー、1つのファクト表、3つのディメンション表および3つの結合がモデル内に作成されます。 -
「Done」をクリックします。
ファクト表の名前、ディメンション表の名前および結合とともに、SampleAppデータ・モデルが表示されます。作成されたデータベース・ビューは「Database」アコーディオンに表示されます。
ソース・ビューに基づいたProductsディメンション表の構築
ソース・ビューは、データベース内のデータに対するストアドSQL問合せの結果セットです。ソース・ビューは仮想表と考えることができ、モデル・オブジェクトの基礎として使用できます。ここでは、SQL問合せを記述し、ソース・ビューに基づいたディメンション表を手動で作成します。
-
「Database」アコーディオンで「Database Actions」アイコンをクリックし、「Create View」を選択します。
「NEW_VIEW」ページが表示されます。
-
「Add Columns」をクリックし、「Database Table / View」リストから「SAMPLE_APP_DENORM」を選択します。
-
「Columns」リストで、次の列を選択します。
- PROD_BRAND
- PROD_ITEM_DESC
- PROD_ITEM_KEY
- PROD_LOB
- PROD_TYPE
- PRODUCT
-
「Add」をクリックします。
選択した列が新しいビューに表示されます。 -
「Properties」の「Name」テキスト・ボックスに「V_Products」と入力し、「Save」をクリックします。
注意: 他のディメンション表のソースとして自動的に作成されるデータベース・ビューの名前にあわせて、「V_」接頭辞を使用します。 -
オプション: 「SQL Query」タブを選択して、サポートするSQL問合せのコードを表示します。
-
オプション: 「Data」タブを選択してデータを表示します。
-
「Add To Model」をクリックし、「as Dimension Table」を選択します。
-
オプション: 次の手順を実行し、他のディメンション表の名前で使用されているネーミング規則にあわせて、V_Productsディメンション表の名前を「Products」に変更します。
- 「Dimension Tables」セクションで「V_Products」を選択します。
- 「Dimension Table Actions」アイコンをクリックし、「Inspect」を選択します。
- 「Properties」の「Name」テキスト・ボックスに「Products」と入力し、「Done」をクリックします。
Productsディメンション表とファクト表間の結合の追加
Productsディメンション表を手動で作成したので、ファクト表にはマッチング列がありません。したがって、ファクト表の基礎となるソース・ビューにマッチング列を追加し、ファクト表をデータベースと同期してから、結合を作成する必要があります。ここでは、Productsディメンション表とファクト表間の結合を定義します。
-
「Database」アコーディオンで「V_RevenueMetrics」ビュー選択し、「View Actions」アイコンをクリックして、「Inspect」選択します。
-
「SQL Query」タブをクリックします。
-
SELECT句にSAMPLE_APP_DENORM.PROD_ITEM_KEY列を追加して問合せを変更します。
-
「Save」リストから「Save and Close」を選択します。
-
「RevenueMetrics」ファクト表を選択し、「Fact Table Actions」アイコンをクリックして、「Synchronize with Database」を選択します。
-
「Add columns to table RevenueMetrics」リンクをクリックします。
-
「Close message panel」アイコンをクリックしてメッセージを閉じます。
-
「Fact Tables」の下で「RevenueMetrics」ファクト表をクリックし、その構造を確認します。
-
ファクト表の名前を読みやすくするには、「Name」テキスト・ボックスで「Revenue」と「Metrics」の間に空白を挿入し、名前を「Revenue Metrics」に変更して、「Done」をクリックします。
-
「Dimension Tables」領域から「Products」ディメンション表をドラッグし、「Revenue Mertics」ファクト表にドラッグします。
-
新しい結合行の「Fact Column」リストと「Dimension Column」リストで、「PROD_ITEM_KEY」を選択して結合列を定義し、「Save changes」アイコンをクリックします。
データ・モデルへの時間ディメンションの追加
-
データ・モデラーの「Dimension Tables」で「Add」をクリックし、「Create Time Dimension」を選択します。
-
時間ディメンションのデフォルト・データに必要な調整を加え(たとえば、「Quarter」を選択)、「Next」をクリックします。
Create Time Dimensionウィザードに時間ディメンションの情報が表示されます。 -
プレビューして、時間ディメンションの表示情報を確認します。「Create」をクリックして変更をコミットするか、「<」をクリックして変更を加えます。ウィザードの手順がすべて完了すると、データベースのデータを使用してTime表が作成され、さらに対応するディメンション表もデータ・モデルに作成されます。
「Done」をクリックします。
-
Timeディメンション表とファクト表間の結合を作成する前に、ファクト表のソースであるV_RevenueMetricsビューに列を追加して、ファクト表をデータベースと同期する必要があります。「Productsディメンション表とファクト表間の結合の追加」の手順1から8の説明に従って、SAMPLE_APP_DENORM.TIME_BILL_DT列をV_RevenueMetricsビューに追加します。
-
「Dimension Tables」領域から「Time」ディメンション表をドラッグし、ファクト表にドロップします。
-
新しい結合行の「Fact Column」リストで「TIME_BILL_DT」を選択し、「Dimension Column」で「Date」を選択して結合列を定義し、「Save Changes」アイコンをクリックします。
階層の作成
ディメンション表を作成した後、それらの表に階層およびレベルを追加できます。階層は、1対多関係で相互に関連する、ディメンションのレベルの体系です。ここでは、Productsディメンション表とOrdersディメンション表の階層を作成し、Timeディメンション表の階層名を変更します。
-
「Data Model」アコーディオンを展開して、階層を追加するディメンション表をダブルクリックします。たとえば、「Products」です。
-
「Products」ディメンション表で「Hierarchies」タブをクリックします。
-
「Detail」レベルをクリックしてダイアログ・ボックスを表示し、レベル名、レベルのキー列および表示列を指定できます。
-
「Add Level」をクリックし、そのレベルに対応する列を選択します。たとえば、「PRODUCT」を選択します。
-
「PRODUCT」レベルをクリックしてダイアログ・ボックスを表示し、レベル名、レベルのキー列および表示列を指定できます。レベル名を「Product」に変更し、「OK」をクリックします。
-
「Total」を右クリックし、「Add Level」、「PROD_TYPE」の順に選択します。
-
「PROD_TYPE」レベル名を「Type」に変更します。
-
手順6から7を繰り返し、次の値を使用してさらに2つのレベルを階層に追加します。
レベル名 キー列 表示列 LOB PROD_LOB PROD_LOB Brand PROD_BRAND PROD_BRAND
-
「Hierarchy 1」ツールバーで「Hierarchy Actions」アイコンをクリックし、「Rename」を選択します。
「Rename Hierarchy」ダイアログ・ボックスに「Products」と入力し、「OK」をクリックします。
-
「Done」をクリックして「Data Model」ページに戻ります。前の手順に従い、次のデータを使用してOrdersディメンション表の階層を作成します。
階層名 親レベルの名前 レベル名 キー列 表示列 Channels Total Channel CHANNEL_NAME CHANNEL_NAME
-
時間ディメンションのTime Hierarchyの名前を「Time」に変更し、この階層に「Total」、「Year」、「Quarter」、「Month」および「Day」の各レベルが含まれていることを確認します。
ディメンション表の列の名前変更
ディメンション表の列名は、非正規化されたデータベース表の列名から導出されています。分析を作成するビジネス・アナリストがサブジェクト領域のオブジェクトを理解しやすいように、わかりやすい列名を使用することをお薦めします。ここでは、ディメンション表の列名を確認して読みやすい名前に変更します。
-
「Data Model」アコーディオンを展開して、列の名前を変更する表をダブルクリックします。たとえば、「Customers」です。
-
「Name」列で「CUST_BIRTH_DT」をクリックします。
-
「Name」テキスト・ボックスに「Cust Birth Date」と入力し、「Done」をクリックします。
-
手順1から3を繰り返し、Customersディメンション表の残りの列の名前を、次の表で指定されているように変更します。
現在の列名 新しい列名 CUST_CRDT_RATE Cust Credit Rate CUST_GENDER Cust Gender CUST_MARITAL_STATUS Cust Marital Status CUST_NAME Cust Name CUST_NUMBER Cust Number CUST_SEGMENT Cust Segment CUST_TYPE Cust Type
-
手順1から3を繰り返し、Geographyディメンション表の列の名前を、次の表で指定されているように変更します。
現在の列名 新しい列名 ADDRESS1 Address 1 ADDRESS2 Address 2 ADDR_KEY Address Key AREA Area CITY City COUNTRY_CODE Country Code COUNTRY_NAME Country Name POSTAL_CODE Postal Code REGION Region STATE_PROV State Province
-
手順1から3を繰り返し、Ordersディメンション表の列の名前を、次の表で指定されているように変更します。
現在の列名 新しい列名 CHANNEL_NAME Channel ORDER_KEY Order Number ORDER_STATUS Order Status TIME_BILL_DT Bill Date TIME_PAID_DT Paid Date
-
手順1から3を繰り返し、Productsディメンション表の列の名前を、次の表で指定されているように変更します。
現在の列名 新しい列名 PROD_BRAND Brand PROD_ITEM_DSC Item Description PROD_LOB LOB PRODUCT Product PROD_ITEM_KEY Product Item Key PROD_TYPE Product Type
-
「Done」をクリックします。
ファクト表でのメジャーの集計の指定
メジャーはファクト表の列であり、なんらかの方法で集計されるデータ値を定義します。ここでは、Revenue Metricsファクト表の列の集計を定義します。
-
「Data Model」アコーディオンを展開して、「Revenue Metrics」ファクト表をクリックします。
-
「Edit All」をクリックし、列のプロパティの編集を有効にします。
-
次の表で指定されているようにファクト表の列のプロパティを編集し、「Done」をクリックします。
現在の列名 新しい列名 集計 使用可能 ADDR_KEY Address Key なし 不可 CUST_NUMBER # of Customers 重複を除いた件数 可 DISCNT_VALUE Discount Value 合計 可 ORDER_KEY # of Orders 件数 可 PROD_ITEM_KEY # of Items 重複を除いた件数 可 REVENUE Revenue 合計 可 TIME_BILL_DT Bill Date なし 不可 UNITS Billed Units 合計 可
注意: デフォルトで、モデルの公開後、ファクト表のすべての列をサブジェクト領域で使用できます。分析を作成する際に列を使用できないようにするには、「Available」チェック・ボックスの選択を解除します。 -
「Revenue Metrics」をクリックしてメジャーを確認します。
計算済メジャーの作成
必要なメジャーの一部がファクト表に含まれていない場合は、他のメジャーから計算するメジャーを作成できます。ここでは、式Revenue/# of Ordersを使用して、Average Order Sizeという計算済メジャーを作成します。
-
「Columns」領域で、「Add Columns」をクリックします。
- 次のアクションを実行します。
- 「Name」フィールドに「Average Order Size」と入力します
- 「Expression」ボックスに「"Revenue Metrics"."Revenue"/"Revenue Metrics"."# of Orders"」と入力します
- 「Validate」をクリックします
- 「OK」をクリックして「Information」ダイアログ・ボックスを閉じます。
- 「Aggregation」の設定を「Before calculating」のままにします(これは、集計済のメジャーが式に含まれていることを意味します)。
- 「Done」をクリックします。
-
「Done」を再度クリックします。
モデルの公開
モデルの構築後、そのモデルを公開して、分析およびダッシュボードを作成するためのサブジェクト領域として使用できるようにします。
-
「Publish Model」をクリックし、「Publish and Unlock」を選択します。
-
モデルを公開した後、サブジェクト領域とそのオブジェクトを確認できます。Oracle BI Cloud Serviceの「Home」ページで、「New」→「Analysis」を選択します。
-
オプション: SampleAppフォルダを開いて、各列を表示します。たとえば、Revenue Metricsフォルダを開いて、そのメジャーを表示します。
まとめ
このチュートリアルでは、次の操作方法を学びました。
- データ・モデラーの起動
- データ・モデラーで使用可能なデータ・ソースの探索
- SampleAppモデルの構築と公開
- モデルから構築されたサブジェクト領域の可用性の確認
リソース
このOracle by Exampleチュートリアルを移動する際の留意点は次のとおりです。
- トピック一覧:
- トピックをクリックするとその項に移動します。
- すべてのトピックを開く:
- このボタンをクリックすると各項の詳細が表示または非表示になります。デフォルトではすべてのトピックが縮小されます。
- すべてのイメージを非表示:
- このボタンをクリックするとスクリーンショットが表示または非表示になります。デフォルトではすべてのイメージが表示されます。
- 印刷:
- このボタンをクリックするとコンテンツが印刷されます。現在、表示または非表示になっているコンテンツが印刷されます。
このチュートリアルで特定の項に移動する場合は、リストからトピックを選択します。