サンプル SRMDBAPI クエリ

内容
casp1032jp
内容
 
以下のサンプル SQL クエリは、SRMDBAPI で実行できる機能を示すとともに、練習教材としても役立ちます。これらのクエリは、実行できる機能の一部を示しているにすぎません。
注:
各クエリには、初回に MySQL クライアントに返されるデータが多くなりすぎないように、LIMIT X レコード句が含まれています。
MySQL サーバへのログイン
以下のサンプル クエリを実行する前に、srmapi ユーザを使用して、MySQL サーバにログインできます。
Linux の場合:
$SPECROOT/mysql/bin/mysql --defaults-file=../my-spectrum.cnf -usrmapi -psrmapi srmdbapi
Windows の場合:
$SPECROOT/mysql/bin -usrmapi -psrmapi srmdbapi
指定日にすべてのモデル作成イベントとモデル破棄イベントを取得する
クエリを実行して、指定日(2009 年 12 月 29 日)に発生したすべてのモデル作成イベントとモデル破棄イベントを取得できます。結果セットには、イベント時刻、モデル名、イベント タイトル、およびイベント メッセージが含まれます。
mysql>SELECT e.time, m.model_name, de.title, e.event_msg FROM v_fact_event e, v_dim_model m, v_dim_event de WHERE e.model_key = m.model_key AND e.type_dec = de.type_dec AND e.type_dec IN ( 66049,66050 ) AND e.time BETWEEN '2009-12-29 00:00:00' AND '2009-12-29 23:59:59' LIMIT 10;
注:
66049 および 66050 は、モデル作成イベントとモデル破棄イベントに対応する 10 進数の値です。
指定日にすべてのデバイス作成イベントとデバイス破棄イベントを取得する
クエリを実行して、指定日(2009 年 12 月 29 日)に発生したすべてのデバイス作成イベントとデバイス破棄イベントを取得できます。このクエリは、前のクエリに似ていますが、デバイス関連のイベントだけが返されるように、v_dim_model が v_dim_device_model に置換されています。
mysql>SELECT e.time, d.model_name, de.title, e.event_msg FROM v_fact_event e, v_dim_device_model d, v_dim_event de WHERE e.model_key = d.model_key AND e.type_dec = de.type_dec AND e.type_dec IN ( 66049,66050 ) AND e.time BETWEEN '2009-12-29 00:00:00' AND '2009-12-29 23:59:59' LIMIT 10;
グローバル コレクションにおいて指定日にすべてのデバイス作成イベントとデバイス破棄イベントを取得する
クエリを実行して、特定のグローバル コレクションに含まれているデバイスについて、指定日(2009 年 12 月 29 日)に発生したすべてのデバイス作成イベントとデバイス破棄イベントを取得できます。このクエリは、前のクエリに似ていますが、v_dim_global_collection_member ビューが追加され、v_dim_device_model ビューに結合されています。また、このクエリの結果は、選択したコレクション名だけに制限されます。
mysql>SELECT e.time, d.model_name, de.title, e.event_msg FROM v_fact_event e, v_dim_device_model d, v_dim_event de, v_dim_global_collection_member gcm WHERE e.model_key = d.model_key AND e.type_dec = de.type_dec AND d.model_key = gcm.model_key AND gcm.gc_name = 'Your Collection Name' AND e.type_dec IN ( 66049,66050 ) AND e.time BETWEEN '2009-12-29 00:00:00' AND '2009-12-29 23:59:59' LIMIT 10;
特定の日のトップ 20 のイベントのリストを取得する
クエリを実行して、指定日(2009 年 12 月 29 日)に最も頻繁に発生したトップ 20 のイベントのリストを取得できます。このクエリは、(単にデバイスではなく)すべてのモデルが対象です。
mysql>SELECT de.title, COUNT(1) as event_count FROM v_fact_event e, v_dim_event de WHERE e.type_dec = de.type_dec AND e.time BETWEEN '2009-12-29 00:00:00' AND '2009-12-29 23:59:59' GROUP BY de.title ORDER BY event_count DESC LIMIT 20;