機械翻訳について

1 OLAP Java APIの概要

この章では、Oracle OLAP Javaアプリケーション・プログラミング・インタフェース(API)について説明します。 この章の内容は次のとおりです。

1.1 OLAP Java APIの概要

Oracle OLAP Java APIは、OLAPオプションを指定したOracle Databaseのオンライン・アナリティク処理(OLAP)テクノロジへのアクセスを提供するアプリケーション・プログラミング・インタフェースです。 このトピックでは、OLAP Java APIクライアント・アプリケーションが実行できる操作、OLAP Java APIのクラスの説明、ディメンション・データ・モデルのオブジェクトの説明、およびオンライン・アナリティク処理のためのデータの編成について説明します。

OLAPテクノロジの利点の説明は、Oracle OLAPユーザーズ・ガイドを参照してください。 このドキュメントでは、Oracle OLAPがビジネス・インテリジェンスおよび高度なアナリティク・アプリケーションによる多次元データのアナリティクのために提供する機能について説明します。 ディメンション・データ・モデルについて詳しく説明し、Oracle OLAPに関連するデータベースの管理タスクについて説明します。

1.1.1 OLAP Java APIでできること

OLAP Java APIを使用して、次の操作を実行するクライアント・アプリケーションを開発できます。

  • Oracle DatabaseインスタンスへのJDBC接続で1つ以上のユーザー・セッションを確立します。 複数のユーザー・セッションで、同じ接続とメタデータ・オブジェクトの同じキャッシュを共有できます。

  • データベースを使用してOLAPトランザクションを管理します。

  • OLAPメタデータ・オブジェクトを使用してディメンション・データ・モデルを実装します。

  • アナリティク・ワークスペースを作成および保守します。

  • 論理メタデータ・オブジェクトを作成し、リレーショナル・ソースにマップする。

  • メタデータ・オブジェクトをアナリティック・ワークスペース、またはリレーショナル表およびリレーショナル・ビューとしてデプロイし、そのオブジェクトをデータベースにコミットする。

  • メタデータを探索して、表示または分析に使用できるデータを検出します。

  • 多次元データのアナリティク問合せを作成します。 エンド・ユーザーが、ユーザーのニーズに応じてデータを指定および操作する問合せ(データの選択、集計、計算など)を作成できるようにします。

  • アプリケーション・ユーザーが分析を絞り込むため、問合せを完全に再定義するのではなく、問合せを変更します。

  • 多次元形式での表示用に構成された問合せ結果を取得する。

これらの操作の詳細は、OLAP Java APIアプリケーションが実行するタスクを参照してください。

1.1.2 OLAP Java APIでのクラスの説明

OLAP Java APIには、次のタイプのオブジェクトを表すクラスがあります。

  • ユーザー・セッション

  • トランザクション

  • メタデータ・オブジェクト

  • アイテムとプロセス、仕様、コマンドのビルド

  • 問合せ

  • 問合せのデータを取得するカーソル

  • リレーショナル表またはビュー内の列などのデータ・オブジェクトを指定する式、またはデータを操作する関数またはコマンドを指定する式

「表1-1」は、OLAP Java APIクラスの大部分を含むパッケージをリストします。 これらのパッケージは、oracle.olapiパッケージの下にあります。 この表には、パッケージの内容の簡単な説明が含まれています。

表1-1 oracle.olapiの下のOLAP Java APIのパッケージ

パッケージ 説明

data.cursor

Sourceオブジェクトによって指定されたデータを取得するカーソル・マネージャおよびカーソルを表すクラスが含まれます。 Cursorオブジェクトの詳細は、「カーソル・クラスおよび概念の理解」および「問合せ結果の取得中」を参照してください。

data.source

