ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebCenter Portal開発者ガイド
11g リリース1 (11.1.1.7.0)
B72084-02
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

46 分析サービスの統合

分析サービスを使用すると、Frameworkアプリケーションの使用状況およびパフォーマンスのメトリックを表示できます。この章では、Oracle WebCenter Portal: Frameworkを使用して作成したアプリケーションに分析サービスを統合する方法について説明します。

この章には次の項が含まれます:

分析タスク・フローの使用の詳細は、『Oracle Fusion Middleware Oracle WebCenter Portal: Spacesユーザーズ・ガイド』の分析サービスの使用に関する項を参照してください。

データベース表およびパラメータの詳細なリストは、付録G「WebCenter Portalの分析データベース・スキーマ」を参照してください。

46.1 分析サービスの概要

分析サービスは、ポータルのリアルタイムの使用状況およびアクティビティのレポートを提供します。この項では、分析サービス、タスク・フローおよび使用方法の概要を説明します。次のサブセクションが含まれます:

46.1.1 分析サービスの理解

分析サービスにより、管理者とユーザーは、WebCenter Portalアプリケーション内のトラフィックおよび使用状況を追跡し、分析できます。分析サービスの基本的な機能は次のとおりです。

  • 使用状況トラッキングのメトリック: 分析サービスでは、コミュニティ、ページ、ポートレットおよびドキュメント・ヒットを含む、一般的なポータル機能のメトリックを収集してレポートします。

  • 動作トラッキング: 分析サービスを使用してWebCenter Portalメトリックを分析して、ページのアクセス時間や使用時間などの使用パターンを判断できます。

  • ユーザー・プロファイルとの相関: 分析サービスを使用して、メトリック情報とユーザー・プロファイル情報との相関関係を示すことができます。使用状況トラッキング・レポートを表示し、国、会社、役職などのユーザー・プロファイル・データでフィルタ処理できます。

  • カスタム・レポート: 開発者およびビジネス・ユーザーは、分析データを問い合せるカスタム・レポートを作成できます。詳細は、第46.3.1項「SQLデータ・コントロールの使用」を参照してください。

表46-1は、WebCenter Portalで使用可能な分析タスク・フローを示しています。これらのタスク・フローは、SpacesアプリケーションおよびFrameworkアプリケーションで同様に動作します。これらのタスク・フローとその使用方法の詳細は、『Oracle Fusion Middleware Oracle WebCenter Portal: Spacesユーザーズ・ガイド』のSpacesの分析タスク・フローの理解に関する項を参照してください。

表46-1 JDeveloperで使用可能な分析タスク・フロー

タスク・フロー 説明

WebCenter Portalトラフィック

ポータル内の共通イベントの概要表示です。

ページ・トラフィック

ポータル内でページにアクセスしたユーザーの人数(重複を除く)とページ・ヒット数を表示します。

ログイン・メトリック

ポータル・ログインをレポートします。

ポートレット・トラフィック

ポートレットの使用状況データを表示します。

ポートレット・レスポンス時間

ポートレットのパフォーマンス・データを表示します。

ポートレット・インスタンス・トラフィック

ポートレット・インスタンス*の使用状況データを表示します。

ポートレット・インスタンス・レスポンス時間

ポートレット・インスタンス*のパフォーマンス・データを表示します。

検索メトリック

ポータル検索を追跡します。

ドキュメント・メトリック

ドキュメント・ビューを追跡します。

Wikiメトリック

最も人気のあるWikiや最も人気のないWikiを追跡します。

ブログ・メトリック

最も人気のあるブログや最も人気のないブログを追跡します。

ディスカッション・メトリック

最も人気のあるディスカッションや最も人気のないディスカッションを追跡します。


* 複数の異なるページに同じポートレットが表示される場合、配置されている各ポートレットをポートレット・インスタンスと呼びます。

46.1.2 分析サービスの要件

分析サービスでは、分析スキーマ(ACTIVITIES)が適切なデータベースに設定され実行されている必要があります。また、Oracle WebCenter Portalの分析コレクタWC_Utilities管理対象サーバーで起動されて実行中である必要もあります。インストール手順の詳細は、『Oracle Fusion Middleware Oracle WebCenter Portalインストレーション・ガイド』を参照してください。

インストール時に、分析コレクタは、インストール・デフォルトを使用してイベントを受信するようにデフォルトで構成されます。デフォルト値がインストールに適していない場合は、WLSTまたはFusion Middleware Controlを使用して別の値を設定する必要が生じることがあります。詳細は、『Oracle Fusion Middleware Oracle WebCenter Portal管理者ガイド』の分析コレクタ設定の構成に関する項を参照してください。

分析タスク・フローを介して使用状況およびパフォーマンスのメトリックを表示するには、Frameworkアプリケーションのイベント生成を有効にし、分析データベース(ACTIVITIES)への接続を設定する必要があります。JDeveloperでこれを行う方法の詳細は、第46.2.2項「分析サービスの接続の設定」を参照してください。

46.1.3 実行時の処理

実行時には、Frameworkアプリケーションでのユーザー・アクティビティによってイベント・データが生成されます。たとえば、ユーザー・ログイン、ディスカッション・トピックの参照、ドキュメントの表示などが行われるたびに、イベントが記録されます。OpenUsage APIは、ユーザー・データグラム・プロトコル(UDP)を使用してイベント・メトリックを分析コレクタに送信し、イベント・データは分析データベース(ACTIVITIES)に格納されます。

クラスタ環境でない場合、Frameworkアプリケーションはコレクタの場所で構成され、すべてのイベントはその場所に送信されます。


注意:

現在のリリースでは、分析コレクタはクラスタ化できません。


Frameworkアプリケーションに含まれる分析タスク・フローおよびカスタム分析レポート(SQLデータ・コントロールに基づく)では、実行時の分析データベースへの問合せによって、標準イベントに関して収集されたメトリックを表示します。実行時のタスク・フローの詳細は、『Oracle Fusion Middleware Oracle WebCenter Portal: Spacesユーザーズ・ガイド』の分析タスク・フローの使用に関する項を参照してください。

46.2 分析サービスの基本構成

この項では、Frameworkアプリケーションに分析サービスを統合する方法について説明します。

この項には次のサブセクションが含まれます:

第46.1.2項「分析サービスの要件」も参照してください。

46.2.1 分析サービスの構成ロードマップ

図46-1図46-2に示されたフロー・チャートは、Frameworkアプリケーション内で分析サービスを動作させるために必要な前提条件とタスクの概要を提供しています。

図46-1 Frameworkアプリケーションに対する分析サービスの構成

分析サービスを構成するためのロードマップ Install WebCenter Portal and the back-end components for the Analytics service Configure a connection to the Activities database in JDeveloper Configure a connection to the Analytics Collector in JDeveloper Add an Analytics task flow to a page in JDeveloper Use JDeveloper Use Fusion Middleware Control Use WLST Use WLS Admin Console (Optional) Configure the Analytics Collector Use the System MBean Browser Use WLST Use JDeveloper, then redeploy the application Use Fusion Middleware Control Use WLST

表46-2 Frameworkアプリケーションに対する分析サービスの構成

アクター タスク サブタスク

管理者

