Oracle Sensor Edge Server ガイド 10g(10.1.3.1.0) B31872-01 |
|
この章では、センサー・データ・リポジトリについて説明します。この章の内容は次のとおりです。
センサー・データ・リポジトリは、センサー・イベント・データを格納および問合せするためのデータベース表、ビューおよびPL/SQLパッケージの集合です。「Oracle Sensor Edge Serverおよびセンサー・データ・リポジトリの考慮事項」も参照してください。
センサー・データ・リポジトリのリレーショナル表には、実際のイベントの測定値とメタデータが格納されます。リレーショナル・ビューはこれらの表に基づいています。アプリケーションは、これらのリレーショナル・ビューおよびプログラミング・インタフェースを使用します。
センサー・データ・リポジトリ内のリレーショナル表について表4-1に説明します。
センサー・データ・リポジトリのビュー(表4-2を参照)は、格納されているデータの問合せに使用します。
センサー・データ・リポジトリにより定義されたPL/SQLパッケージを使用すると、コンテキスト包含リレーションシップを操作したり、手動でイベントをキューに挿入できます。PL/SQLパッケージ内に指定されているプロシージャを表4-3で説明します。「PL/SQLプログラミング・インタフェース」も参照してください。
プロシージャ | 説明 |
---|---|
on_event |
着信イベントを処理し、パーツを逆アセンブルして様々な表に挿入する方法を選択するプロシージャ |
create_ctxt |
新しいコンテキストを追加するプロシージャ |
update_ctxt_rel |
コンテキスト階層を更新するプロシージャ |
update_ctxt |
コンテキストを更新するプロシージャ |
remove_ctxt |
コンテキストを削除するプロシージャ |
この項では、センサー・データ・リポジトリに対する次の操作と問合せについて説明します。
センサー・データ・リポジトリの作成と削除は、センサー・データ・リポジトリ・スキーマの作成と削除の方法と基本的に同じです。インストール・プロセスの一部としてリポジトリをインストールするように選択した場合、リポジトリは自動的に作成されます。それ以外の場合は、手動でSQLスクリプトを起動してリポジトリをインストールできます。サーバー側には、isArchived
という名前のフラグがあります。サーバーがデータのアーカイブを開始するためには、このフラグがオンになっている必要があります。
Oracle Sensor Edge Serverをアーカイブ・モードに設定した場合、イベントは自動的にセンサー・データ・リポジトリに送信され、Oracle Sensor Edge Serverインスタンスに送信されるすべてのイベントはアーカイブされます。アプリケーションには、edg_sda
パッケージ内のPL/SQLプロシージャを使用してイベントをリポジトリに手動でエンキューするというオプションがあります(「PL/SQLプログラミング・インタフェース」を参照)。
表4-1および表4-2に説明されたビューとリレーショナル表を使用して、センサー・データ・リポジトリを問い合せます。「スキーマ・リファレンス」も参照してください。
この項では、センサー・データ・リポジトリの表、ビューおよびPL/SQLプログラミング・インタフェースを一覧表示します。
センサー・データ・リポジトリには次の表が含まれます。
デバイスが送受信できるイベントのタイプを定義するマッピング表です。
コンテキスト間のリレーションシップが定義された表です。
コンテキストと包含のリレーションシップを定義するためのコンテキスト/包含表です。
デバイス表です。
診断情報を格納するために使用される表です。
(タイプやサブタイプなどの)イベント情報を格納するために使用される表です。
ミドルウェアおよびアプリケーションからのイベント情報を格納するために使用される表です。
警告および内部エラーを格納するために使用される表です。
これまでに測定されたタグのキャッシュ・コピーです。
センサー・データ・リポジトリには次のビューが含まれます。
デバイスの機能のビューです。
SELECT object_id, ref_device, ref_event_info, send_or_recv FROM edg_cap_tab
コンテキストの読取り専用ビューです。ビューは、PL/SQLプロシージャを使用して変更できます。
ビュー | データ型 | NULL |
---|---|---|
1 OBJECT_ID: |
NUMBER(10) |
不可 |
2 NAME: |
VARCHAR2(1024) |
可 |
3 DESCRIPTION: |
VARCHAR2(1024) |
可 |
4 SEND_OR_RECV: |
VARCHAR2(16) |
可 |
SELECT object_id, name, description, is_default FROM edg_ctxt_tab WHERE is_current = 'T' WITH READ ONLY
コンテキストのリレーションシップの読取り専用ビューです。
ビュー | データ型 | NULL |
---|---|---|
1 OBJECT_ID: |
NUMBER(10) |
不可 |
2 CID: |
NUMBER(10) |
可 |
3 PID: |
NUMBER(10) |
可 |
SELECT object_id, cid, pid FROM edg_ctxt_rel_tab WHERE is_current = 'T' WITH READ ONLY
コンテキストのリレーションシップの読取り専用ビューです。
ビュー | データ型 | NULL |
---|---|---|
1 CHILD_ID: |
NUMBER(10) |
可 |
2 PARENT_ID: |
NUMBER(10) |
可 |
3 PARENT_NAME: |
VARCHAR2(1024) |
可 |
4 CHILD_NAME: |
VARCHAR2(1024) |
可 |
SELECT rel.cid child_id, rel.pid parent_id, cP.name parent_name, cC.name child_name FROM edg_ctxt cP, edg_ctxt cC, edg_ctxt_rel rel WHERE cP.object_id = rel.pid AND cC.object_id = rel.cid
デバイス表の読取り専用ビューです。
SELECT "OBJECT_ID", "TAG_ID", "NAME", "DESCRIPTION", "SITE_NAME", "CREATED_BY", "CREATED _TIME", "LAST_STATUS" FROM edg_device_tab WITH READ ONLY
デバイス機能のビューです。
SELECT dev.tag_id device_tag_id, dev.name device_name, dev.description device_desc, dev.site_name site_name, ei.type event_type, ei.subtype event_subtype,ei.description event_desc, cap.send_or_recv send_or_recv FROM edg_cap cap, edg_device dev. edg_event_info ei WHERE cap.ref_device=dev.object_id AND cap.ref_event_info=ei.object_id
デバイスの診断情報が表示されるビューです。
SELECT dev.tag_id device_tag_id, diag.status status, diag.message message, diag.time time, dev.name device_name, dev.description device_desc, dev.site_name site_name FROM edg_diag diag, edg_device dev WHERE dev.object_id=diag.ref_device
デバイスにより取得されたイベントが表示されるビューです。
SELECT dev.name device_name, dev.tag_id device_tag_id, dev.description device_desc, dev.site_name site_name diag.status status, ev.* FROM edg_device dev, edg_event_vw ev WHERE ev.device_id=dev_object_id
最後の診断情報が表示されるビューです。
SELECT dev.tag_id device_tag_id, diag.status status, diag.message message, diag.time time, dev.name device_name, dev.description device_desc, dev.site_name site_name FROM edg_diag diag, edg_device dev WHERE dev.last_status = diag.object_id
デバイスにより実行された最後の測定が表示されるビューです。
SELECT device_name, device_tag_id, device_desc, site_name, event_id, event_tag_id, device_id, event_data, event_time, event_correlation_id, event_name, event_type, event_subtype, event_desc FROM (
診断表の読取り専用ビューです。
SELECT "CONNECT_ID", "REF_DEVICE", "STATUS", "MESSAGE", "TIME", "CREATED_BY", "CREATED_TIME" FROM edg_diag_tab WITH READ ONLY
イベント表の読取り専用ビューです。
SELECT "OBJECT_ID", "TAG_ID", "REF_DEVICE", "REF_CTXT", "SOURCE_NAME", "REF_EVENT_INFO", "CORRELATION_ID" "DATA", "TIME" FROM edg_event_tab WITH READ ONLY
現在有効なイベント・メタデータのビューです。
SELECT object_id, name, type, subtype, registered, description, id_usage, data_usage, data_usage FROM edg_event_tab WHERE is_current='T'
タイプおよびサブタイプが指定されたイベントのビューです。
SELECT ev.object_id event_id, ev.tag_id event_tag_id, ev.ref_device device_id, ev.data event_data, ev.time event_time, ev.correlation_id event correlation_id, md.name event_name, md.type event_type, md.subtype event_subtype, md.description event_desc FROM edg_event_tab ev, edg_event_info md WHERE ev.ref_event_info=md.object_id
タグ画面の読取り専用ビューです。
ビュー | データ型 | NULL |
---|---|---|
1 OBJECT_ID: |
NUMBER(10) |
不可 |
2 TAG_ID: |
VARCHAR2(256) |
可 |
3 LAST_EVENT: |
NUMBER(10) |
可 |
SELECT object_id tag_id, last_event FROM edg_tag_tab WITH READ ONLY
タグを検出した最後のデバイスのビューです。
SELECT devEVENT.* FROM edg_tag, edg_dev_event_vw devEVENT WHERE tag.last_event-devEVENT.event_id
タグを検出したデバイスを基準にしたタグのパスのビューです。
SELECT device_name .device_tag_id .device_desc .site_name .event_id .event_tag_id .device_id .event_data .event_time .event_correlation_id .event_name .event_type .event_subtype .event_desc .next_device_id .next_device_name .next_device_tag_id .(event_end_time-event_time) time_diff FROM ( SELECT edv.*, DECODE( LEAD(edv.device_id) OVER (PARTITION BE edv.event_tag_id ORDER BY edv.event_time), edv.device_id, 0, 1) hop, LEAD(edv.device_id) OVER (PARTITION BY edv.event_tag_id ORDER BY edv.event_time) next_device_id, LEAD(edv.device_name) OVER (PARTITION BY edv.event_tag_id ORDER BY edv.event_time) next_device_id, LEAD(edv.device_TAG_ID) OVER (PARTITION BY edv.event_tag_id ORDER BY edv.event_time) next_device_tag_id, LEAD(edv.event_time) OVER (PARTITION BY edv.event_tag_id ORDER BY edv.event_time) event_end_time FROM edg_dev_event_vw edv ) ev_path WHERE hop=1
センサー・データ・リポジトリには次のPL/SQLパッケージが含まれます。
1: PACKAGE EDG_SDA 1S 2: 3: --- procedure to handle the incoming event 4: --- and sort out how to disassemble the parts 5: --- and put them into various tables. 6: 7: PROCEDURE on_event 8: (p_correlation_id IN edg_event_tab.correlation_id%TYPE 9: .p_source_name IN edg_event_tab.source_name%TYPE 10. .p_site_name IN edg_device_tab.site_name%TYPE 11. .p_device_name IN edg_device_tab.name%TYPE 12: .p_type IN edg_event_info_tab.type%TYPE 13: .p_subtype IN edg_event_info_tab.type%TYPE 14: .p_time IN edg_event_tab.time%TYPE 15: .p_id IN edg_event_tab_tag.id%TYPE 16: .p_data IN edg_event_tab.data%TYPE 17: ); 18: 19: --- procedure to add a new context 20: PROCEDURE create_ctxt 21: (p_object_id) OUT edg_ctxt_tab.object_id%TYPE 22: .p_name IN edg_ctxt_tab.name%TYPE 23: .p_description IN edg_ctxt_tab.description%TYPE 24: .p_parent_ctxt_tab.object_id%TYPE 25: ); 26: 27: ---procedure to add a new context 28: PROCEDURE create_ctxt 29: (p_name IN edg_ctxt_tab.name%TYPE 30: .p_description IN edg_ctxt_tab.description%TYPE 31: .p_parent_ctxt_id IN edg_ctxt_tab.object_id%TYPE 32: ); 33. 34: --- procedure to update the context hierarchy 35: PROCEDURE update_ctxt_rel 36: (p_cid IN edg_ctxt_rel_tab.cid%TYPE 37: .p_cid IN edg_ctxt_rel_tab.pid%TYPE 38: ); 39: 40: --- procedure to update the context 41: PROCEDURE update_ctxt 42: (p_object_id IN edg_ctxt_tab.object_is%TYPE 43: .p_name IN edg_ctxt_tab.name%TYPE 44: .p_description IN edg_ctxt_tab.description%TYPE 45: ); 46: 47: --- procedure to remove a context 48: PROCEDURE remove_ctxt 49: (p_object_id IN edg_ctxt_tab.object_id%TYPE 50: 51: END EDG_SDA;
|
![]() Copyright © 2006 Oracle Corporation. All Rights Reserved. |
|