データ・ソースおよびカーソル仕様を表すクラスが含まれます。 Sourceオブジェクトを使用して、データ・ストアの問合せを作成します。 Templateクラスを使用すると、動的に変更できる問合せを表すSourceオブジェクトを増分的にビルドできます。 Sourceオブジェクトの詳細は、「Sourceオブジェクトの理解」および「Sourceメソッドを使用した問合せの作成」を参照してください。 Templateオブジェクトの詳細は、「動的問合せの作成」を参照してください。

metadata

metadata.deployment

metadata.mapping

metadata.mdm

メタデータ・オブジェクトを表すクラス、メタデータ・オブジェクトをリレーショナル・データ・ソースにマップするクラス、およびメタデータ・オブジェクトをアナリティク・ワークスペースまたはリレーショナル・データベース構造にデプロイするクラスが含まれます。 これらのパッケージについては、「OLAP Java APIメタデータの理解」を参照してください。 これらのパッケージでのクラスの使用方法の詳細は、「メタデータの検出」および「メタデータおよびアナリティク・ワークスペースの作成」を参照してください。

resource

Exceptionクラスのメッセージの国際化をサポートするクラスが含まれます。

session

Oracleデータベースへの接続におけるセッションを表すクラスが含まれます。

syntax

SQLのような式をビルドするための構文を実装するアナリティク・ワークスペース・オブジェクトおよびクラスをOracle OLAPでどのようにビルドするかを指定する項目およびコマンドを表すクラスが含まれます。 Expressionオブジェクトは、表やビュー内の列などのリレーショナル・データ・ソースへのメタデータ・オブジェクトのマッピングに使用します。 また、Expressionオブジェクトを使用して、一部のメタデータ・オブジェクトの計算およびアナリティク操作を指定します。

transaction

Oracle Databaseインスタンス内のOracle OLAPとのトランザクションを表すクラスが含まれます。 Transactionオブジェクトを使用して、データベースへの変更をコミットします。 Transactionオブジェクトの詳細は、「TransactionProviderの使用」を参照してください。

OLAP Java APIには、oracle.expressパッケージの下に編成されたパッケージもあります。 これらのパッケージは、APIの最も古いバージョンからの日付です。 これらのパッケージに残っているクラスは、Oracle OLAPとクライアント・アプリケーション間の相互作用中に発生する例外のほとんどがExceptionクラスです。

OLAP Java APIソフトウェアの入手、およびこれを使用してアプリケーションを開発するための要件については、「開発環境の設定」を参照してください。

1.1.3 ディメンション・データ・モデルの説明

データ・ウェアハウスおよびOLAPアプリケーションは、データの多次元ビューに基づいています。 このビューは、次のディメンション・オブジェクトを含むディメンション・データ・モデルに実装されます。

キューブ

キューブは、同じディメンション・セットを持つメジャーのコンテナです。 キューブは通常、単一のリレーショナル・ファクト表またはビューに対応します。 キューブのメジャーにはファクトが含まれ、ディメンションはファクト・データにシェイプを与えます。 通常、ディメンションはキューブのエッジを形成し、メジャー・データはキューブの本文になります。 たとえば、販売された製品ユニットのデータを、時間、製品、顧客およびチャネル・ディメンションのメンバーの値を含み、その本文に販売ユニットの数量および販売金額のメジャーの値が含まれているキューブに編成できます。

キューブ・エッジのOLAP概念は、OLAP Java APIのメタデータ・オブジェクトでは表現されませんが、多くの場合、エッジはOLAP Java APIを使用するアプリケーションの設計に組み込まれます。 各エッジには、1つ以上のディメンションのメンバーの値が含まれます。 キューブのエッジ数に制限はありませんが、多くの場合、データは表示の目的で3つのエッジ(行エッジ、列エッジおよびページ・エッジ)に沿って編成されます。

メジャー

メジャーには、キューブ内のファクト・データが含まれます。 メジャー値はディメンション別に編成および識別されます。 通常、メジャーは多次元です。 各メジャー値は、ディメンション・メンバーの一意のセットによって識別されます。 ディメンション・メンバーのこのセットは、「タプル」と呼ばれます。