1.WebCenter Portal: Frameworkおよび分析サービス用のバックエンド・コンポーネントをインストールします


開発者

2.Frameworkアプリケーションに分析サービスを統合します

2.a JDeveloperでActivitiesデータベースへの接続を構成します

2.b JDeveloperで分析コレクタへの接続を構成します

2.c JDeveloperでページに分析タスク・フローを追加します

開発者/

管理者

3.次のいずれかのツールを使用してFrameworkアプリケーションをデプロイします

  • JDeveloper (開発者)

  • Fusion Middleware Control (管理者)

  • WLST (管理者)

  • WLS管理コンソール(管理者)


管理者

4.(オプション)次のいずれかのツールを使用して分析コレクタを構成します

  • システムMBeanブラウザ

  • WLST


開発者

5.(オプション) JDeveloperを使用してページおよびポートレットのイベントを計測し、アプリケーションを再デプロイします


開発者/

管理者

6.(オプション)次のいずれかのツールを使用して接続パラメータを追加/変更します:

  • JDeveloper、アプリケーションの再デプロイ(開発者)

  • Fusion Middleware Control(管理者)

  • WLST (管理者)


エンド・ユーザー

7.Frameworkアプリケーションで分析データを使用できることをテストします

6.a Frameworkアプリケーションにログインします

6.b 分析タスク・フローを表示します


46.2.2 分析サービスの接続の設定

分析サービスでは、Frameworkアプリケーションが分析データベース(ACTIVITIES)に接続している必要があります。イベント情報を特定の分析コレクタに送信するように、Frameworkアプリケーションを構成する必要もあります。


注意:

JDeveloperで設計時にバックエンド・サーバーへの接続を設定できますが、デプロイ後の環境でFusion Middleware Controlを使用して、後から接続を追加、削除または変更できます。詳細は、『Oracle Fusion Middleware Oracle WebCenter Portal管理者ガイド』の分析サービスの管理に関する項を参照してください。


この項には次のサブセクションが含まれます:

46.2.2.1 分析データベースへの接続を設定する方法

分析サービスでは、分析イベント・データが格納される分析データベース(ACTIVITIES)への接続が必要です。

分析データベースへの接続を設定するには:

  1. ACTIVITIESデータベースが稼働中であることを確認します。

    第46.1.2項「分析サービスの要件」を参照してください。

  2. アプリケーション・ナビゲータで、「アプリケーション・リソース」パネルを開きます。

  3. 「接続」を右クリックし、「接続の作成」を選択し、「データベース」を選択します。

  4. 「データベース接続の作成」ダイアログで、データベース接続について次の情報を入力します。

    • 接続名: connectionName (例: myAnalyticsDatabaseConnection)

    • 接続タイプ: Oracle (JDBC)

    • ユーザー名: username (データベースにアクセスできるユーザー)

    • パスワード: password (指定したユーザーのパスワード)

    • ホスト名: host (分析データベースがインストールされている場所。例: localhost)

    • JDBCポート: port (例: 1521)

    • SID: sid (データベースのシステム識別子)

  5. 「接続のテスト」をクリックし、成功した場合は、「OK」をクリックします。

  6. 「データソースへの関連付け」ダイアログで、「ActivitiesDS」を選択します(図46-2)。

    図46-2 分析データベースへの接続

    分析データベースに接続するためのActivitiesDS

    これによってACTIVITIESスキーマへのデータ・ソースが作成され、設計時にFrameworkアプリケーションで分析をテストできます。

  7. 「OK」をクリックします。

    「アプリケーション・リソース」ペインで、「接続」の下に接続がノードとして表示されます。

46.2.2.2 分析コレクタのプロパティを設定する方法

デフォルトでは、分析コレクタはWC_Utilities管理対象サーバーにインストールされ、次のデフォルト値を使用してイベントを受信するように構成されます。

分析コレクタの構成 デフォルト値

コレクタのホスト名

localhost

デフォルト・ポート

31314

最大ポート番号

31314

ブロードキャスト・タイプ

Multicast

クラスタリング

クラスタ名

クラスタのブロードキャスト頻度

Disabled

- null

- 10 seconds


これらのデフォルト値が自分のインストールに適さない場合は、管理者がWLSTまたはFusion Middleware Controlを使用して適切な値を構成できます。詳細は、『Oracle Fusion Middleware Oracle WebCenter Portal管理者ガイド』の分析コレクタ設定の構成に関する項を参照してください。

46.2.2.3 分析コレクタへの接続を設定する方法

分析サービスでは、WebCenter Portalイベントを収集する分析コレクタへの接続が必要であり、Frameworkアプリケーション内でOpenUsageが有効になっている必要があります。

分析サービスのプロパティを設定するには、次のOpenUsage JVMプロパティを使用します。

  • oracle.wc.openusage.enabled - 発生した分析イベントをOpenUsage APIを使用して分析コレクタに送信するかどうかを指定します。有効な値はtrueおよびfalseです。デフォルト値はfalseです。

  • oracle.wc.openusage.unicast - クラスタ化された分析コレクタにマルチキャスト・モードでイベントを送信するかどうか、またはユニキャスト通信を使用した単一の分析コレクタが必要かどうかを指定します。有効な値はtrueおよびfalseです。デフォルト値は、true (ユニキャスト)です。現在、クラスタはサポートされていないため、ここではtrueのみを指定します。

  • oracle.wc.openusage.clustername - コレクタ・クラスタの名前または分析コレクタのホスト名。現時点ではクラスタはサポートされていないため、ここにはホスト名のみを指定します。デフォルト値はlocalhostです。

  • oracle.wc.openusage.collectorport - 分析コレクタがイベントをリスニングするポート。デフォルト値は31314です。

  • oracle.wc.openusage.timeout: コレクタ・サービスをマルチキャスト・モードで使用できる時間(秒単位)。デフォルト値は30秒です。

分析コレクタのJVMプロパティを設定するには:

  1. JDeveloperで、メイン・メニューから「実行」「アクティブな実行構成」「実行構成の管理」の順に選択します。

  2. 「プロジェクト・プロパティ」ダイアログ・ボックスで、「デフォルト」の実行構成を選択し、「編集」をクリックします。

  3. 「起動設定」セクションで、次のOpenUsageオプションを「Javaオプション」フィールドに追加します。

    -Doracle.wc.openusage.enabled=true 
    -Doracle.wc.openusage.clustername=localhost 
    -Doracle.wc.openusage.collectorport=31314 
    -Doracle.wc.openusage.unicast=true 
    -Doracle.wc.openusage.timeout=30 
    

    注意:

    現在のリリースでは、oracle.wc.openusage.unicast値はtrueに設定する必要があります。このリリースでは分析コレクタをクラスタ化できないため、マルチキャストはサポートされません。


    ここでは太字で示されている、指定する値が、自分の分析コレクタ・インストールに適合することを確認します。

  4. 「OK」をクリックしてデフォルトの実行構成を保存し、再び「OK」をクリックします。

    これらの手順によって、現在のFrameworkアプリケーション用の統合WebLogic ServerでOpenUsageが使用できます。統合WebLogic Serverが稼働中の場合は、再起動して新しい設定を反映する必要があります。詳細は、第69.2項「統合WebLogic ServerへのFrameworkアプリケーションのデプロイ」を参照してください。

