1 データ・カートリッジの概要
Oracle Stream Explorerデータ・カートリッジはOracle Continuous Query Language (Oracle CQL)を拡張し、ドメイン固有抽象データ型(単純型、複合型、配列型およびドメイン固有関数の形式)をサポートします。
この章の内容は次のとおりです。
1.1 Oracle CQLデータ・カートリッジ・フレームワーク
Oracle CQLデータ・カートリッジ・フレームワークにより、任意のドメインのデータ型および関数をOracle CQL言語に密接に統合できるようになります。密接な統合により、Oracle CQLネイティブ型および組込み関数を使用するのと同じ方法で、Oracle CQL問合せでデータ・カートリッジ拡張機能を使用できます。このフレームワークは、単純データ型と複合データ型の両方をサポートしています。複合データ型により、オブジェクト指向プログラミングが可能になります。
現在、Oracle Stream Explorerは次のデータ・カートリッジを提供しています。
-
Oracle JDBCデータ・カートリッジ: このデータ・カートリッジにより、Oracle CQL問合せおよびビューの複数の表およびデータ・ソースに対して、Oracle CQLネイティブ型と同じように、任意のSQL関数を統合できるようになります。
-
Oracle Spatial: このデータ・カートリッジは、Oracle CQL問合せおよびビューで、Oracle CQLネイティブ型と同じように、Oracle Spatialの型、メソッド、フィールドおよびコンストラクタを公開します。
-
Hadoopビッグ・データ・カートリッジ: このデータ・カートリッジは、Hadoop分散ファイル・システム(HDFS)の大容量データにアクセスするためにOracle CQLプロセッサを拡張します。
-
NoSQLDBビッグ・データ・カートリッジ: このカートリッジは、Oracle NoSQL Databaseの大容量データにアクセスするためにOracle CQLプロセッサを拡張します。
-
Oracle Javaデータ・カートリッジ: このデータ・カートリッジは、Oracle CQL問合せおよびビューで、Oracle CQLネイティブ型と同じように、Javaの型、メソッド、フィールドおよびコンストラクタを公開します。
1.2 名前
各データ・カートリッジは、データ・カートリッジ実装のネームスペースを定義する一意のカートリッジ名で識別されます。データ・カートリッジ名を使用して、型、メソッド、フィールドおよびコンストラクタへの参照の曖昧性を解消します。
Oracle CQLを使用してデータ・カートリッジの型、メソッド、フィールドおよびコンストラクタにアクセスする方法は、すべてのデータ・カートリッジ実装で同じです。たとえば、データ・カートリッジ関数はfunc_expr
で参照でき、オプションでリンク名を使用できます。各データ・カートリッジでアクセスするデータは、各データ・カートリッジ実装に固有です。詳細は、次を参照してください。
注意:
Oracleデータ・カートリッジの型名を単純化するには、『Oracle Fusion Middleware Oracle Stream Analytics Oracle CQL言語リファレンス』で説明しているエイリアスを使用できます。
1.3 アプリケーション・コンテキスト
データ・カートリッジの実装によっては、データ・カートリッジのインスタンスが提供する関数および型にOracle Stream Analyticsサーバーが伝播させるアプリケーション・コンテキストを定義できる場合があります。たとえば、Oracle Stream Analyticsサーバー・リソースまたはデフォルトのデータ・カートリッジ・オプションを構成して、このアプリケーション・コンテキスト情報を特定のデータ・カートリッジ・インスンタンスに関連付けることができます。
データ・カートリッジの実装によっては、データ・カートリッジのインスタンスおよびそのインスタンスが提供する複合オブジェクトにOracle Stream Analyticsサーバーが伝播させるアプリケーション・コンテキストを定義できる場合があります。
次の図はこのアプリケーション・コンテキストを説明しています。
たとえば、Oracle Stream Analyticsサーバー・リソースまたはデフォルトのデータ・カートリッジ・オプションを構成して、このアプリケーション・コンテキスト情報を特定のデータ・カートリッジ・インスンタンスに関連付けることができます。
次の例が示すように、Oracle Stream Analyticsアプリケーションのイベント処理ネットワーク(EPN)アセンブリ・ファイルでデータ・カートリッジ実装で提供される要素(DATA_CARTRIDGE_CONTEXT
と呼ぶ)を使用して、Oracle Spatialデータ・カートリッジのインスタンスのアプリケーション・コンテキストを定義します。
<DATA_CARTRIDGE_CONTEXT
id="MyContext"ATTRIBUTE
="" ... />
ここでは、DATA_CARTRIDGE_CONTEXT
はデータ・カートリッジ実装で提供される要素であり、ATTRIBUTE
はデータ・カートリッジが構成で公開する1つ以上の属性です。
Oracle CQL問合せでは、DATA_CARTRIDGE_NAME
を単独で使用するのではなく、DATA_CARTRIDGE_CONTEXT
(次の例のMyContext
)のid
をリンクで使用します。Oracle Stream Analyticsサーバーは、コンテキスト・オブジェクトをデータ・カートリッジ・インスタンス内に設定し、データ・カートリッジ複合オブジェクトを検索します。
注意:
id
値はDATA_CARTRIDGE_NAME
と異なる必要があります。
次の例では、デフォルト・リンク(@DATA_CARTRIDGE_NAME
)により、デフォルト・アプリケーション・コンテキストがmyMethod
呼出しに伝播されます。
<view id="view1">
select com.mypackage.MyType.myMethod@DATA_CARTRIDGE_NAME
( ... )
from S[NOW]
</view>
次の例では、リンク(@MyContext
)によりユーザー定義アプリケーション・コンテキストがmyMethod
呼出しに伝播されます。
<view id="view1"> select com.mypackage.MyType.myMethod@MyContext(...) from S[NOW] </view>
次のデータ・カートリッジのアプリケーション・コンテキストを構成できます。
-
Oracle空間データ・カートリッジ
-
Oracle JDBCデータ・カートリッジ