ディメンション

ディメンションには、メジャー内のデータを識別および分類する一意の値のリストが含まれます。 一般的に使用されるディメンションは、顧客、製品および時間です。 通常、ディメンションには、ディメンション・メンバーを親子関係に編成する1つ以上の階層があります。

エンド・ユーザーは、データに対して実行するディメンション・メンバー、メジャーおよび計算を指定することで、ビジネス質問を策定し、問合せに対する回答を取得します。 たとえば、月別にデータを分類する時間ディメンション、ユニット・アイテム別にデータを分類する製品ディメンション、および月別に販売される製品ユニットの数量のデータを含むメジャーを使用すると、製品ユニットの売上が1月または6月に高かったかどうかを尋ねる問合せを策定できます。

階層

階層は、ディメンション・メンバーを親子関係に編成するディメンションのコンポーネントです。 通常、クライアント・アプリケーションのユーザー・インタフェースでは、エンド・ユーザーは親と子の間をドリルダウンまたはドリル・ダウンして階層を拡張または縮小できます。 親ディメンション・メンバーのメジャー値は、子の値の集計です。

1つのディメンションに複数の階層を設定できます。 たとえば、時間ディメンションには、カレンダ年の階層と会計年度の階層を設定できます。 階層は、レベルベースまたは値ベースにできます。

レベルベースの階層では、親はその親の子よりも高いレベルにある必要があります。 キューブでは、通常、親のメジャー値は子の値から集計されます。 たとえば、時間ディメンションには、年、四半期および月のレベルがあります。 月レベルには、最も詳細なデータであるベース・データが含まれます。 四半期のメジャー値は、四半期の子である月の値の集計で、年のメジャー値は年の子である四半期の集計です。 通常、各レベルはリレーショナル・ディメンション表の異なる列にマッピングされます。

値ベースの階層では、親ディメンション・メンバーと子ディメンション・メンバーは、通常、リレーショナル表の同じ列から取得されます。 別の列は、メンバーの親を示します。 たとえば、値階層には会社のすべての従業員が含まれ、1人の従業員を持つ各従業員のマネージャを識別できます。 マネージャを含むすべての従業員は、同じ列から取得されます。 別の列には、従業員のマネージャが含まれます。

レベル

レベルは、レベルベースの階層のコンポーネントです。 複数の階層に1つのレベルを関連付けることができます。 ディメンション・メンバーは1つのレベルにのみ属することができます。

レベルは、通常、ディメンション表またはビュー内の列に対応します。 ベース・レベルは主キーです。

属性

属性には、ディメンションのメンバーに関連する情報が格納されます。 エンド・ユーザーは、属性を使用してデータを選択できます。 たとえば、エンド・ユーザーは、各製品のわかりやすい名前を持つ属性を使用して製品のセットを選択できます。 属性はディメンションに含まれます。

問合せ

問合せは、特定のデータ・セットの仕様です。 OLAP Java APIの「問合せ」という用語は、データ・セットを指定するSourceオブジェクトを指し、データを使用して実行する集計、計算またはその他の操作を含めることができます。 データおよびデータに対する操作によって、問合せの結果セットが定義されます。 このドキュメントでは、一般的な用語「問合せ」Sourceオブジェクトを表します。

APIのoracle.olapi.syntaxパッケージには、Queryクラスがあります。 Queryは、リレーショナル表、SQL SELECT文またはOLAP関数に類似した複数行の複数列結果セットを表します。 Queryオブジェクトを使用して、ディメンションまたはメジャーをリレーショナル表またはビューにマップします。

1.1.4 ディメンション・データ・モデルの実装