46.2.3 アプリケーションへの分析イベント・コードの追加

大部分のイベントはデフォルトで構成されているため、イベントを送信するためにアプリケーション内で追加のコーディングを行う必要はありません。唯一の例外はページ・ビュー・イベントで、このイベントについては、第46.2.3.1項「ページ・ビュー用のイベント・コードの追加」に記載されている追加のコードが必要です。

46.2.3.1 ページ・ビュー用のイベント・コードの追加

ページ・イベントを送信するには、各ページにイベント・コードを追加する必要があります。次は、ページ上でクライアントJavaScriptイベントを使用して、実際のイベントを送信するためのJava分析APIをコールしている例です。この例を実装するには、<af:document>タグのすぐ下に次のコードを追加し、イベントを送信するページの名前でpageName値を置き換えます。

  <af:resource type="javascript">
       function initPageLoadEvent(event) {
            AdfCustomEvent.queue(event.getSource(),
                 "generatePageEvent",
                 {pageName:"Page and Login Statistics"},
                 true);
            event.cancel();
       }
  </af:resource>
<af:clientListener method="initPageLoadEvent" type="load"/>
<af:serverListener type="generatePageEvent"
                   method="#{AnalyticsInstrumentation.sendPageEvent}"/>

前述の例は、ADFドキュメントがロードされるときにクライアント・イベントを生成し、定義されたサーバー・リスナーが実際にイベントを送信します。イベントを送信するJava Beanは次のとおりです。

public void sendPageEvent(ClientEvent event) {
        // Checks whether Analytics events must be sent
        if (!AnalyticsUtil.isSendingEvents())
            return;

        HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
        String requestUser = request.getRemoteUser();

        //SEND PAGE VIEW EVENT
        String pageName = (String)event.getParameters().get("pageName");
        if (pageName == null || pageName.isEmpty() || requestUser == null)
            return;

AnalyticsUtil.sendPageViewEvent(FacesContext.getCurrentInstance().getViewRoot().getViewId(),
                "PortalApp", //spaceDisplayName
                requestUser, //username
                0, pageName, false, request);
    } 

46.2.4 MDSでの分析カスタマイズ用のネームスペースの構成

分析タスク・フローではMDSを使用して、ユーザーが作成したカスタマイズを格納し、これらのカスタマイズは分析固有のMDSネームスペースに格納されます。Frameworkアプリケーションで分析タスク・フローに対するユーザー・カスタマイズを有効にするには、分析メタデータのネームスペースをadf-config.xmlで構成する必要があります。


注意:

さらに、各タスク・フローでは、ユーザー・カスタマイズの詳細が格納される一意のMDSドキュメントを指定する必要があります。第46.2.5.4項「分析タスク・フローの実行時のカスタマイズをエンド・ユーザーに許可する方法」を参照してください。


分析メタデータのネームスペースを構成するには:

  1. adf-config.xmlを開きます。

    「アプリケーション・リソース」パネルを使用して、このファイルに移動します。ファイルはDescriptors\ADF META-INFフォルダにあります。

  2. <metadata-namespaces>要素の下に、次のXMLフラグメントを追加します。

    <namespace path="/oracle/webcenter/analytics/scopedMD" metadata-store-usage="WebCenterFileMetadataStore"/>

  3. ファイルを保存します。

第22章「コンポーザ固有のMDS構成の実行」も参照してください。

46.2.5 分析タスク・フローの設計時の追加

この項では、分析サービス・タスク・フローについて説明し、分析タスク・フローをアプリケーションに追加する方法について説明します。次のサブセクションが含まれます:

46.2.5.1 分析タスク・フロー

表46-3は、WebCenter Portalで使用可能な分析タスク・フローを示しています。これらのタスク・フローと、実行時にユーザーに表示される情報の種類の詳細は、『Oracle Fusion Middleware Oracle WebCenter Portal: Spacesユーザーズ・ガイド』のSpacesの分析タスク・フローの理解に関する項を参照してください。

表46-3 JDeveloperで使用可能な分析タスク・フロー

分析タスク・フロー 説明

WebCenter Portalトラフィック

ポータル内の共通イベントの概要表示です。

ページ・トラフィック

ポータル内でページにアクセスしたユーザーの人数(重複を除く)とページ・ヒット数を表示します。

ログイン・メトリック

ポータル・ログインをレポートします。

ポートレット・トラフィック

ポートレットの使用状況データを表示します。

ポートレット・レスポンス時間

ポートレットのパフォーマンス・データを表示します。

ポートレット・インスタンス・トラフィック

ポートレット・インスタンス*の使用状況データを表示します。

ポートレット・インスタンス・レスポンス時間

ポートレット・インスタンス*のパフォーマンス・データを表示します。

検索メトリック

ポータル検索を追跡します。

ドキュメント・メトリック

ドキュメント・ビューを追跡します。

Wikiメトリック

最も人気のあるWikiや最も人気のないWikiを追跡します。

ブログ・メトリック

最も人気のあるブログや最も人気のないブログを追跡します。

ディスカッション・メトリック

最も人気のあるディスカッションや最も人気のないディスカッションを追跡します。


46.2.5.2 分析タスク・フローをページに追加する方法

分析タスク・フローをFrameworkアプリケーションに追加するには:

  1. 第46.1.2項「分析サービスの要件」の説明に従って、アプリケーションを準備します。

  2. ポートレット、ディスカッション、ドキュメント、検索など、分析イベント・データを使用できるサービスがアプリケーションに含まれていることを確認します。


    注意:

    アプリケーションを実行したときに使用状況データがない場合は、分析タスク・フローから「表示するデータがありません」というメッセージが表示されます。


  3. タスク・フローを追加するJSFページ(.jspx)を開きます。

  4. 「リソース・パレット」で、「WebCenter Portal - サービス・カタログ」を開き、「タスク・フロー」フォルダを開きます(図46-3)。

    図46-3 「リソース・パレット」で使用可能な分析タスク・フロー

    使用可能な分析タスク・フロー
  5. 「分析」タスク・フローを、ページの<af:form>タグの内側にドラッグ・アンド・ドロップします。

  6. 「作成」ポップアップ・メニューから、「リージョン」を選択します。

    分析サービスのADFライブラリ(analytics-reporting-service-view.jar)をプロジェクトに追加するよう要求される場合があります。「ライブラリの追加」をクリックして確認します(図46-4)。

    図46-4 分析サービスのADFライブラリの追加

    分析サービスのADFライブラリの追加
  7. 「タスク・フロー・バインディングの編集」ダイアログで、分析タスク・フロー・パラメータの値を入力します。

    • applicationName - 必須

    • analyticsResourceId - 必須

    • analyticsReportTitle - オプション

    • maxDataPointsPerSeries - オプション

    詳細は、第46.2.5.5項「分析タスク・フローおよびタスク・フロー・パラメータ」を参照してください。

  8. 「OK」をクリックします。

    タスク・フローがページに追加され、タスク・フローを実行するようにViewControllerプロジェクトのライブラリが構成されます。

  9. プロジェクトを保存し、ページを実行して、Frameworkアプリケーション内でタスク・フローが動作することを確認します。

    アプリケーションを実行したときに使用状況データがない場合は、分析タスク・フローから「表示するデータがありません」というメッセージが表示されます。

    テスト中のタスク・フローに関連するアクションを実行することで、表示する分析タスク・フローのデータを作成できます。たとえば、ディスカッション・メトリックをテストするには、ディスカッションを作成および表示したり、ページ・メトリックをテストするには、ページを作成および表示したりするといった具合です。

