この章では、Oracle Communications Data Modelウェアハウスのデータのレポート、問合せおよびダッシュボードの作成について説明します。内容は次のとおりです。
Oracle Communications Data Modelウェアハウスのデータからレポートを作成する2つの主なアプローチがあります。
リレーショナル・レポート
リレーショナル・レポートでは、スターのディメンションとして機能する参照エンティティ(つまり、DWR_およびDWL_表)とともにスターの中心にファクト・エンティティを使用して、分析レイヤー・エンティティのレポートを作成します。通常、ファクト・エンティティには、導出および集計エンティティ(つまり、DWD_およびDWA_表)が含まれます。ただし、詳細なレポートを生成するため、参照表とともにベース・エンティティ(つまり、DWB_表)を使用する必要がある場合があります。
通常、参照表(つまり、DWR_表)は、ビジネス階層を含むディメンションを表し、各レベルの階層の表を含むスノーフレーク・エンティティの形式で存在します。これにより、異なる精度で構成される複数のサブジェクト・エリアおよびファクト・エンティティの参照エンティティの適切なセットを関連付けることができます。
たとえば、DWR_DAYおよびDWR_BSNS_MO、DWR_BSNS_QTR、DWR_BSNS_YR表を含む表のセットを使用して、DWD_VOI_CALL_DAYなどのDAYレベルのCDR Wirelessエンティティを問い合せることができます。一方で、DWA_VOI_CALL_MOなどのMONTHレベルのCDR Wirelessエンティティの問合せのため、DWR_BSNS_MO、DWR_BSNS_QTR、DWR_BSNS_YRなどの月レベル以上の高度なレベルのスノーフレークを使用する必要があります。
検索表(つまり、DWL_接頭辞を使用する表)は、値のフラット・リストを含む単一のレベルで構成される単純なディメンションを表します。通常、ほとんどのレポート・ツールは、表面的な最上位レベルをディメンションに追加します。これらは、DWL_で始まる個々の表またはまたは様々なコード・タイプを個別のディメンションに分割するDWL_CODE_MASTERのビュー(DWL_という名前)の可能性があります。
OLAPレポート
OLAPレポートでは、ディメンションおよびキューブ(ファクト)ビューに対してSQLを使用して、Oracle OLAPキューブにアクセスします。キューブおよびディメンションは、スター・スキーマ設計を使用して表されます。ディメンション・ビューは、キューブ(またはファクト)ビューの周囲に集団を形成します。ディメンションおよびキューブ・ビューは、_VIEWで終わる名前を使用したリレーショナル・ビューです。通常、レポートで使用されるディメンション・ビューの名前はdimension_hierarchy_VIEWで、キューブ・ビューの名前はcube_VIEWです。
DWR_表に格納されている対応するリレーショナル・ディメンション・エンティティとは異なり、OLAPディメンション・ビューは、レベル列(level_nameとして識別されます)に基づいて論理的にパーティション化されるすべてのレベルの階層を含む全体のディメンションに関連する情報を含みます。同様に、キューブ・ビューは、キューブ定義の一部である個々のディメンションのレベルの様々な組合せに関連するファクトも含みます。また、キューブ・ビューおよびディメンション・ビューの結合は、必要なディメンション・レベル・フィルタとともにディメンション・キーに基づいています。
OLAPビューはスター・スキーマとしてモデル化されますが、Oracle Business Intelligence Suite Enterprise Editionの特別なモデル化技術を必要とするOLAPレポート方法の特定の一意な機能があります。
|
関連項目: Oracle BI Enterprise EditionでのOracle OLAP 11gの使用に関するOracle By Exampleチュートリアル。チュートリアルにアクセスするには、「Oracle Technology Network」の指示に従ってブラウザでOracle Learning Libraryを開き、名前でチュートリアルを検索します。 |
残りのこの章では、Oracle Communications Data Modelレポートの作成方法について説明します。Oracle Communications Data Modelレポートの例は、次を参照してください。
『Oracle Communications Data Modelリファレンス』に記載されているOracle Communications Data Modelで提供されるサンプル・レポート。
サンプル・レポートとダッシュボードは、Oracle Communications Data Modelで提供されます。これらのサンプル・レポートは、OLAPやデータ・マイニング機能など、Oracle Communications Data Modelで提供される分析機能を示します。
|
参照: サンプル・レポートのインストールおよびBusiness Intelligence Suite Enterprise EditionインスタンスのOracle Communications Data ModelのRPDおよびwebcatのデプロイの詳細は、『Oracle Communications Data Modelインストレーション・ガイド』を参照してください。 |
サンプル・レポートは、あらゆる分析およびレポート機能を提供するエンタープライズ・ビジネス・インテリジェンス製品の包括的なスイートであるOracle Business Intelligence Suite Enterprise Editionを使用して開発されています。このため、レポートは、Oracle Business Intelligence Suite Enterprise Edition AnswersおよびDashboardプレゼンテーション・ツールを使用して有用なレポートを簡単に作成できることも示します。
Oracle Business Intelligence Suite Enterprise Edition AnswersおよびDashboardプレゼンテーション・ツールを使用して、事前定義済のサンプル・ダッシュボード・レポートをカスタマイズできます。
Oracle BI Answers。純粋なWebアーキテクチャでエンド・ユーザーに非定型機能を提供します。ユーザーは情報の論理ビューと対話するため、データ構造の複雑さが完全に隠されると同時にランナウェイ問合せが防がれます。ユーザーは、チャート、ピボット・テーブル、レポートおよび視覚に訴えるダッシュボードを簡単に作成できます。
Oracle BI Interactive Dashboards。ナレッジ・ワーカーに、情報への直感的で対話的なアクセスを提供します。エンド・ユーザーは、レポート、プロンプト、チャート、表、ピボット・テーブル、グラフィックスおよびチケットを操作できます。ダッシュボードで得られた結果は、ドリル操作、ナビゲート、変更、対話が可能です。
|
参照: サンプル・レポートの詳細は、『Oracle Communications Data Modelリファレンス』を参照してください。 |
ocdm_sysスキーマは、Oracle Communications Data Modelのリレーショナル表およびビューを定義します。任意のSQLレポート・ツールを使用して、これらの表およびビューに対する問合せおよびレポートを行うことができます。
Oracle Communications Data Modelでは、ocdm_sysスキーマに定義されているOLAPキューブを使用したオンライン分析処理(OLAP)レポートもサポートされます。SQLツールを使用してキューブに対して定義されているビューを問い合せるか、OLAPツールを使用してOLAPコンポーネントを直接問い合せることで、OLAPキューブの問合せおよびOLAPキューブに関するレポートの作成を行うことができます。
|
関連項目: 「Oracle Communications Data Modelのレポート・アプローチ」、「Oracle OLAPキューブ・ビュー」および『Oracle OLAPユーザーズ・ガイド』のディメンション・オブジェクトの問合せの説明。 |
例5-1 Oracle Communications Data Modelのリレーショナル問合せの作成
たとえば、2009年3月のサンフランシスコ地域の上位10位の顧客の合計通話時間(分)を知る必要があるとします。この質問に回答するには、次の表で説明する表を問い合せる必要があります。
| エンティティ名 | 表名 | 説明 |
|---|---|---|
| WIRELESS CALL EVENT | DWB_WRLS_CALL_EVT |
ワイヤレス・コールの発生数。 |
| CUSTOMER | DWR_CUST |
個々の顧客 |
| ADDRESS LOCATION | DWR_ADDR_LOC |
住所全体。表には、国、州、都市、住所などのレベルがあります。 |
| GEOGRAPHY CITY | DWR_GEO_CITY |
GEOGRAPHY階層のCITYレベル。 |
この問合せを実行するには、次のSQL文を実行します。
SELECT cust_key, tot_call_min FROM
(select round(sum(call.call_drtn)/60,2) tot_call_min , call.cust_key
from DWB_WRLS_CALL_EVT call,
DWR_CUST cust,
DWR_ADDR_LOC addr,
DWR_GEO_CITY city
Where to_date(to_char(call.evt_begin_dt,'MON-YY'),'MON-YY') like to_date('MAR-09','MON-YY')
and cust.cust_key = call.cust_key
and cust.addr_loc_key = addr.addr_loc_key
and addr.geo_city_key = city.geo_city_key
and initcap(city.geo_city_name)='San Francisco'
group by call.cust_key
order by 1 desc) WHERE ROWNUM < 10;
この問合せの結果を次に示します。
CUST_KEY TOT_CALL_MIN
---------- ------------
3390 101.6
4304 100.25
4269 97.37
4152 93.02
4230 92.97
4157 92.95
3345 91.62
4115 48.43
4111 44.48
アクセス・レイヤーの通常の問合せは、ファクト表と多数のディメンション表の結合で、一般的にスター・クエリーと呼ばれます。スター・クエリーで、各ディメンション表は、主キーと外部キーの結合を使用してファクト表に結合されます。通常、ディメンション表は相互に結合しません。
通常、このような問合せで、すべてのWHERE句の述語はディメンション表およびファクト表にあります。このタイプの問合せの最適化は非常に容易です。
この問合せを最適化するには、次の操作を実行します。
ビットマップ索引をファクト表の各外部キー列上に作成します。
初期化パラメータSTAR_TRANSFORMATION_ENABLEDをTRUEに設定します。
これにより、デフォルトで下位互換性がオフのスター・クエリーのオプティマイザ機能が有効になります。
使用している環境がこれらの2つの基準を満たすと、スター・クエリーは、スター型変換と呼ばれるSQLをリライトまたは変換する強力な最適化技術を使用します。スター型変換は、2つのフェーズで問合せを実行します。
ファクト表(行セット)から必要な行を取得します。
この行セットをディメンション表に結合します。
すべての外部キー列のビットマップ索引間のビットマップ結合を使用して、ファクト表の行を取得します。オプティマイザが該当する場合にSTAR_TRANSFORMATIONを自動的に選択するため、エンド・ユーザーはSTAR_TRANSFORMATIONの詳細を把握する必要がありません。
例5-2「スター型変換」に、STAR_TRANSFORMATIONを使用してスター・クエリーを最適化する段階的なプロセスを示します。
例5-2 スター型変換
図3-1「スター・スキーマ・ダイアグラム」のスター・スキーマに対して要求される可能性のあるビジネス上の質問として、「2008年5月中にボストンで販売された傘の総数は何ですか」という質問があります。
元の問合せです。
select SUM(quantity_sold) total_umbrellas_sold_in_Boston From Sales s, Customers c, Products p, Times t Where s.cust_id=cust_id And s.prod_id = p.prod_id And s.time_id=t.time_id And c.cust_city='BOSTON' And p.product='UMBRELLA' And t.month='MAY' And t.year=2008;
表示されているとおり、すべてのWHERE句の述語はディメンション表にあり、ファクト表(Sales)が外部キー、主キー・リレーションシップを使用して各ディメンションに結合されます。
次の処置を行います。
ビットマップ索引をファクト表の各外部キー列上に作成します。
初期化パラメータSTAR_TRANSFORMATION_ENABLEDをTRUEに設定します。
リライトされた問合せです。問合せをリライトおよび転送し、外部キー列のビットマップ索引を使用してファクト表から必要な行のみを取得します。
select SUM(quantity_sold From Sales Where cust_id IN (select c.cust_id From Customers c Where c.cust_city='BOSTON') And s.prod_id IN (select p.prod_id From Products p Where p.product='UMBRELLA') And s.time_id IN (select t.time_id From Times(Where t.month='MAY' And tyear=2008);
この方法で問合せをリライトすると、ビットマップ索引の長所を利用できます。ビットマップ索引はデータベース内の集合ベース処理を提供するため、AND、OR、MINUS、COUNTなどの集合演算の様々なファクト方法を使用できます。そのため、time_idのビットマップ索引を使用して、2008年5月の売上に対応するファクト表の行のセットを識別します。ビットマップで、行のセットは、1および0の文字列として実際に表されます。同様のビットマップを傘の売上に対応するファクト表の行に対して取得し、別のビットマップでボストンの売上にアクセスします。この時点で3つのビットマップが存在し、個々のディメンション制約を満たすファクト表の一連の行をそれぞれ表します。3つのビットマップがビットマップAND操作を使用して結合され、この新しく作成された最終的なビットマップを使用して、問合せの評価に必要なファクト表から行を抽出します。
リライトされた問合せを使用して、ファクト表からディメンション表に行を結合します。
通常、ディメンション表に戻る結合はハッシュ結合を使用して実行されますが、Oracleオプティマイザはディメンション表のサイズに依存する最も効率的な結合方法を選択します。
次の図は、STAR_TRANSFORMATIONを開始する場合のスター・クエリーの通常の実行計画を示します。実行計画は、予想どおりに表示されない場合があります。Sales表から行を正常に取得した後、顧客表に戻る結合は存在しません。選択リストを詳細に参照すると、Customers表から実際に何も選択されていないことがわかるため、オプティマイザはディメンション表に戻る結合を把握する必要がありません。また、一部の問合せでSTAR_TRANSFORMATIONを開始してもファクト表のすべてのビットマップ索引を使用しない場合があることがわかります。オプティマイザは、ファクト表から必要な行を取得するために必要なビットマップ索引の数を決定します。追加のビットマップ索引が選択性を改善しない場合、オプティマイザはそのビットマップ索引を使用しません。実行計画の除外されたビットマップに対応するディメンション表を確認する唯一の時間は、第2フェーズまたは後戻り結合フェーズの実行中です。

次のアクションを実行して、Oracle Business Intelligence Suite Enterprise Editionを使用して作成されたレポートの生成に関する問題を識別します。
(オンライン)Oracle BI Administratorツールで、「管理」、「セキュリティ」、「ユーザー」、「ocdm」の順に選択します。
「ロギング・レベル」の値が7であることを確認します。
Oracle Communications Data Modelリポジトリを開き、「管理」、「キャッシュ」の順に選択します。
キャッシュ・マネージャ・ウィンドウの右側のペインで、すべてのレコードを選択し、右クリックして「パージ」を選択します。
SQLログを使用して、追跡するレポートまたは問合せを実行します。
OracleBI\server\Logにある問合せログ・ファイル(NQQuery.log)を開きます。
最後の問合せSQLは、実行したレポートのログです。最後にアクセスしたレポートでエラーが戻される場合、このログの最後にエラーがあります。
次の例は、これらのエラー・メッセージの使用方法を示します。
例5-3 Oracle Communications Data Modelレポートのトラブルシューティング
ログ・ファイルに次のエラーが含まれているとします。
Query Status: Query Failed: [nQSError: 15018] Incorrectly defined logical table source (for fact table Customer Mining) does not contain mapping for [Customer.Cell Phone Number, Customer.Customer Segment Name, Customer.Party Name].
このエラーは、Oracle Business Intelligence Suite Enterprise Editionリポジトリのビジネス・レイヤーに問題がある場合に発生します。
この場合、Customer.Cell Phone Number、Customer.Customer Segment NameおよびCustomer.Party Nameのマッピングを確認する必要があります。
例5-4 レポートのトラブルシューティング: 表がありません
ログ・ファイルに次のエラーが含まれているとします。
Query Status: Query Failed: [encloser: 17001] Oracle Error code: 942, message: ORA-00942: table or view does not exist.
このエラーは、Oracle Business Intelligence Suite Enterprise Editionリポジトリの物理レイヤーに、実際にはデータベースに存在しない表がある場合に発生します。
問題のある表を確認するには、次の手順を実行します。
SQL問合せをデータベース環境にコピーします。
問合せを実行します。
存在しない表は、データベース・クライアントによってマークされます。
例5-5 レポートのトラブルシューティング: データベースが接続されていない場合
ログ・ファイルに次のエラーが含まれているとします。
エラー: Query Status: Query Failed: [nQSError: 17001] Oracle Error code: 12545, message: ORA-12545: connect failed because target host or object does not exist.
意味: このエラーは、データベースが接続されていない場合に発生します。
処置: 物理レイヤーとODBC接続の接続情報をチェックして、リポジトリが適切なデータベースに接続していることを確認します。
2つの一般的な問合せ技術は、「As Is」と「As Was」問合せです。
結果レポートは、発生時のデータを示します。
サロゲート・キー列(つまり、主キーおよび外部キー列)を使用して、スノーフレーク・ディメンション表も結合されます。
サロゲート・キー列を使用して、ファクト表がリーフ・レベルでディメンション表と結合します。
ディメンションの緩やかに変化するデータは対応するファクト・レコードと結合され、個別に表示されます。
異なるバージョンで同様の特性を共有する場合、コンポーネントを追加できます。
As Was問合せ(Point-in-Time分析とも呼ばれます)には、次の特性があります。
結果レポートは、特定の時点の固定されたディメンションおよびディメンション階層のデータを示します。
分析日に有効なレコードまたはバージョンを選択するPoint-in-Time日付フィルタを適用して、各スノーフレーク表を最初にフィルタします。この構造は、スノーフレークのPoint-in-Timeバージョンと呼ばれます。
フィルタされたスノーフレークは、自然キーを使用して、フィルタされていないバージョンと結合されます。すべてのスノーフレーク属性は、Point-in-Timeバージョン別名から取得します。結果構造は、コンポジット・スノーフレークと呼ばれます。
サロゲート・キーの個々のスノーフレークを結合して、コンポジット・ディメンションを形成します。
サロゲート・キー列を使用して、ファクト表がリーフ・レベルでコンポジット・ディメンション表と結合します。
Point-in-Timeバージョンは、時間の前後に関係なく同じビジネス・エンティティのすべての他の可能性のあるSCDバージョンに適用されます。この方法の結合により、ディメンションが特定のPoint-in-Timeレコードのみで構成される印象が与えられます。
様々なバージョンのすべてのファクト・コンポーネントは、ディメンション内のPoint-in-Time属性の適用によって正しく追加されます。
「例で使用されるデータ」に基づいて、次の例はAs IsおよびAs Was問合せの特性を示します。
例で使用されるデータ
使用するデータ・ウェアハウスにCustomer表、CountyおよびTaxPaidファクト表があるとします。2011年1月1日の時点で、これらの表に次の値が含まれています。
Customer表
| 顧客ID | 顧客コード | 顧客名 | 性別 | 婚姻区分 | 郡ID | 郡コード | 郡名 | ... | 有効開始日 | 有効終了日 |
|---|---|---|---|---|---|---|---|---|---|---|
| 101 | JoD | John Doe | 男性 | シングル | 5001 | SV | サニーベール | ... | 1-Jan-11 | 31-Dec-99 |
| 102 | JaD | Jane Doe | 女性 | シングル | 5001 | SV | サニーベール | ... | 1-Jan-11 | 31-Dec-99 |
| 103 | JiD | Jim Doe | 男性 | 既婚 | 5002 | CU | クパチーノ | ... | 1-Jan-11 | 31-Dec-99 |
County表
| 郡ID | 郡コード | 郡名 | 人口 | ... | 有効開始日 | 有効終了日 |
|---|---|---|---|---|---|---|
| 5001 | SV | サニーベール | 非常に多い | ... | 1-Jan-11 | 31-Dec-99 |
| 5002 | CU | クパチーノ | 多い | ... | 1-Jan-11 | 31-Dec-99 |
TaxPaid表
| 顧客ID | 日 | 税タイプ | 税金 |
|---|---|---|---|
| 101 | 1-Jan-11 | プロ税 | 100 |
| 102 | 1-Jan-11 | プロ税 | 100 |
| 103 | 1-Jan-11 | プロ税 | 100 |
次のイベントが2011年1月に発生したとします。
2011年1月20日に、Jane Doeが結婚します。
2011年1月29日に、John Doeがサニーベールからクパチーノに転居します。
したがって、次に示すように、2011年2月1日、County表の値は同じですが、CustomerおよびTaxPaid表に新しいデータがあります。
Customer表
| 顧客ID | 顧客コード | 顧客名 | 性別 | 婚姻区分 | 郡ID | 郡コード | 郡名 | ... | 有効開始日 | 有効終了日 |
|---|---|---|---|---|---|---|---|---|---|---|
| 101 | JoD | John Doe | 男性 | シングル | 5001 | SV | サニーベール | ... | 1-Jan-11 | 29-Jan-11 |
| 102 | JaD | Jane Doe | 女性 | シングル | 5001 | SV | サニーベール | ... | 1-Jan-11 | 20-Jan-11 |
| 103 | JiD | Jim Doe | 男性 | 既婚 | 5002 | CU | クパチーノ | ... | 1-Jan-11 | 31-Dec-99 |
| 104 | JaD | Jane Doe | 女性 | 既婚 | 5001 | SV | サニーベール | ... | 21-Jan-11 | 31-Dec-99 |
| 105 | JoD | John Doe | 男性 | シングル | 5002 | CD | クパチーノ | ... | 30-Jan-11 | 31-Dec-99 |
County表
| 郡ID | 郡コード | 郡名 | 人口 | ... | 有効開始日 | 有効終了日 |
|---|---|---|---|---|---|---|
| 5001 | SV | サニーベール | 非常に多い | ... | 1-Jan-11 | 31-Dec-99 |
| 5002 | CU | クパチーノ | 多い | ... | 1-Jan-11 | 31-Dec-99 |
TaxPaid表
| 顧客ID | 日 | 税タイプ | 税金 |
|---|---|---|---|
| 101 | 1-Jan-11 | プロ税 | 100 |
| 102 | 1-Jan-11 | プロ税 | 100 |
| 103 | 1-Jan-11 | プロ税 | 100 |
| 105 | 1-Feb-11 | プロ税 | 100 |
| 104 | 1-Feb-11 | プロ税 | 100 |
| 103 | 1-Feb-11 | プロ税 | 100 |
例5-6 婚姻区分で分割された収税のAs Is問合せ
「例で使用されるデータ」を前提とし、婚姻区分で分割された収税データを表示するため、次のSQL文でcust_idサロゲート・キーのTaxPaidファクト表とCustomerディメンション表およびcnty_idサロゲート・キーのCustomerとCountyスノーフレークを結合します。
SELECT cust.cust_nm, cust.m_status, SUM(fct.tx) FROM taxpaid fct, customer cust, county cnty WHERE fct.cust_id = cust.cust_id AND cust.cnty_id = cnt.cnt_id GROUP BY cust.cust_nm, cust.m_status ORDER BY 1,2,3;
この問合せの結果を次に示します。既婚の婚姻区分を示す行と独身の婚姻区分を示す行のJane Doeの2つの行があります。
| 顧客名 | 婚姻区分 | 税金 |
|---|---|---|
| Jane Doe | 既婚 | 100 |
| Jane Doe | シングル | 100 |
| Jim Doe | 既婚 | 200 |
| John Doe | シングル | 200 |
例5-7 婚姻区分で分割された収税のAs Was問合せ
「例で使用されるデータ」を前提とし、2011年1月15日の分析日を使用して、婚姻区分で分割された収税データを表示する次のSQL文を発行します。
select
cust.cust_nm, cust.m_status, sum(fct.tax)
from
TaxPaid fct,
(
select
cust_act.cust_id, cust_pit.cust_cd, cust_pit.cust_nm,
cust_pit.m_status, cust_pit.gender,
cust_pit.cnty_id, cust_pit.cnty_cd, cust_pit.cnty_nm
from Customer cust_act
inner join (
select
cust_id, cust_cd, cust_nm,
m_status, gender,
cnty_id, cnty_cd, cnty_nm
from Customer cust_all
where to_date('15-JAN-2011', 'DD-MON-YYYY') between eff_from and eff_to
) cust_pit
on (cust_act.cust_cd = cust_pit.cust_cd)
) cust,
(
select
cnty_act.cnty_id, cnty_pit.cnty_cd, cnty_pit.cnty_nm
from County cnty_act
inner join (
select
cnty_id, cnty_cd, cnty_nm
from County cnty_all
where to_date('15-JAN-2011', 'DD-MON-YYYY') between eff_from and eff_to
) cnty_pit
on (cnty_act.cnty_cd = cnty_pit.cnty_cd)
) cnty
where fct.cust_id = cust.cust_id
and cust.cnty_id = cnty.cnty_id
GROUP BY cust.cust_nm, cust.m_status
order by 1,2,3;
この問合せの結果を次に示します。Jane Doeは2011年1月15日(分析日)に独身のため、Jane Doeのすべての税は独身区分とみなされます。
| 顧客名 | 婚姻区分 | 税金 |
|---|---|---|
| Jane Doe | シングル | 200 |
| Jim Doe | 既婚 | 200 |
| John Doe | シングル | 200 |
かわりに、to_dateフレーズに15-JAN-2011ではなく09-FEB-2011を指定することを除いて完全に同じ問合せを発行するとします。Jane Doeは2011年2月9日に結婚しているため、次に示すようにJane Doeのすべての税は婚姻区分とみなされます。
| 顧客名 | 婚姻区分 | 税金 |
|---|---|---|
| Jane Doe | 既婚 | 200 |
| Jim Doe | 既婚 | 200 |
| John Doe | シングル | 200 |
例5-8 郡で分割された収税データのAs Is問合せ
「例で使用されるデータ」を前提とし、郡で分割された収税データを示す次のSQL文を発行します。
SELECT cust.cust_nm, cnty.cnty_nm, SUM(fct.tax) FROM TaxPaid fct, customer cust, county cnty WHERE fct.cust_id = cust.cust_id AND cust.cnty_id = cnty.cnty_ID GROUP BY cut.cust_nm, cnty.cnty_nm ORDER BY 1,2,3;
この問合せの結果を次に示します。John Doeは2つの異なる郡に居住しているため、John Doeに2つの行のデータがあります。
| 顧客名 | 郡名 | 税金 |
|---|---|---|
| Jane Doe | サニーベール | 200 |
| Jim Doe | クパチーノ | 200 |
| John Doe | クパチーノ | 100 |
| John Doe | サニーベール | 100 |
select
cust.cust_nm, cnty.cnty_nm, sum(fct.tax)
from
TaxPaid fct,
(
select
cust_act.cust_id, cust_pit.cust_cd, cust_pit.cust_nm,
cust_pit.m_status, cust_pit.gender,
cust_pit.cnty_id, cust_pit.cnty_cd, cust_pit.cnty_nm
from Customer cust_act
inner join (
select
cust_id, cust_cd, cust_nm,
m_status, gender,
cnty_id, cnty_cd, cnty_nm
from Customer cust_all
where to_date('15-JAN-2011', 'DD-MON-YYYY') between eff_from and eff_to
) cust_pit
on (cust_act.cust_cd = cust_pit.cust_cd
) cust,
(
select
cnty_act.cnty_id, cnty_pit.cnty_cd, cnty_pit.cnty_nm
from County cnty_act
inner join (
select
cnty_id, cnty_cd, cnty_nm
from County cnty_all
where to_date('15-JAN-2011', 'DD-MON-YYYY') between eff_from and eff_to
) cnty_pit
on (cnty_act.cnty_cd = cnty_pit.cnty_cd)
) cnty
where fct.cust_id = cust.cust_id
and cust.cnty_id = cnty.cnty_id
GROUP BY cust.cust_nm, cnty.cnty_nm
order by 1,2,3;
この問合せの結果を次に示します。John Doeは分析日の2011年1月15日にサニーベールに居住しているため、John Doeのすべての税はサニーベール郡とみなされます。
| 顧客名 | 郡名 | 税金 |
|---|---|---|
| Jane Doe | サニーベール | 200 |
| Jim Doe | クパチーノ | 200 |
| John Doe | サニーベール | 200 |
かわりに、to_dateフレーズに15-JAN-2011ではなく09-FEB-2011を指定することを除いて完全に同じ問合せを発行するとします。John Doeは2011年2月9日にクパチーノに居住していたため、次に示すようにJohn Doeのすべての税はクパチーノとみなされます。
| 顧客名 | 郡名 | 税金 |
|---|---|---|
| Jane Doe | サニーベール | 200 |
| Jim Doe | クパチーノ | 200 |
| John Doe | クパチーノ | 200 |
このチュートリアルは、Oracle Communications Data Modelで提供されるOracle Business Intelligence Suite Enterprise Editionサンプル・レポートに含まれるOracle Communications Data Model webcatに基づいて新しいダッシュボードを作成する方法について説明します。
|
参照: サンプル・レポートのインストールおよびBusiness Intelligence Suite Enterprise EditionインスタンスのOracle Communications Data ModelのRPDおよびwebcatのデプロイの詳細は、『Oracle Communications Data Modelインストレーション・ガイド』を参照してください。 |
この例では、「中断された呼および失敗した呼」のダッシュボードを作成し、「中断された呼の比率レポート」および「失敗した呼の比率レポート」をこの新しいダッシュボードに配置することを前提とします。
ダッシュボードを作成するには、次の手順を実行します。
ブラウザで、http://servername:9704/analyticsのログイン・ページを開きます。servernameは、webcatがインストールされるサーバーです。
ocdmのユーザー名でログインして、パスワードを指定します。
次に、「newDashboard」をクリックして、Oracle Business Intelligence Suite Enterprise Editionダッシュボードを作成します。

名前と説明を入力して、「ネットワーク・ヘルス」フォルダに保存します。「OK」をクリックします。

「カタログ」ビューで、ネットワーク・ヘルス分析フォルダを展開します。失敗した呼の比率レポートおよび中断した呼の比率レポートを確認できます。

「カタログ」ビューから右側のパネルに失敗した呼の比率レポートおよび中断した呼の比率レポートをドラッグします。

このセクションのレイアウトを変更して、水平または垂直の2つのレポートを編成できます。

ページ名が"Page1"のままなので、変更する必要があります。
ページ名を変更するには、次の手順を実行します。
ダッシュボードを選択します。

「ダッシュボードのプロパティ」ウィンドウで、「名前の変更」をクリックします。

名前を"Dropped Call Rate and Failed Call Rate"に変更して、「OK」をクリックします。

ダッシュボードの上部の「保存」をクリックします。新しいダッシュボードが表示されます。

|
Oracle By Example: ダッシュボードの作成の詳細は、AnalysesおよびDashboards 11gの作成に関するOBEチュートリアルを参照してください。チュートリアルにアクセスするには、「Oracle Technology Network」の指示に従ってブラウザでOracle Learning Libraryを開き、名前でチュートリアルを検索します。 |
このチュートリアルは、Oracle Communications Data Modelで提供されるOracle Business Intelligence Suite Enterprise Editionサンプル・レポートに含まれるOracle Communications Data Model webcatに基づいて新しいレポートを作成する方法について説明します。
|
参照: サンプル・レポートのインストールおよびBusiness Intelligence Suite Enterprise EditionインスタンスのOracle Communications Data ModelのRPDおよびwebcatのデプロイの詳細は、『Oracle Communications Data Modelインストレーション・ガイド』を参照してください。 |
この例では、「中断された呼と失敗した呼」のレポートを作成して、1つのレポートに中断された呼の比率と失敗した呼の比率を配置することを前提とします。
この新しいレポートを作成するには、次の手順を実行します。
ブラウザで、http://servername:9704/analyticsのログイン・ページを開きます。servernameは、webcatがインストールされるサーバーです。
ocdmのユーザー名でログインして、パスワードを指定します。
次に、「newAnalysis」をクリックして、Oracle Business Intelligence Suite Enterprise Editionレポートを作成します。

「サブジェクト・エリア」、「ODWT」の順に選択して、リレーショナル・レポートを作成します。
図rpt2.gifの説明
ディメンションおよびファクト列を「列の選択」パネルにドラッグして配置します。
図rpt3.gifの説明
「結果」タブを選択してレポートを表示します。
図rpt4.gifの説明
「新規ビュー」をクリックして、チャートをレポートに追加します。
図rpt5.gifの説明
「保存」をクリックして、このレポートをネットワーク・ヘルス分析フォルダに保存します。

|
Oracle By Example: レポートの作成の詳細は、AnalysesおよびDashboards 11gの作成に関するOBEチュートリアルを参照してください。チュートリアルにアクセスするには、「Oracle Technology Network」の指示に従ってブラウザでOracle Learning Libraryを開き、名前でチュートリアルを検索します。 |