OLAP Java APIでは、ディメンション・データ・オブジェクトはMultidimensional Model (MDM)クラスで表されます。 これらのクラスは、oracle.olapi.metadata.mdmパッケージにあります。 関連するクラスは、oracle.olapi.metadataパッケージおよびその下にある他のパッケージにあります。 これらのクラスの詳細は、「OLAP Java APIメタデータの理解」を参照してください。

1.1.5 OLAPのデータの編成

OLAP Java APIを使用すると、Javaアプリケーション(アプレットを含む)がOracleデータ・ウェアハウスにあるデータにアクセスできるようになります。 データ・ウェアハウスは、トランザクション処理ではなく、問合せおよび分析用に設計されたリレーショナル・データベースです。 ウェアハウス・データは、多くの場合、リレーショナル・データベースのディメンション・データ・モデルであるスター・スキーマに準拠します。 スター・スキーマは、1つ以上のファクト表と1つ以上のディメンション表で構成されます。 ファクト表には、ディメンション表への外部キーを含む列があります。 通常、データ・ウェアハウスは、抽出変換トランスポート(ETT)ツールによってトランザクション処理データベースから作成されます。

OLAP Java APIアプリケーションでデータ・ウェアハウス内のデータにアクセスするには、データベース管理者がOracle OLAPでサポートされている編成に従ってそのデータ・ウェアハウスを構成する必要があります。 サポートされている編成にはスター・スキーマなどがあります。

データがウェアハウスに編成されたら、OLAP Java APIアプリケーションを使用して、キューブ、メジャー、ディメンションなどのOLAPディメンション・データ・モデルを設計し、モデルを実装する論理OLAPメタデータ・オブジェクトを作成できます。 メタデータ・オブジェクトをウェアハウス内のデータにマップし、アナリティク・ワークスペースをビルドします。 アナリティク・ワークスペースをビルドすると、OLAPメタデータ・オブジェクトが表すデータがOLAPビューおよびその他の記憶域構造に移入されます。 Analytic Workspace Managerを使用して、同じタスクを実行することもできます。

OLAP Java APIアプリケーションは、Analytic Workspace ManagerまたはOLAP Java APIを使用して作成されたOLAPメタデータ・オブジェクトを取得できます。 アプリケーションは、これらのメタデータ・オブジェクトを使用して、ウェアハウス内のデータを操作する問合せを作成します。

アナリティク・ワークスペース内のウェアハウス・データのコレクションは、OLAP Java APIがアクセス権を付与するデータ・ストアです。 もちろん、ユーザーがアクセスできるデータの範囲は、データベース管理者によってユーザーに付与される権限によって制限されます。

データおよびメタデータが適切に準備されていることを確認するだけでなく、アプリケーション・ユーザーがデータ・ストアへのJDBC接続を行うことができ、ユーザーがデータへのアクセス権を付与するデータベース権限を持っていることを確認する必要があります。 接続の確立については、「メタデータの検出」を参照してください。

1.2 OLAP Java APIを使用したデータへのアクセス

Oracle OLAPメタデータ・オブジェクトは、クライアント・アプリケーションで使用可能なデータを編成および記述します。 メタデータ・オブジェクトには、データのデータ型など、その他の情報も含まれます。 ただし、メタデータ・オブジェクトから直接データを取得することはできません。 必要なデータを指定するには、問合せを作成する必要があります。 データの指定では、通常、1つ以上のディメンション・メンバー値を指定する必要があります。 指定したデータを取得するには、Cursorを作成します。 このトピックでは、これらのアクションについて簡単に説明します。

OLAPメタデータ・オブジェクトに含まれるデータを問い合せるもう1つの方法は、Oracle OLAPがメタデータ・オブジェクト用に作成するビューのSQL問合せを使用することです。 これらのビューの問合せの詳細は、「OLAP Java APIメタデータの理解」OLAPビューの使用を参照してください。

1.2.1 問合せの作成