46.2.5.3 分析タスク・フローのパラメータを変更する方法

各分析タスク・フローには、一連の必須およびオプションのタスク・フロー・バインディング・パラメータがあります。必須パラメータは強制的なものではありませんが、これを使用すると、タスク・フローが正しく動作するために必要な情報を取得できます。たとえば、特定のタスク・フロー・インスタンスに対するユーザー・カスタマイズをMDSに格納する場合は、必要なMDSドキュメントを指定する必要があります。

また、タスク・フロー・バインディング・パラメータを使用すると、タスク・フロー・インスタンスの外観と動作もカスタマイズできます。たとえば、パラメータ値を使用して、分析データの上に表示されるタイトルを指定できます。

タスク・フロー・バインディング・パラメータの値は、タスク・フローをアプリケーション・ページにドラッグ・アンド・ドロップするときに指定できます。この操作を行うと、「タスク・フロー・バインディング」ダイアログが開きます(詳細は、第46.2.5.2項「分析タスク・フローをページに追加する方法」を参照してください)。

ページにタスク・フローを配置した後、タスク・フロー・バインディング・パラメータの値を実行時に調整することもできます。詳細は、『Oracle Fusion Middleware Oracle WebCenter Portal: Spacesユーザーズ・ガイド』の分析タスク・フロー・プロパティの設定に関する項を参照してください。

「タスク・フロー・バインディングの編集」ダイアログにアクセスするには:

  1. ページの下部にある「バインディング」タブ(「ソース」タブの横)をクリックして、「バインディング」ビューに移動します。

  2. 「実行可能ファイル」には、ページに追加したタスク・フローのリストが表示されます。分析タスク・フローを選択します(図46-5)。

    図46-5 分析タスク・フローの入力パラメータへのアクセス

    分析タスク・フローの入力パラメータ
  3. 「実行可能ファイル」という見出しの横にある、「選択した要素を編集します。」アイコン(鉛筆)をクリックします。

  4. 「タスク・フロー・バインディングの編集」ダイアログ(図46-6)で、必要に応じてバインディング・パラメータ値を指定します

    詳細は、第46.2.5.5項「分析タスク・フローおよびタスク・フロー・パラメータ」を参照してください。

    図46-6 分析タスク・フローのバインディング・パラメータの追加

    分析タスク・フローのバインディング・パラメータの追加
  5. 終了したら、ページを保存し実行して、結果を確認します。

46.2.5.4 分析タスク・フローの実行時のカスタマイズをエンド・ユーザーに許可する方法

特定のタスク・フロー・インスタンスへのユーザー・カスタマイズを可能にするには、カスタマイズが格納されるMDSドキュメントを、Analytics Resource Idパラメータを使用して指定する必要があります。

IDは一意である必要があるため、<app_name>_<page_name>_<task_flow>_<sequence>のような、一貫性のある命名パターンの使用を検討します。たとえば、ページ・トラフィック・タスク・フローの場合は、analyticsResourceIdパラメータをmyapp_analyticspage_pagetraffic_1に設定します。

詳細は、第46.2.5.3項「分析タスク・フローのパラメータを変更する方法」を参照してください。

46.2.5.5 分析タスク・フローおよびタスク・フロー・パラメータ

表46-4は、分析サービスに適用可能なタスク・フロー・バインディング・パラメータをリストし説明しています

表46-4 分析タスク・フロー・バインディング・パラメータ

パラメータ(*は必須) タスク・フロー 説明

analyticsReportTitle

すべて

分析データの上に表示されるタイトルを指定します。つまり、デフォルトのレポート・タイトルを上書きできます。図46-7「analyticsReportTitle - 例」も参照してください。

analyticsResourceId*

すべて

タスク・フロー・インスタンスに対するユーザー・カスタマイズ/アプリケーション・カスタマイズをMDSに格納するために生成されるMDSドキュメントを指定します。たとえば、mymainloginmetricsと入力します。

applicationName*

すべて

分析データを表示する対象のFrameworkアプリケーションの名前を指定します。たとえば、MyPortalApplicationと入力します。

分析データベースを使用して複数のアプリケーションのイベント・データを格納できるため、このパラメータは、表示するアプリケーション・データの特定に必要です。

省略した場合、タスク・フローではすべてのアプリケーションの分析データが表示されます。

maxDataPointsPerSeries

すべて

棒グラフまたは折れ線グラフに表示されるデータ・ポイントの最大数を指定します。1から1000の範囲の値を入力します。

デフォルト値は25です。

データ・ポイントの数が多いほど、グラフの表示に時間がかかる場合があります。図46-8「maxDataPointsPerSeries - 例」も参照してください。


図46-7 analyticsReportTitle - 例

analyticsReportTitle - 例

図46-8 maxDataPointsPerSeries - 例

maxDataPointsPerSeries - 例

46.2.6 分析タスク・フローおよび使用状況データのセキュリティの設定

分析タスク・フローの目的は、容量計画、サービス品質(QoS)分析、投資収益率(ROI)分析、検索の最良のカスタマイズなど、特定のビジネス機能を実行する限られた一連の管理ユーザーに対して、使用状況メトリックを表示することです。

分析用の使用状況データはポータル分析にとって重要ですが、ポータル・ユーザーにとって個人的または機密的な場合があります。たとえば、検索、ドキュメントおよびポートレットの各レポートは、電子メール・アドレス、名、姓などのユーザー・プロパティに基づく、特定のユーザーのアクティビティ・メトリックを表示するように構成できます。

分析タスク・フローおよびカスタム・レポートに関連するセキュリティとプライバシの問題を保護する方法は、次のとおりです。

  • 分析タスク・フロー、カスタム・レポートおよび機密的な使用状況データを表示するページへの管理者アクセスを管理します。

    分析タスク・フローのページへの追加、カスタム分析データ・コントロールに基づくレポートの作成、または機密的な使用状況メトリックを表示するように設定されているページの参照を行える管理ユーザーの数を限定するには、新しい管理グループを作成し、それに応じてグループ・メンバーシップを管理します。

  • 分析タスク・フローへのユーザー・アクセスを管理します。

    特に必要でないかぎり、分析タスク・フローおよびカスタム・レポートには、プライベート・データや機密データを含めないようにします。レポート内のメトリックにプライベート・データや機密データが含まれる場合、該当の指定ユーザーのみがタスク・フローまたはページにアクセスできるようにセキュリティを構成します。

    たとえば、設計時に開発者は、管理者でないユーザーにページへの適切な権限を与えることによって、分析タスク・フローを公開できます。また、開発者は、デプロイ前にレポートをカスタマイズして、特定のレポート・オプション(時間枠、グラフのタイプ、ユーザー・プロパティ・フィルタ、グループ化基準オプションなど)を非表示/表示および事前定義できます。管理者は実行時に同じ操作、つまり、ページ・アクセスの付与および表示される情報のカスタマイズを行えます。管理者でないユーザーも、表示が許可されているレポートをパーソナライズできますが、管理者が行ったカスタマイズを変更できません。

  • 認証されていないユーザーが分析タスク・フローをページに追加したり、機密データを表示できないようにします。

