カスタムSQLを使用したウィジェットの作成

  1. ウィジェット・ビルダーに移動します。
  2. オプションで、左上隅の「フィルタ・パネルを開く/閉じる」アイコン(フィルタ・パネルを開く/閉じる)をクリックして、ダッシュボードに追加されたフィルタを表示し、必要に応じて変更します。
  3. データソースドロップダウン・リストから、次のデータソースのいずれかを選択します:
    • EMリポジトリ: Enterprise Manager管理リポジトリのビューおよび表にあるデータを問い合せるには、このオプションを選択します。管理リポジトリ・ビューの詳細は、Oracle Enterprise Manager管理リポジトリ・ビュー・リファレンス管理リポジトリ・ビューに関する項を参照してください。
    • EMフェデレーション: フェデレートされたEnterprise Managerサイトにあるデータを問い合せるには、このオプションを選択します。Enterprise Managerフェデレーションについては、Oracle Enterprise Managerアドバンスト・インストレーションおよび構成ガイドEnterprise Managerフェデレーションの構成を参照してください。

      ノート:

      「EMフェデレーション」データソース・オプションは、カスタムSQLを使用してウィジェットを作成するときのみ使用できます。事前定義済SQLを使用してウィジェットを作成するときは、このデータソースは使用できません。
  4. SQLセレクタ・ドロップダウン・リストから、「カスタムSQL」を選択します。

    「カスタムSQL」オプションがデフォルトで選択され、「SQL問合せ」フィールドにサンプル問合せが追加され、対応するウィジェットが表示されます。サンプル問合せでは、SELECT文により、選択したデータソース、EMリポジトリまたはEMフェデレーションからの列名を問い合せています。ビジュアライゼーション・オプションもデフォルトで選択されており、サンプル問合せで取得されたデータがビジュアル化されます。

  5. 「SQL問合せ」 フィールドで、サンプル問合せを新しい問合せに置き換えるか、ウィジェットのカスタム入力パラメータを追加することで特定の要件を満たすようにSQL問合せをカスタマイズします。
    必要に応じて、カスタム入力パラメータを追加するには、その問合せのカスタマイズする部分を、疑問符(?)で示された標準バインド・パラメータ・マーカーに置き換えます。これは、JDBCでのバインド・パラメータのサポートに似ています。カスタム入力パラメータには2つのタイプがあります。ターゲット・タイプなどの入力を指定する標準入力パラメータと、基本的にはウィジェットでデータを表示する期間(開始時間と終了時間)を指定する複合パラメータである時間入力パラメータです。

    ノート:

    これは高度な概念であり、ウィジェット・ビルダーおよびバインド・パラメータをよく理解している必要があります。初めてカスタムSQLを使用してウィジェットを作成する場合は、ステップ6に進むことをお薦めします。
    • 標準入力パラメータを追加しカスタム値を指定するには:
      1. 問合せの、標準入力パラメータの追加先となる部分を、標準バインド・パラメータ・マーカー(?)に置き換えます。次の例では、ウィジェットで表示するターゲット・タイプについてカスタム入力値を追加できるように、カスタムSQL問合せ内のターゲット・タイプをバインド・パラメータ・マーカーに置き換えます。

        太字のターゲット・タイプを置き換えて、

        SELECT
        	target_type as "Target Type",
        	type_display_name as "Type Display Name",            
        	count(target_type) as "Target Type Count"
        FROM
        	mgmt$target
        WHERE
        	target_type in (            
        		'oracle_database', 'weblogic_j2eeserver',
        		'host','oracle_apache','rac_database','oracle_exadata','exalytics_machine'            
        	)
        GROUP BY
        	target_type,
        	type_display_name

        バインド・パラメータ・マーカーにします

        SELECT
        	target_type as "Target Type",
        	type_display_name as "Type Display Name",            
        	count(target_type) as "Target Type Count"
        FROM
        	mgmt$target
        WHERE
        	target_type = ?
        GROUP BY
        	target_type,
        	type_display_name
      2. 右下隅の「設定」タブで、「入力の追加+」をクリックします。
      3. 無題のウィジェットに対する入力の構成(必須)ダイアログで、次のようにします。
        1. 時間入力: このチェック・ボックスが選択されていないことを確認します。なお、このチェック・ボックスは、時間入力パラメータを指定する場合のみ選択する必要があります。詳細は、「時間入力パラメータを追加しカスタム値を指定するには」を参照してください。
        2. 入力名: 入力の名前を指定します。たとえば、TargetTypeです。
        3. 入力ラベル: 入力の表示名を指定します。入力名がこのフィールドに表示されます。これは、必要に応じて変更できます。
        4. パラメータ索引: SQL問合せにおいて入力パラメータ値をバインド・パラメータ・マーカーにマップするための索引値を指定します。
        5. デフォルト設定: デフォルト設定を確認し、必要に応じて変更します。

          ノート:

          「デフォルト設定」を更新して入力パラメータを構成すると、このウィジェットが別のダッシュボードに追加されるたびに同じ設定が適用されます。ウィジェットの作成およびウィジェット・ライブラリへの追加後に値を編集できる入力パラメータを構成するには、このダイアログの「ウィジェット入力の構成」セクションのオプションを使用します。
          • 必須: 必須のウィジェット入力ではないことを示す場合、選択を解除します。デフォルトでは、このチェック・ボックスは選択されており、入力パラメータを構成しない場合、データはウィジェットに表示されません。
          • 複数値の許可: 入力パラメータに対して複数の値を構成できるようにする場合に選択します。例:
            WHERE
                TARGET_TYPE IN (select /*+ Cardinality(theArray 10)*/ COLUMN_VALUE from (TABLE (CAST(? AS MGMT_MEDIUM_STRING_TABLE)) theArray) )
          • ウィジェット・ユーザーが入力をフィルタにリンクすることを許可します: 固定入力パラメータ値のみを指定する場合、このチェック・ボックスの選択を解除します。このチェック・ボックスはデフォルトで選択されており、選択を解除した場合、入力をフィルタにリンクするために使用できるフィールドはダイアログに表示されません。
          • ウィジェット・ユーザーが入力を指定することを許可します: 入力をフィルタにリンクする場合のみ、このチェック・ボックスの選択を解除します。このチェック・ボックスはデフォルトで選択されており、選択を解除すると、固定入力パラメータ値を指定するために使用できるフィールドはダイアログに表示されません。
        6. ウィジェット入力の構成: 標準入力パラメータの値を指定します。
          • <名前>の入力を既存のフィルタとリンクします: 入力パラメータをウィジェットの既存のフィルタにリンクします。
          • <名前>の入力を指定します: 固定入力値を指定する場合に選択します。
          • 未構成: 入力を構成解除したままにする場合、このオプションを使用します。
        7. 「変更の保存」をクリックします。
    • 時間入力パラメータを追加しカスタム値を指定するには:
      1. カスタムSQL問合せ内の時間入力パラメータに対するバインド・パラメータ・マーカーを追加します。次に例をいくつか示します:
        • WHERE clause
          WHERE mtx.collection_timestamp > CAST(TO_UTC_TIMESTAMP_TZ(?) at time zone tgt.timezone_region AS DATE) 
          AND mtx.collection_timestamp < CAST(TO_UTC_TIMESTAMP_TZ(?) at time zone tgt.timezone_region AS DATE)
          
          この例では、mtx.collection_timestampがターゲット・タイム・ゾーン内にあり、(?で表される開始時間と終了時間の両方の)バインド変数は、collection_timestampと比較するためにターゲット・タイム・ゾーンにキャストされるUTCタイム・ゾーン文字列です。時間入力パラメータに対してWHERE句を構成する場合:
          • 索引付けまたはパーティション化されたタイムスタンプ列に対してファンクションを使用することは避けてください。これは、索引またはパーティションの使用を無効化する可能性があるためです。上限値または下限値でタイムスタンプを制限する場合は、ファンクションを等価演算のその側に適用します。
          • TIMESTAMP値およびDATE値に組込みのタイム・ゾーン情報が含まれていないが、あるタイム・ゾーンから別のタイム・ゾーンにキャストできることを確認します。
        • SELECT clause
          SELECT FROM_TZ(CAST(mmh.rollup_timestamp as TIMESTAMP), mmh.timezone_region) AT TIME ZONE 'UTC' from mgmt$metric_hourly mmh
          WHERE ...

          この例では、列選択文を使用して、ある特定のタイム・ゾーン(timezone_region)の時間をUTCタイム・ゾーンに変換し、TIMESTAMP WITH TIME ZONE形式で値を返します。

          ノート:

          Enterprise Managerの様々な列および表にTIMESTAMPおよびDATEが異なる方法で格納されるため、選択したTIMESTAMP値およびDATE値が、正しいタイム・ゾーンで返されることを確認する必要があります。
      2. 右下隅の「設定」タブで、「入力の追加+」をクリックします。
      3. 無題のウィジェットに対する入力の構成(必須)ダイアログで、次のようにします。
        1. 時間入力: このチェック・ボックスを選択します。
        2. 入力名: このフィールドは編集できず、timeと表示されます。
        3. 入力ラベル: 必要に応じて、デフォルトの表示名であるTimeを編集します。
        4. 開始時間の索引: SQL問合せにおいて時間入力パラメータの開始時間値をバインド・パラメータ・マーカーにマップするための索引値を指定します。
        5. 終了時間の索引: SQL問合せにおいて時間入力パラメータの終了時間値をバインド・パラメータ・マーカーにマップするための索引値を指定します。
        6. デフォルト設定: デフォルト設定を確認し、必要に応じて変更します。

          ノート:

          「デフォルト設定」を更新して入力パラメータを構成すると、このウィジェットが別のダッシュボードに追加されるたびに同じ設定が適用されます。ウィジェットの作成およびウィジェット・ライブラリへの追加後に値を編集できる入力パラメータを構成するには、このダイアログの「ウィジェット入力の構成」セクションのオプションを使用します。

          デフォルト設定の詳細は、「標準入力パラメータを追加しカスタム値を指定するには」を参照してください。

        7. ウィジェット入力の構成: 時間入力パラメータの値を指定します。
          • ダッシュボード時間とのリンク: 時間入力パラメータ値を、ダッシュボード用に選択した時間範囲にリンクする場合に選択します。
          • 時間の入力を指定します: カスタム時間範囲を指定する場合に、このオプションを選択します。
          • 未構成: 入力を構成解除したままにする場合、このオプションを使用します。
        8. 「変更の保存」をクリックします。

    標準または時間入力パラメータをSQL問合せに追加すると、「設定」タブ内の構成済ウィジェット入力に入力パラメータおよび値を表示できます。SQL問合せの横にあるパラメータ索引マッピングに、入力パラメータにマップされたバインド索引を表示することもできます。

  6. SQL問合せに加えた変更を確認し、「実行」をクリックします。
    「実行」をクリックすると、問合せが実行され、データがウィジェットに表示されます。ウィジェットの下に、ウィジェットのRAWデータの様々な属性を含む表が表示され、RAWデータを表示しないをクリックして非表示にできます。
  7. 右下隅にある他のタブを使用して、次のタスクを実行します:

    ノート:

    右上隅にあるJSONをクリックして、JSONエディタの「情報」「ビジュアライゼーション」および「設定」タブで詳細を指定または編集できます。JSONエディタでは、ウィジェットのデータをビジュアル化するための柔軟性が高く、より多くのオプションが提供されますが、ウィジェットJSONの編集をよく理解している場合にのみ使用することをお薦めします。JSONエディタの詳細は、Oracle Supportにお問い合せください。
    • 情報: ウィジェットの名前と説明を追加します。
    • 視覚化: チャート・タイプを選択し、追加オプションを指定または変更して視覚化をカスタマイズします。

      チャート・タイプとして「表」を選択した場合は、一部の列を削除するか、「すべての列」チェック・ボックスを選択してすべての列を表示できます。折れ線チャートなど、Y軸およびX軸を持つチャート・タイプには、次の追加のビジュアライゼーション・オプションがあります。

      • Y軸: Y軸に投影するデータ属性を選択します。Y軸は数値のデータ属性をサポートし、それらのみがリストされます。
      • X軸: X軸に投影するデータ属性を選択します。
      • シリーズ: チャート内の個別のシリーズで描画するデータ属性を選択します。このオプションを使用するには、問合せで特定のデータ属性のGROUP BY句を追加し、ウィジェットのデータのカテゴリを表示します。このオプションは、グラフでも使用できます。
      • 色付け: チャートに色の個別値を表示するデータ属性を選択します。このオプションは、グラフでも使用できます。
      • Y軸のタイトル: Y軸に投影されるデータ属性のタイトルを指定します。
      • 凡例: ウィジェット内の凡例の場所を指定します。このオプションは、グラフでも使用できます。
      • 積上げ: チャートに表示されるデータ属性を色で積み重ねる場合にこのオプションを選択します。
      • 単色を使用: 視覚化に「面」チャートを使用する場合、データの存在を表す面は単色になります。このオプションはデフォルトで選択されます。
  8. 「保存」をクリックしてウィジェットを保存します。

ウィジェットを保存すると、ダッシュボードに追加され、ウィジェットタブにもリストされます。ウィジェットの右上隅にあるアクションアイコンをクリックし、「編集」をクリックして「ウィジェットの編集」タブにウィジェットを表示し、「ウィジェットの編集」をクリックしてウィジェット・ビルダーに移動し、入力パラメータまたはビジュアライゼーション・オプションを編集します。