問合せは、oracle.olapi.data.source.Sourceオブジェクトで表されます。 メタデータ・オブジェクトからSourceを取得し、取得するデータの指定にそのSourceオブジェクトを使用します。 Sourceクラスには、データに対する操作を選択および実行するためのメソッドがあります。 メソッドを使用して、ユーザーが必要とするあらゆる方法でデータを操作できます。 Sourceオブジェクトの詳細は、「Sourceオブジェクトの理解」および「Sourceメソッドを使用した問合せの作成」を参照してください。

1.2.2 ディメンション・メンバーの指定

Oracle OLAPディメンションのメンバーは通常、1つ以上の階層に編成されます。 階層には、レベルに基づいた親子関係を持つものや、値に基づいた親子関係を持つものがあります。 各ディメンション・メンバーの値は一意である必要があります。

OLAP Java APIは、3つの部分からなる形式を使用してディメンション・メンバーを一意に識別します。 書式には、階層、レベルおよびディメンション・メンバーの値が含まれ、ディメンション内の一意の値が識別されます。 一意の値の最初の部分は階層オブジェクトの名前、2番目の部分はレベル・オブジェクトの名前、3番目の部分はレベル内のメンバーの値です。 一意の値の部分は、値の区切り文字列で区切られます。これは、デフォルトでは二重コロン( ::)です。 次に、TIME_AWJという名前のディメンションのCALENDAR_YEARという名前の階層内のYEARという名前のレベルの一意のメンバー値の例を示します。

  CALENDAR_YEAR::YEAR::CY2001

一意値の3番目の部分がローカル値です。 前述の例のローカル値では、暦年2001が識別されます。

1.2.3 カーソルの作成

Sourceで指定されたデータを取得するには、そのSourceoracle.olapi.data.cursor.Cursorを作成します。 次に、このCursorを使用して、データ・ストアに対してデータをリクエストおよび取得します。 各フェッチ操作でCursorが取得するデータの量を指定できます(たとえば、ユーザー・インタフェースで40セル表を満たすのに十分な量)。 Oracle OLAPは、アプリケーション用に取得したデータ・ブロックのタイミング、サイズ設定およびキャッシュを効率的に管理するため、その必要はありません。 Cursorオブジェクトの詳細は、「カーソル・クラスおよび概念の理解」および「問合せ結果の取得中」を参照してください。

1.3 OLAP Java APIの例のサンプル・スキーマ

このドキュメントのOLAP Java APIコードの例は、Oracle Technology Network (OTN) webサイトで使用可能な一連のサンプル・プログラムからの抜粋です。 CreateAndBuildAW.javaの例には、アナリティク・ワークスペースをビルドおよびビルドするメソッドがあります。 SpecifyAWValuesという別の例では、CreateAndBuildAW.javaのメソッドをコールし、メタデータ・オブジェクトの名前や、メタデータ・オブジェクトをデータ・ソースにマッピングするためのリレーショナル表の列の名前などの値を指定します。 これらの例で生成されるアナリティク・ワークスペースの名前はGLOBAL_AWJです。 その他の例では、アナリティク・ワークスペースを問い合せます。 アナリティク・ワークスペース内のメタデータ・オブジェクトは、グローバル・スキーマ内のリレーショナル表の列にマップされます。

OTN webサイトから、グローバル・スキーマを作成するSQLスクリプトを含むファイルおよびサンプル・プログラムを含むファイルをダウンロードできます。 OTNのwebサイトは、http://www.oracle.com/technetwork/database/options/olap/index.htmlにあります。

いずれかのファイルを取得するには、webページの「ダウンロード」セクションで「サンプル・コードとスキーマ」を選択します。 サンプル・スキーマを取得するには、「グローバル・スキーマ11g」を選択します。 サンプル・プログラムを取得するには、「ドキュメント用のプログラム例」を選択し、「11gリリース2 (11.2)のプログラムの例のダウンロード」を選択して、例を含む圧縮ファイルをダウンロードします。