46.3 分析レポートの作成

デフォルトの分析タスク・フローでは、一般的な分析イベント・メトリックを固有の表示形式で表示します。分析データを異なる方法で表示したり、カスタムのイベント・データを表示する場合は、SQLを使用してカスタム分析レポートを作成できます。

この項には次のサブセクションが含まれます:

データベース表およびパラメータの詳細なリストは、付録G「WebCenter Portalの分析データベース・スキーマ」を参照してください。

46.3.1 SQLデータ・コントロールの使用

分析データベースから取得する情報をSQL問合せ文で定義するには、SQLデータ・コントロールを使用します。データ・コントロールをページに公開する場合、分析データをグラフ、表またはフォームで表示するかどうかを選択でき、バインド・パラメータなどの表示オプションも構成できます。

設計時にJDeveloperを使用してSQLデータ・コントロールを作成できます。データ・コントロールの詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』を参照してください。

実行時のリソース管理機能が有効な場合は、実行中のFrameworkアプリケーションでもデータ・コントロールを作成できます。Spacesアプリケーションでこの操作を行うには、『Oracle Fusion Middleware Oracle WebCenter Portal: Spacesユーザーズ・ガイド』のSQLデータ・コントロールの作成に関する項を参照してください。他のFrameworkアプリケーションでデータ・コントロールを作成するには、『Oracle Fusion Middleware Oracle WebCenter Portal管理者ガイド』のアプリケーション・リソースの管理に関する項を参照してください。

Frameworkアプリケーションで分析データベースからデータをフェッチし、分析データを表示するには、SQLデータ・コントロールを使用します。図46-9は、Spacesにおける「SQLデータ・コントロールの作成/編集」ダイアログ内のサンプルSQL問合せを示しています。分析データベース(ActivitiesDS)へのデータベース接続が必要であり、有効なデータベース・パスワードを指定する必要があります。

サンプルSQL: 日単位のページ・ヒット

SELECT space.name_, page.name_, space.id, page.id, count(1), fact.page_, page.resourceid_
  FROM  asfact_wc_pagevie_0 fact, asdim_wc_groupsp_0 space, asdim_wc_pages_0 page, asdim_wc_applica_0 app
  WHERE space.id = fact.groupspace_ 
    and page.id = fact.page_ 
    and app.id = fact.application_
    and fact.occurred between to_date(:startdate, :dateformat) 
    and to_date(:enddate, :dateformat) 
    and app.name_ = :appname 
    and page.personal_ = :ispersonal
    and space.name_ is not null 
    and page.name_ is not null 
    and space.id is not null 
    and page.id is not null 
    and fact.page_ is not null 
    and page.resourceid_ is not null
GROUP BY space.name_, page.name_, space.id, page.id, fact.page_, page.resourceid_
ORDER BY count(1) desc

図46-9 SpacesにおけるSQLデータ・コントロールを作成するためのダイアログ

WebCenter Spacesの「SQLデータ・コントロールの作成」ダイアログ

バインド・パラメータは必要に応じて追加できます。パラメータを追加する場合、指定するパラメータ値に基づいて、データ・ソースから取得されるデータを制限できます。この例はSpacesアプリケーション用なので、図46-10に示すように、アプリケーションの名前はwebcenterに設定し、個人用ページ(ホーム・スペース内のページ)をレポートに含めます。

図46-10 レポート・パラメータの設定

WebCenter Portal: Spacesの「SQLデータ・コントロールの作成」ダイアログ

表46-5 レポート・パラメータ

パラメータ デフォルト値 説明

appname

webcenter

対応するアプリケーション名、Spacesの場合は常にwebcenterです。その他のFrameworkアプリケーションは異なる名前です。

ispersonal

0または1

Spacesの場合、ホーム・スペースに作成されたページをレポートに含めるかどうかを決定します。

dateformat

mm/dd/yyyy hh24

Oracleデータベース内の有効な日付パターン。取得するデータによって異なるため、パターンのすべてのコンポーネントがオプションです。

startdate

01/01/2010

必要なデータの開始日を決定します。

enddate

01/01/2011

必要なデータの終了日を決定します。


図46-9は、グラフとして表示されるカスタム・レポートを示しています。

図46-11 サンプルの分析レポート - 日単位のページ・ヒット

WebCenter Portal: Spacesの「SQLデータ・コントロールの作成」ダイアログ

46.3.2 すぐに使用できる分析レポートのSQL文

この項では、カスタム・レポートの出発点として使用できるSQL文について説明します。これらの文は、フィルタの追加やグループ化など、様々な方法でカスタマイズできます。

データベース表およびパラメータの詳細なリストは、付録G「WebCenter Portalの分析データベース・スキーマ」を参照してください。

46.3.2.1 分析SQL: WebCenterポータル・トラフィック

SELECT 'Spaces' Name, count(1) Hits
  FROM asfact_wc_groupsp_0 fact, asdim_wc_groupsp_0 space, asdim_wc_applica_0 app
  WHERE space.id = fact.groupspace_ 
    and app.id = fact.application_ 
    and fact.occurred between to_date(:startdate, :dateformat) 
    and to_date(:enddate, :dateformat) 
    and app.name_ = :appname and space.personal_ = :ispersonal
UNION ALL
  SELECT 'Pages' Name, count(1) Hits
  FROM asfact_wc_pagevie_0 fact , asdim_wc_pages_0 page , asdim_wc_applica_0 app
  WHERE page.id = fact.page_ 
    and app.id = fact.application_ 
    and fact.occurred between to_date(:startdate, :dateformat) 
    and to_date(:enddate, :dateformat) 
    and app.name_ = :appname 
    and page.personal_ = :ispersonal
UNION ALL
  SELECT 'Portlets' Name, count(1) Hits
  FROM asfact_wc_portlet_0 fact, asdim_wc_applica_0 app
  WHERE app.id = fact.application_ 
    and fact.occurred between to_date(:startdate, :dateformat) 
    and to_date(:enddate, :dateformat) 
    and app.name_ = :appname
UNION ALL
  SELECT 'Logins' Name, count(1) Hits
  FROM asfact_wc_logins_0 fact , asdim_wc_applica_0 app
  WHERE app.id = fact.application_ 
    and fact.occurred between to_date(:startdate, :dateformat) 
    and to_date(:enddate, :dateformat) 
    and app.name_ = :appname
UNION ALL
  SELECT 'Searches' Name, count(1) Hits
  FROM asfact_wc_searche_0 fact , asdim_wc_applica_0 app
  WHERE app.id = fact.application_ 
    and fact.occurred between to_date(:startdate, :dateformat) 
    and to_date(:enddate, :dateformat) 
    and app.name_ = :appname
UNION ALL
  SELECT 'Wikis' Name, count(1) Hits
  FROM asfact_wc_doclib__0 fact, asdim_wc_documen_0 doc, asdim_wc_applica_0 app
  WHERE app.id = fact.application_ 
    and fact.document_ = doc.id 
    and fact.occurred between to_date(:startdate, :dateformat) 
    and to_date(:enddate, :dateformat) and app.name_ = :appname 
    and doc.objecttype_ like '%WIKI%'
