多くの操作は、キューブ外部のソース・データへの接続をコールします。これを効率的に実行するには、作成した接続およびデータソースを再利用可能なオブジェクトとしてOracle Essbaseに保存します。
たとえば、キューブとRDBMS表の間にパーティションを設定してキューブとOracle Databaseの間でデータを共有し、メンバーまたはユーザー名を外部のソース・データからフェッチするための変数を使用してセキュリティ・フィルタを開発し、REST APIエンドポイントからデータをロードできます。
多くのキューブ操作では、リモート・ソース・データまたはホストにアクセスするために、ログイン詳細などの接続情報が必要です。これらを接続およびデータソースとして一度定義すると様々な操作で再利用できるため、タスクの実行のたびに詳細を指定する必要はありません。
保存済の接続およびデータソースは、グローバルに、またはアプリケーションごとに実装できます。このような抽象化によって、次の操作が容易になります:
ディメンションおよびデータのロード
キューブのインポート
様々なセキュリティ・フィルタの定義
パーティションを使用したキューブの接続およびリアルタイム・データへのアクセス
データのリモート・ソースへのドリル・スルー
データの外部ソースとEssbaseの間にネットワーク接続がある場合は、Essbaseに接続とデータソースを定義し、外部ソースからデータを簡単にプルできます。Essbaseとデータの外部ソースの間にネットワーク接続がない場合は、CLIツールを使用して、まずローカル接続を作成し、ストリーム・オプションを指定してdataloadまたはdimbuildコマンドを発行し、データ・ロードまたはディメンション構築をストリームする必要があります。
接続には、外部サーバーに関する情報と、そのアクセスに必要なログイン資格証明を格納します。複数のプロセスおよびアーティファクトが使用できる接続を1つ定義することによって、分析の多くの側面を簡素化できます。たとえば、システム・パスワードの変更時に、1つの接続を更新するのみで済みます。
データソースは、一度定義すれば再利用できる別のオブジェクトで、キューブに出入りするデータ・フローの管理に役立ちます。データソースを定義して、リレーショナル・システム、表、ファイル、または別のキューブのいずれであっても、そのデータの外部ソースを表すことができます。
定義した1つの接続を使用して、複数のデータソースにアクセスできます。たとえば、製品、再販者および営業テリトリごとに個別の表を保持する外部Oracle Databaseサーバーについて考えてみます。Oracle Databaseへのアクセスに必要なのは1つの接続のみですが、各表にアクセスするために固有な複数のデータソースを作成する必要があります。
接続ごとに複数のデータソースを定義するユースケースの1つは次のとおりです。個別のロード・ルールを使用して各ディメンションをキューブに構築する場合は、各ルール・ファイルを設定してOracle Databaseの適切な表にアクセスできます。たとえば、キューブにMarketディメンションがあり、Dim_Marketロード・ルールを使用してディメンションを定期的に構築し、SALES_TERRITORIES表からMarketディメンションに値を移入するとします。同様に、Dim_Productロード・ルールを使用して、PRODUCT表からProductディメンションに値を移入します。両方のロード・ルールで同じ接続を使用できますが、個別の表からデータを取得するため、2つの異なるデータソースを定義しました。
以前は、接続およびソース・データの詳細を、ルール・ファイル、ロケーション別名、パーティションなどのEssbaseアーティファクトにハード・コードする必要がありました。ハード・コードされた情報もまだこれらのアーティファクトでサポートされていますが、接続およびデータソースをグローバルに(またはアプリケーション・レベルで)定義すると、作業効率がはるかに向上します。