サンプル・プログラムは、開発環境に容易に追加できるパッケージ構造になっています。 クラスには、サンプル・プログラムのクラスが拡張するベース・クラスと、サンプル・プログラムのクラスが使用するユーティリティ・クラスが含まれます。 ベース・クラスはBaseExample11g.javaです。 ユーティリティ・クラスには、Context11g.javaおよびCursorPrintWriter.javaが含まれます。 Context11g.javaクラスには、メタデータ・オブジェクトを格納するOracle Databaseインスタンスへの接続を作成するメソッド、格納されたメタデータ・オブジェクトを戻すメソッド、およびCursorオブジェクトを作成するメソッドがあります。 CursorPrintWriter.javaクラスは、Cursorオブジェクトの内容を表示するメソッドを持つPrintWriterです。

OLAPメタデータ・オブジェクトは、CreateAndBuildAW.javaおよびSpecifyAWValuesプログラムによって作成および構築されます。 これらのメタデータ・オブジェクトには、次のものが含まれます:

  • GLOBAL_AWJ、他のオブジェクトを含むアナリティク・ワークスペースです。

  • PRODUCT_AWJ、製品のディメンションです。 PRODUCT_PRIMARYという名前の階層が1つあります。 階層の最下位レベルは製品の項目(Item)の識別子を持ち、より高いレベルは製品のファミリ(Family)、クラス(Class)および製品の合計(Total Product)の識別子を持ちます。

  • CUSTOMER_AWJ、顧客のディメンションです。 SHIPMENTSとMARKETSという2つの階層があります。 各階層の最下位レベルは顧客の識別子を持ち、より高いレベルはウェアハウス(Warehouse)、地域(Region)および顧客の合計(Total Customer)と、アカウント(Account)、市場セグメント(Market Segment)および市場の合計(Total Market)の識別子をそれぞれ持ちます。

  • TIME_AWJ、時間値のディメンションです。 CALENDAR_YEARという名前の階層があります。 最下位レベルは月(Month)の識別子を持ち、その他のレベルは四半期(Quarter)および年(Year)の識別子を持ちます。

  • CHANNEL_AWJ、販売チャネルのディメンションです。 CHANNEL_PRIMARYという名前の階層が1つあります。 最下位レベルは販売チャネル(Channel)の識別子を持ち、上位のレベルはチャネルの合計(Total Channel)の識別子を持ちます。

  • UNITS_CUBE_AWJ、これはCOST、SALESおよびUNITSのメジャーを格納するキューブです。 COSTには、製品ユニットの原価の値があります。 SALESには、製品ユニットの売上に対するドル金額があります。 UNITSには、販売された製品ユニットの数量の値があります。 このキューブは、4つのすべてのディメンションによってディメンション化されます。 キューブの集計メソッドはSUMで、各親の値は親の子の値の合計になります。

  • PRICE_CUBE_AWJ、メジャーUNIT_COSTおよびUNIT_PRICEを含むキューブです。 UNIT_COSTには単位のコストがあります。 UNIT_PRICEには単位の価格があります。 キューブは、PRODUCT_AWJおよびTIME_AWJディメンションによってディメンション化されます。 キューブの集計メソッドはAVGで、各親の値は親の子の値の平均です。

アナリティク・ワークスペースのOLAPメタデータを検出するプログラムの例は、「メタデータの検出」を参照してください。

1.4 OLAP Java APIアプリケーションが実行するタスク

OLAP Java APIを使用するクライアント・アプリケーションでは、通常、次のタスクが実行されます:

  1. データ・ストアに接続し、DataProviderおよびUserSessionを作成します。

  2. メタデータ・オブジェクトの作成または検出

  3. 必要に応じて、メタデータ・オブジェクトをデプロイ、マップおよびビルドします。

  4. データを選択および操作する問合せの指定

  5. 問合せ結果の取得