UNION ALL
  SELECT 'Blogs' Name, count(1) Hits
  FROM asfact_wc_doclib__0 fact, asdim_wc_documen_0 doc, asdim_wc_applica_0 app
  WHERE app.id = fact.application_ 
    and fact.document_ = doc.id 
    and fact.occurred between to_date(:startdate, :dateformat) 
    and to_date(:enddate, :dateformat) 
    and app.name_ = :appname 
and doc.objecttype_ like '%BLOG%' UNION ALL SELECT 'Documents' Name, count(1) Hits FROM asfact_wc_doclib__0 fact, asdim_wc_documen_0 doc, asdim_wc_applica_0 app WHERE app.id = fact.application_ and fact.document_ = doc.id and fact.occurred between to_date(:startdate, :dateformat) and to_date(:enddate, :dateformat) and app.name_ = :appname and doc.objecttype_ like '%DOCUMENT%' UNION ALL SELECT 'Discussions' Name, count(1) Hits FROM asfact_wc_discuss_1 fact, asdim_wc_applica_0 app WHERE app.id = fact.application_ and fact.occurred between to_date(:startdate, :dateformat) and to_date(:enddate, :dateformat) and app.name_ = :appname

46.3.2.2 分析SQL: ページ・トラフィック

SELECT  space.name_, page.name_, space.id, page.id, count(1), fact.page_, page.resourceid_
  FROM asfact_wc_pagevie_0 fact, asdim_wc_groupsp_0 space, asdim_wc_pages_0 page, asdim_wc_applica_0 app
  WHERE space.id = fact.groupspace_ 
    and page.id = fact.page_ 
    and app.id = fact.application_ 
    and fact.occurred between to_date(:startdate, :dateformat) 
    and to_date(:enddate, :dateformat) 
    and app.name_ = :appname 
    and page.personal_ = :ispersonal 
    and space.name_ is not null 
    and page.name_ is not null 
    and space.id is not null 
    and page.id is not null 
    and fact.page_ is not null 
    and page.resourceid_ is not null
GROUP BY space.name_, page.name_, space.id, page.id, fact.page_, page.resourceid_
ORDER BY count(1) desc

46.3.2.3 分析SQL: ログイン・メトリック

SELECT  count(1)
 FROM asfact_wc_logins_0 fact, asdim_wc_applica_0 app
 WHERE app.id = fact.application_ 
    and fact.occurred between to_date(:startdate, :dateformat) 
    and to_date(:enddate, :dateformat) 
    and app.name_ = :appname

46.3.2.4 分析SQL: スペース・トラフィック

SELECT  space.name_, space.id, count(1), fact.groupspace_, space.resourceid_
  FROM asfact_wc_groupsp_0 fact, asdim_wc_groupsp_0 space, asdim_wc_applica_0 app
  WHERE space.id = fact.groupspace_ 
    and app.id = fact.application_ 
    and fact.occurred between to_date(:startdate, :dateformat) 
    and to_date(:enddate, :dateformat) 
    and app.name_ = :appname 
    and space.personal_ = :ispersonal 
    and space.name_ is not null 
    and space.id is not null 
    and fact.groupspace_ is not null 
    and space.resourceid_ is not null
GROUP BY space.name_, space.id, fact.groupspace_, space.resourceid_
ORDER BY count(1) desc

46.3.2.5 分析SQL: スペース・レスポンス時間

SELECT  space.name_, space.id, avg(fact.response_time_), fact.groupspace_, space.resourceid_
  FROM asfact_wc_groupsp_0 fact, asdim_wc_groupsp_0 space, asdim_wc_applica_0 app
  WHERE space.id = fact.groupspace_ 
    and app.id = fact.application_ 
    and fact.occurred between to_date(:startdate, :dateformat) 
    and to_date(:enddate, :dateformat) 
    and app.name_ = :appname 
    and space.personal_ = :ispersonal 
    and space.name_ is not null 
    and space.id is not null 
    and fact.groupspace_ is not null 
    and space.resourceid_ is not null
GROUP BY space.name_, space.id, fact.groupspace_, space.resourceid_

46.3.2.6 分析SQL: ポートレット・トラフィック

SELECT  portlet.default_title_, portlet.id, count(1), fact.portlet_, portlet.resourceid_
  FROM asfact_wc_portlet_0 fact, asdim_wc_portlet_0 portlet, asdim_wc_applica_0 app
  WHERE app.id = fact.application_ 
    and portlet.id = fact.portlet_ 
    and fact.occurred between to_date(:startdate, :dateformat) 
    and to_date(:enddate, :dateformat) 
    and app.name_ = :appname 
    and portlet.default_title_ is not null 
    and portlet.id is not null 
    and fact.portlet_ is not null 
    and portlet.resourceid_ is not null
GROUP BY portlet.default_title_, portlet.id, fact.portlet_, portlet.resourceid_

46.3.2.7 分析SQL: ポートレット・インスタンス・トラフィック

SELECT  space.name_, space.id, page.name_, page.id, portletinst.title_, portletinst.id, count(1), fact.portlet_instance_, portletinst.resourceid_
  FROM asfact_wc_portlet_0 fact, asdim_wc_groupsp_0 space, asdim_wc_pages_0 page, asdim_wc_portlet_1 portletinst, asdim_wc_applica_0 app
  WHERE space.id = fact.groupspace_ 
    and page.id = fact.page_ 
    and app.id = fact.application_ 
    and portletinst.id = fact.portlet_instance_ 
    and fact.occurred between to_date(:startdate, :dateformat) 
    and to_date(:enddate, :dateformat) 
    and app.name_ = :appname 
    and space.name_ is not null 
    and space.id is not null 
    and page.name_ is not null 
    and page.id is not null 
    and portletinst.title_ is not null 
    and portletinst.id is not null 
    and fact.portlet_instance_ is not null 
    and portletinst.resourceid_ is not null
GROUP BY space.name_, space.id, page.name_, page.id, portletinst.title_, portletinst.id, fact.portlet_instance_, portletinst.resourceid_

46.3.2.8 分析SQL: ポートレット・レスポンス時間

SELECT  portlet.default_title_, portlet.id, avg(fact.response_time_), fact.portlet_, portlet.resourceid_
  FROM asfact_wc_portlet_0 fact, asdim_wc_portlet_0 portlet, asdim_wc_applica_0 app
  WHERE app.id = fact.application_ 
    and portlet.id = fact.portlet_ 
    and fact.occurred between to_date(:startdate, :dateformat) 
    and to_date(:enddate, :dateformat) 
    and app.name_ = :appname 
    and portlet.default_title_ is not null 
    and portlet.id is not null 
    and fact.portlet_ is not null 
    and portlet.resourceid_ is not null
GROUP BY portlet.default_title_, portlet.id, fact.portlet_, portlet.resourceid_

46.3.2.9 分析SQL: ポートレット・インスタンス・レスポンス時間