このトピックの残りの部分では、これらのタスクについて簡単に説明し、このガイドの残りの部分では、これらのタスクの実行方法について詳しく説明します。

タスク1: データ・ストアへの接続およびDataProviderおよびUserSessionの作成

データ・ストアに接続するには、ターゲットのOracle Databaseインスタンスに関する情報を特定し、JDBC接続メソッドでこの情報を指定します。 接続を確立したら、DataProviderを作成し、それと接続を使用してUserSessionを作成します。 DataProviderおよびUserSessionの接続および作成の詳細は、「メタデータの検出」Oracle OLAPへの接続を参照してください。

タスク2: メタデータ・オブジェクトの作成または検出

DataProviderを使用して、MdmMetadataProviderを取得します。 MdmMetadataProviderは、データ・ストア内のすべてのメタデータ・オブジェクトへのアクセスを提供します。 次に、MdmMetdataProvidergetRootSchemaメソッドをコールして、MdmRootSchemaオブジェクトを取得します。 MdmRootSchemaオブジェクトには、データベース内のすべてのOLAPメタデータ・オブジェクトが含まれます。 MdmRootSchemaから、現在のユーザーがアクセス権限を持つスキーマのMdmDatabaseSchemaオブジェクトを取得します。 MdmDatabaseSchemaは、SQL文SELECT username FROM all_usersによって返される名前付きOracle Databaseユーザーを表します。

MdmDatabaseSchemaから、スキーマが所有する既存のメタデータ・オブジェクトを検出するか、新しいメタデータ・オブジェクトを作成できます。 getMeasuresgetDimensionsなどのメソッドは、MdmDatabaseSchemaが所有するすべてのメジャーまたはディメンションを取得します。 findOrCreateAWfindOrCreateCubeなどのメソッドは、アナリティク・ワークスペースまたはキューブ(存在する場合)を取得するか、存在しない場合は作成します。

アナリティク・ワークスペース、キューブ、ディメンションなど、MdmDatabaseSchemaに含まれる最上位のメタデータ・オブジェクトから、そのオブジェクトに含まれるオブジェクトを取得できます。 たとえば、MdmPrimaryDimensionから、それに関連付けられている階層、レベルおよび属性を取得できます。 ユーザーが使用できるメタデータ・オブジェクトを決定したら、データの選択および操作のために、関連するオブジェクトのリストをユーザーに提示できます。

メタデータ・オブジェクトの説明は、「OLAP Java APIメタデータの理解」を参照してください。 使用可能なメタデータを検出する方法については、「メタデータの検出」を参照してください。

タスク3: オブジェクトのデプロイ、マップおよびビルド

新しいMdmCubeまたはMdmPrimaryDimensionを作成する場合は、アナリティク・ワークスペース・オブジェクトとして、またはリレーショナルOLAP (Rolap)オブジェクトとしてデプロイする必要があります。 キューブをデプロイするには、findOrCreateAWCubeOrganizationなどのMdmCubeメソッドをコールします。 dimensionをデプロイするには、findOrCreateAWPrimaryDimensionOrganizationなどのMdmPrimaryDimensionメソッドをコールします。

データを表す新しいメタデータ・オブジェクトを作成する場合は、メタデータ・オブジェクトをリレーショナル・ソース表またはビューにマップするExpression、またはOracle OLAPがデータの生成に使用するExpressionを指定する必要があります。 アナリティク・ワークスペースに含まれているオブジェクトの場合、マッピング後にメタデータ・オブジェクトをビルドできます。 メタデータの作成、メタデータ・オブジェクトのデプロイ、マッピングおよびビルドの詳細は、「メタデータおよびアナリティク・ワークスペースの作成」を参照してください。

タスク4: 問合せによるデータの選択および計算

OLAP Java APIアプリケーションでは、データ・ストアに対する問合せを作成できます。 一般的なアプリケーション・ユーザー・インタフェースは、ユーザーがデータを選択し、データを使用して実行する操作を指定する方法を提供します。 次に、その指定内容がデータ操作コードによってデータ・ストアに対する問合せに変換されます。 問合せは、ディメンション・メンバーの選択と同じように単純にすることも、ディメンション・メンバーの選択によって指定されるメジャー値を含む複数の集計および計算を含む複雑な問合せにすることもできます。

問合せを表すOLAP Java APIオブジェクトは、Sourceです。 データを表すメタデータ・オブジェクトは、MdmSourceクラスの拡張です。 MdmMeasureMdmPrimaryDimensionなどのMdmSourceから、Sourceオブジェクトを取得できます。 Sourceオブジェクトのメソッドを使用すると、Sourceの要素の選択を指定する他のSourceオブジェクトを生成したり、Sourceの値に対して実行する計算またはその他の操作を指定できます。

単純なユーザー・インタフェースを実装する場合、Sourceオブジェクトのメソッドのみを使用して、ユーザーがインタフェースで指定するデータを選択および操作できます。 ただし、ユーザーの複数ステップ選択プロシージャを提供し、問合せを変更したり、選択内容の個々のステップを元に戻す機能を提供する場合は、Templateクラスを設計および実装する必要があります。 Templateのコード内では、Sourceクラスのメソッドを使用しますが、Templateクラス自体を使用すると、最も複雑な問合せでも動的に変更および調整できます。 また、汎用Templateクラスを記述し、アプリケーションの様々な部分で再利用できます。

Sourceオブジェクトの操作の詳細は、「Sourceオブジェクトの理解」を参照してください。 Templateオブジェクトの操作の詳細は、「動的問合せの作成」を参照してください。

タスク5: 問合せ結果の取得

OLAP Java APIアプリケーションのユーザーがデータの選択、計算、結合および操作を行う場合、作業の結果も確認する必要があります。 そのため、アプリケーションは、データ・ストアから問合せの結果セットを取得し、データを多次元形式で表示する必要があります。 OLAP Java APIを使用して問合せの結果セットを取得するには、問合せを指定するSourceCursorを作成します。

Oracle OLAPが問合せ用に生成するSQLを取得することもできます。 そのためには、Cursorを作成するかわりに、SourceSQLCursorManagerを作成します。 SQLCursorManagergenerateSQLメソッドは、Sourceで指定されたSQLを返します。 その後、OLAP Java APIの外部でデータを取得できます。

OLAP Java APIは、データの多次元ビューを処理するように設計されているため、Sourceは多次元結果セットを持つことができます。 たとえば、Sourceは、4つのMdmPrimaryDimensionオブジェクトによってディメンション化されるMdmMeasureを表すことができます。 MdmPrimaryDimensionには、Sourceが関連付けられています。 問合せを作成するには、ディメンションのSourceオブジェクトをメジャーのSourceに結合します。 結果の問合せは、メジャーのSourceをベースとし、ディメンションのSourceオブジェクトを出力として持ちます。

問合せSourceCursorの構造は、Sourceと同じです。 たとえば、前述のSourceCursorには、メジャー・データであるベース値があります。 Cursorには、4つの出力もあります。 出力の値は、ディメンションのSourceオブジェクトの値です。

Cursorを介してデータのすべての項目を取得するには、多次元のCursor構造をループします。 この設計は、コンピュータ画面に表示するための標準のユーザー・インタフェース・オブジェクトの要件に対して適切に調整されています。 特に、多次元形式でのデータの表示に対して適切に調整されています。

Sourceオブジェクトを使用した問合せの指定の詳細は、「Sourceオブジェクトの理解」を参照してください。 Cursorオブジェクトを使用してデータを取得する方法の詳細は、「カーソル・クラスおよび概念の理解」を参照してください。 SQLCursorManagerクラスの詳細は、「Oracle OLAP Java APIリファレンス」を参照してください。