SELECT  space.name_, space.id, page.name_, page.id, portletinst.title_, portletinst.id, avg(fact.response_time_), fact.portlet_instance_, portletinst.resourceid_
  FROM asfact_wc_portlet_0 fact, asdim_wc_groupsp_0 space, asdim_wc_pages_0 page, asdim_wc_portlet_1 portletinst, asdim_wc_applica_0 app
  WHERE space.id = fact.groupspace_ 
    and page.id = fact.page_ 
    and app.id = fact.application_ 
    and portletinst.id = fact.portlet_instance_ 
    and fact.occurred between to_date(:startdate, :dateformat) 
    and to_date(:enddate, :dateformat) 
    and app.name_ = :appname 
    and space.name_ is not null 
    and space.id is not null 
    and page.name_ is not null 
    and page.id is not null 
    and portletinst.title_ is not null 
    and portletinst.id is not null 
    and fact.portlet_instance_ is not null 
    and portletinst.resourceid_ is not null
GROUP BY space.name_, space.id, page.name_, page.id, portletinst.title_, portletinst.id, fact.portlet_instance_, portletinst.resourceid_

46.3.2.10 分析SQL: 検索メトリック

SELECT  search.phrase_, search.id, count(1)
  FROM asfact_wc_searche_0 fact, asdim_wc_applica_0 app, asdim_wc_searche_0 search
  WHERE app.id = fact.application_ 
    and search.id = fact.searched_phrase_ 
    and fact.occurred between to_date(:startdate, :dateformat) 
    and to_date(:enddate, :dateformat) 
    and app.name_ = :appname 
    and search.phrase_ is not null 
    and search.id is not null
GROUP BY search.phrase_, search.id

46.3.2.11 分析SQL: ドキュメント・メトリック

SELECT  doc.name_, doc.id, count(1), fact.document_, doc.resourceid_
  FROM asfact_wc_doclib__0 fact, asdim_wc_documen_0 doc, asdim_wc_applica_0 app
  WHERE app.id = fact.application_ 
    and fact.document_ = doc.id 
    and fact.occurred between to_date(:startdate, :dateformat) 
    and to_date(:enddate, :dateformat) 
    and app.name_ = :appname 
    and doc.objecttype_ like '%DOCUMENT%' 
    and doc.name_ is not null 
    and doc.id is not null 
    and fact.document_ is not null 
    and doc.resourceid_ is not null
GROUP BY doc.name_, doc.id, fact.document_, doc.resourceid

46.3.2.12 分析SQL: Wikiメトリック

SELECT  doc.name_, doc.id, count(1), fact.document_, doc.resourceid_
  FROM asfact_wc_doclib__0 fact, asdim_wc_documen_0 doc, asdim_wc_applica_0 app
  WHERE app.id = fact.application_ 
    and fact.document_ = doc.id 
    and fact.occurred between to_date(:startdate, :dateformat) 
    and to_date(:enddate, :dateformat) 
    and app.name_ = :appname 
    and doc.objecttype_ like '%WIKI%' 
    and doc.name_ is not null 
    and doc.id is not null 
    and fact.document_ is not null 
    and doc.resourceid_ is not null
GROUP BY doc.name_, doc.id, fact.document_, doc.resourceid_

46.3.2.13 分析SQL: ブログ・メトリック

SELECT  doc.name_, doc.id, count(1), fact.document_, doc.resourceid_
  FROM asfact_wc_doclib__0 fact, asdim_wc_documen_0 doc, asdim_wc_applica_0 app
  WHERE app.id = fact.application_ 
    and fact.document_ = doc.id 
    and fact.occurred between to_date(:startdate, :dateformat) 
    and to_date(:enddate, :dateformat) 
    and app.name_ = :appname 
    and doc.objecttype_ like '%BLOG%' 
    and doc.name_ is not null 
    and doc.id is not null 
    and fact.document_ is not null 
    and doc.resourceid_ is not null
GROUP BY doc.name_, doc.id, fact.document_, doc.resourceid_

46.3.2.14 分析SQL: ディスカッション・メトリック

SELECT  forum.name_, forum.id, count(1), fact.topic_, forum.resourceid_
  FROM asfact_wc_discuss_0 fact, asdim_wc_discuss_0 forum, asdim_wc_applica_0 app
  WHERE app.id = fact.application_ 
    and forum.id = fact.topic_ 
    and fact.occurred between to_date(:startdate, :dateformat) 
    and to_date(:enddate, :dateformat) 
    and app.name_ = :appname 
    and forum.name_ is not null 
    and forum.id is not null 
    and fact.topic_ is not null 
    and forum.resourceid_ is not null
GROUP BY forum.name_, forum.id, fact.topic_, forum.resourceid_

46.3.3 ユーザー・メトリックについての問合せのサンプル

この項では、ユーザー固有のメトリックについての問合せのサンプルを示します。次のサンプルがあります。

データベース表とパラメータの詳細なリストおよびユーザー・プロパティの詳細は、付録G「WebCenter Portalの分析データベース・スキーマ」第G.5項「分析ユーザー・プロパティ」を参照してください。

46.3.3.1 サンプルSQL: ユーザー・プロパティによるフィルタ処理

次の問合せは、Sales部門のユーザーがアクセスしたページの名前と、その各ページのビュー数を返します。

SELECT p.name_ as page, count(*) as views
  FROM asfact_wc_pagevie_0 f
    JOIN asdim_wc_pages_0 p on f.page_ = p.id
    JOIN asdim_userpropertyvalues pv on f.userid = pv.userid
    JOIN asdim_userproperties pr on pv.propertyid = pr.id
  WHERE pr.name = 'DEPARTMENT'
and pv.value = 'Sales' GROUP BY p.name_

46.3.3.2 サンプルSQL: ユーザー・プロパティによるグループ化

次の問合せは、ページ・ビューの総数を部門別に返します。

SELECT pv.value as department, count(*) as views
  FROM asfact_wc_pagevie_0 f
    JOIN asdim_userpropertyvalues pv on f.userid = pv.userid
    JOIN asdim_userproperties pr on pv.propertyid = pr.id
  WHERE pr.name = 'DEPARTMENT'
GROUP BY pv.value

46.3.4 特定のメトリックについての分析データベース問合せのサンプル

この項では、特定のメトリックについての問合せのサンプルを示します。次のサンプルがあります。

データベース表およびパラメータの詳細なリストは、付録G「WebCenter Portalの分析データベース・スキーマ」を参照してください。

46.3.4.1 サンプルSQL: ユーザー・アクティビティ

次の問合せは、特定の期間に特定のユーザーによって実行されたすべてのアクティビティのリストを返します。

SELECT 'Logins' AS Activity, count(*) AS Events
  FROM asfact_wc_logins_0 f
    JOIN asdim_time t ON f.timeid = t.id
    JOIN asdim_users u ON f.userid = u.id
  WHERE u.userid = 'user1'
    AND f.timeid >= (SELECT id
                     FROM asdim_time
                     WHERE year = 2011
                       AND monthofyear = 0
                       AND dayofmonth = 1
                       AND hourofday = 0)
    AND f.timeid <  (SELECT id
                     FROM asdim_time
                     WHERE year = 2011
                       AND monthofyear = 1
                       AND dayofmonth = 1
                       AND hourofday = 0)
UNION ALL
  SELECT 'Searches' AS Activity, count(*) AS Events
  FROM asfact_wc_searche_0 f
    JOIN asdim_time t ON f.timeid = t.id
    JOIN asdim_users u ON f.userid = u.id
  WHERE u.userid = 'user1'
    AND f.timeid >= (select id
                     from asdim_time
                     where year = 2011
                       and monthofyear = 0
                       and dayofmonth = 1
                       and hourofday = 0)
    AND f.timeid <  (select id
                     from asdim_time
                     where year = 2011
                       and monthofyear = 1
                       and dayofmonth = 1
                       and hourofday = 0)
UNION ALL
   ...

サンプル・レポート出力

Activity   Events
----------------
Logins        25
Searches      15
...

46.3.4.2 サンプルSQL: スペース・アクティビティ

次の問合せは、特定のスペースで実行されたすべてのアクティビティのリストを返します。

SELECT g.name_ AS Space, 'Page views' AS Activity,
    count(*) AS Events
  FROM asfact_wc_pagevie_0 f
    JOIN asdim_time t ON f.timeid = t.id
    JOIN asdim_wc_groupsp_0 g ON f.groupspace_ = g.id
  WHERE g.name_ IN ('Project1', 'Project2')
    AND f.timeid >= (select id
                     from asdim_time
                     where year = 2011
                       and monthofyear = 0
                       and dayofmonth = 1
                       and hourofday = 0)
    AND f.timeid <  (select id
                     from asdim_time
                     where year = 2011
                       and monthofyear = 1
                       and dayofmonth = 1
                       and hourofday = 0)
  GROUP BY g.name_
UNION ALL
  SELECT g.name_ AS Space,
    'Portlet views' AS Activity, count(*) AS Events
  FROM asfact_wc_portlet_0 f
    JOIN asdim_time t ON f.timeid = t.id
    JOIN asdim_wc_groupsp_0 g ON f.groupspace_ = g.id
  WHERE g.name_ in ('Project1', 'Project2')
    AND f.timeid >= (select id
                     from asdim_time
                     where year = 2011
                       and monthofyear = 0
                       and dayofmonth = 1
                       and hourofday = 0)
    AND f.timeid <  (select id
                     from asdim_time
                     where year = 2011
                       and monthofyear = 1
                       and dayofmonth = 1
                       and hourofday = 0)
  GROUP BY g.name_

サンプル・レポート出力

Space       Activity      Events
--------------------------------
Project1    PageViews         34
Project2    PageViews         42
Project1    PortletViews      98
Project2    PortletViews      74

46.3.4.3 サンプルSQL: 特定の期間のスペース・アクティビティ

次の問合せは、特定の期間に特定のスペースにおいて実行されたすべてのアクティビティのリストを返します。

SELECT 'Page views' AS Activity, count(*) AS Events
  FROM asfact_wc_pagevie_0 f
    JOIN asdim_time t ON f.timeid = t.id
    JOIN asdim_wc_groupsp_0 g ON f.groupspace_ = g.id
  WHERE g.name_ = 'Project1'
    AND f.timeid >= (select id
                     from asdim_time                     where year = 2011
                       and monthofyear = 0
                       and dayofmonth = 1
                       and hourofday = 0)
    AND f.timeid <  (select id
                     from asdim_time
                     where year = 2011
                       and monthofyear = 1
                       and dayofmonth = 1
                       and hourofday = 0)
UNION ALL
  SELECT 'Portlet views' AS Activity, count(*) AS Events
  FROM asfact_wc_portlet_0 f
    JOIN asdim_time t ON f.timeid = t.id
    JOIN asdim_wc_groupsp_0 g ON f.groupspace_ = g.id
  WHERE g.name_ = 'Project1'
    AND f.timeid >= (select id
                     from asdim_time
                     where year = 2011
                       and monthofyear = 0
                       and dayofmonth = 1
                       and hourofday = 0)
    AND f.timeid <  (select id
                     from asdim_time
                     where year = 2011
                       and monthofyear = 1
                       and dayofmonth = 1
                       and hourofday = 0)
UNION ALL
   ...

サンプル・レポート出力

Activity       Events
---------------------
Page views         15
Portlet views     200

46.3.4.4 サンプルSQL: 特定の期間でのサービスのアクティビティ

次の問合せは、特定の期間における特定のサービス(この例の場合はログイン・サービス)のアクティビティを返し、結果をユーザー単位にグループ化します。

SELECT u.userid AS "User", count(*) AS "Logins"
FROM asfact_wc_logins_0 f
  JOIN asdim_time t ON f.timeid = t.id
  JOIN asdim_users u ON f.userid = u.id
WHERE f.timeid >= (select id
                   from asdim_time
                   where year = 2011
                     and monthofyear = 0
                     and dayofmonth = 1
                     and hourofday = 0)
    AND f.timeid <  (select id
                     from asdim_time
                     where year = 2011
                       and monthofyear = 1
                       and dayofmonth = 1
                       and hourofday = 0)
GROUP BY u.userid
ORDER BY "Logins" DESC

サンプル・レポート出力

User      Logins
--------------
user3     245
user1     240
user2     193

46.3.4.5 サンプルSQL: 検索フレーズ

次の問合せは、特定の期間に検索されたフレーズを返し、各検索の実行回数をリストします。

SELECT s.phrase_ AS "Search Phrase", count(*) AS "Times"
FROM asfact_wc_searche_0 f
  JOIN asdim_time t ON f.timeid = t.id
  JOIN asdim_users u ON f.userid = u.id
  JOIN asdim_wc_searche_0 s ON f.searched_phrase_ = s.id
WHERE u.userid = 'user1'
  AND f.timeid >= (select id
                     from asdim_time
                     where year = 2011
                       and monthofyear = 0
                       and dayofmonth = 1
                       and hourofday = 0)
    AND f.timeid <  (select id
                     from asdim_time
                     where year = 2011
                       and monthofyear = 1
                       and dayofmonth = 1
                       and hourofday = 0)
GROUP BY u.userid, s.phrase_
ORDER BY count(*) DESC, s.phrase_

サンプル・レポート出力

Search Phrase      Times
------------------------
product prices         4
sales report 2011      1

46.3.4.6 サンプルSQL: ページ・ビュー

次の問合せは、特定の期間に特定のユーザーによって表示されたページを返します。

SELECT u.userid AS "User", count(*) AS "Views"
FROM asfact_wc_pagevie_0 f
  JOIN asdim_time t ON f.timeid = t.id
  JOIN asdim_users u ON f.userid = u.id
  JOIN asdim_wc_pages_0 p ON f.page_ = p.id
  JOIN asdim_wc_groupsp_0 g ON f.groupspace_ = g.id
WHERE g.name_ = 'Space 1'
  AND p.name_ = 'Page 1'
  AND f.timeid >= (select id
                   from asdim_time
                   where year = 2011
                     and monthofyear = 0
                     and dayofmonth = 1
                     and hourofday = 0)
  AND f.timeid <  (select id
                   from asdim_time
                   where year = 2011
                     and monthofyear = 1
                     and dayofmonth = 1
                     and hourofday = 0)
GROUP BY u.userid
ORDER BY count(*) DESC

サンプル・レポート出力

User    Views
--------------
user3     245
user1     190
user2      65