5 データ・モデリング用のデータベース接続の管理

管理者は、Essbase、Snowflake、Oracle Enterprise Performance Management (Oracle EPM)データなどのリレーショナル・データと非リレーショナル・データのモデリング用のクラウド・データベース接続を作成および管理します。ビジネス・データが1つの場所にある必要はありません。データがどこに保存されていても、会社のデータをビジネス・モデラーおよびアナリストが分析できるように、複数のクラウド・データベースに接続します。

Essbaseキューブのデータのモデリング

Essbaseキューブからのデータをモデリングおよびビジュアル化できるように、Essbaseデータベースに接続します。

Essbaseデータのモデリングができるのはモデル管理ツールのみです。
開始する前に、Oracle Analyticsインスタンスでデータ・ゲートウェイをデプロイし、リモートのEssbaseデプロイメントと通信できるようにデータ・ゲートウェイ・エージェントを構成します。
  1. 物理レイヤーで、データベースを作成します:
    1. 「物理レイヤー」ペインで右クリックし、「新規データベースの作成」を選択します。
    2. 「データベース」ダイアログで、Oracle Analytics内のデータベースを識別するための名前を指定します。
    3. データベース・タイプ(Essbase 11など)を選択し、「OK」をクリックします。
  2. 物理レイヤーで、接続プールを作成します:
    1. 新規データベースを右クリックし、「新規オブジェクト」をクリックして「データベース接続プール」を選択します。
    2. 「接続プール」ダイアログで、Oracle Analytics内のデータベース・プールを識別するための名前を指定します。
    3. 「Essbaseサーバー」で、Essbaseサーバーの接続文字列を指定します。
      たとえば、http://<IP address>:<port number>/essbase/agentです。
    4. データ・ゲートウェイの使用を選択します。
    5. Essbaseデプロイメントのユーザー名およびパスワードを入力します。
    6. プロンプトが表示されたら、Essbaseデプロイメントのパスワードを再入力します。
  3. 物理レイヤーで、Essbaseメタデータをインポートします:
    1. Essbase接続を右クリックし、「メタデータのインポート」を選択します。
    2. 「データ・ソースの選択」ページで、「次」をクリックします。
    3. 「メタデータ・オブジェクトの選択」ページで、「データ・ソース」ボックスのデータベースを展開し、必要なキューブを選択して「選択項目をインポート」をクリックします。

      大規模なキューブの場合、インポートに2から3分かかる可能性があります。

    4. インポートが完了したら、「リポジトリ・ビュー」でデータベースを展開し、インポートされたEssbaseキューブを表示します。
    5. 「終了」をクリックします。
  4. 今作成した物理レイヤーを使用して、ビジネス・モデル、マッピング・レイヤーおよびプレゼンテーション・レイヤーを作成します。
  5. 「ファイル」「クラウド」「公開」の順にクリックします。
  6. Essbaseキューブに基づいて、ダッシュボードまたはビジュアライゼーション・ワークブックを作成します。
    新しいEssbaseキューブは、Oracle Analyticsのサブジェクト領域として使用できるようになりました。
    たとえば、Oracle Analyticsで分析を作成し、「サブジェクト領域の選択」ダイアログで新規Essbaseサブジェクト領域にアクセスできます。Oracle Analyticsでワークブックを作成し、「データセットの追加」ダイアログで「サブジェクト領域」をクリックして、新規Essbaseサブジェクト領域にアクセスします。

スノーフレーク・データ・ウェアハウスのデータのモデリング

スノーフレーク・データベースでデータをモデル化できるように、オンプレミス環境を構成します。

セマンティック・モデラーまたはモデル管理ツールでスノーフレーク・データをモデリングできます。このタスクでは、モデル管理ツールを使用したプロセスを説明します。
モデル管理ツールでスノーフレーク・データ・ソースから表をインポートし、モデリングするには、セマンティック・モデルからスノーフレークへのローカルとリモートの両方の接続でデータ・ゲートウェイのインストールが必要です。データ・ゲートウェイ・エージェントを、スノーフレークに接続するための適切なドライバで構成します。問合せが実行されている間、リモート・データ・ゲートウェイ接続が使用可能になっていることを確認してください。ただし、ローカル接続の場合は、スノーフレーク表がモデリングされ、セマンティック・モデルがOracle Analyticsに公開された後は、問合せがOracle Analyticsから実行されてもデータ・ゲートウェイは使用されないため、これを無効化または削除できます。

セマンティック・モデルからスノーフレークへのローカル接続とリモート接続のいずれも作成できます。ローカル(リモートではない)接続の作成時には、セマンティック・モデルの接続プールによってJDBC接続が使用されます。

開始する前に、オンプレミス環境の同一のWindowsコンピュータにデータ・ゲートウェイとモデル管理ツールをインストールします。
  1. Developer Client Toolからスノーフレークへの接続が容易になるように、ローカルのデータ・ゲートウェイ・エージェントを構成します。
    1. 最新のスノーフレークJDBCドライバ(たとえば、ファイルsnowflake-jdbc-3.9.0.jar内)をダウンロードします。
    2. ダウンロードしたJARファイルをデータ・ゲートウェイのインストール・フォルダにコピーします。
      サーバー・デプロイメントでは、JARファイルを次にコピーします:
      <Data Gateway folder>/domain/jettybase/lib/ext
      個人デプロイメントでは、JARファイルを次にコピーします:
      <install directory>\war\datagateway\WEB-INF\lib
    3. データ・ゲートウェイを再起動します。
  2. スノーフレーク・データベースへの接続を構成します。
これで、この接続を使用してデータをモデリングできるようになりました。

スノーフレークへのローカル・セマンティック・モデル接続の作成

スノーフレーク・データをモデリングできるように、ローカルのスノーフレーク・データベースに接続します。

  1. モデル管理ツールでJavaデータ・ソースをロードして、JDBC接続プール機能を有効にします。レポート用のデータ・ゲートウェイの構成および登録のステップ3を参照してください。
  2. モデル管理ツールで、データベースを作成し、タイプをスノーフレークに設定します。
  3. 接続プールを追加し、その詳細を「一般」タブで指定します:
    • コール・インタフェース: JDBC(ダイレクト・ドライバ)。
    • 完全修飾表名が必要: はい。
    • データ・ソース名: 接続文字列を入力します。例: jdbc:snowflake://xxxx.snowflakecomputing.com?db=ODEV&warehouse=xxxxxx&schema=xxxxxx
    • RDCバージョン: このフィールドを空白のままにします。
  4. 「その他」タブで、これらの詳細を指定します。
    • JDSサーバーURL: このフィールドをブランクのままにします(このフィールド内の入力を除去します)。
    • ドライバ・クラス: net.snowflake.client.jdbc.SnowflakeDriver
    • SQL Over HTTPの使用: false。
  5. この接続を使用してデータをモデリングします。
  6. モデルが完成したら、セマンティック・モデルをOracle Analytics Cloudにアップロードまたは公開します。
    Oracle Analytics Cloudは、データ・ゲートウェイを使用しないでスノーフレーク・データベースに接続します。
これで、この接続を使用してデータをモデリングできるようになりました。

スノーフレークへのリモート・セマンティック・モデル接続の作成

スノーフレーク・データをモデリングできるように、ローカルのスノーフレーク・データベースに接続します。

  1. モデル管理ツールでJavaデータ・ソースをロードして、JDBC接続プール機能を有効にします。レポート用のデータ・ゲートウェイの構成および登録のステップ3を参照してください。
  2. モデル管理ツールで、データベースを作成し、タイプをスノーフレークに設定します。
  3. 接続プールを追加し、その詳細を「一般」タブで指定します:
    • コール・インタフェース: JDBC(ダイレクト・ドライバ)。
    • 完全修飾表名が必要: はい。
    • データ・ソース名: 接続文字列を入力します。例: jdbc:snowflake://xxxx.snowflakecomputing.com?db=ODEV&warehouse=xxxxxx&schema=xxxxxx
    • RDCバージョン: 2に設定します。
  4. 「その他」タブで、これらの詳細を指定します。
    • JDSサーバーURL: このフィールドをブランクのままにします(このフィールド内の入力を除去します)。
    • ドライバ・クラス: net.snowflake.client.jdbc.SnowflakeDriver
    • SQL Over HTTPの使用: true。
  5. この接続を使用してデータをモデリングします。
  6. モデルが完成したら、セマンティック・モデルをOracle Analytics Cloudにアップロードまたは公開します。
    ノート: Oracle Analytics Cloudは、構成済のデータ・ゲートウェイ・エージェントを使用してスノーフレークに接続します。
  7. スノーフレーク・ドライバ・ファイルをそれぞれのデータ・ゲートウェイ・エージェントのインストール・フォルダにコピーします。
    • サーバー・デプロイメントでは、JARファイルを<Data Gateway install_location>/domain/jettybase/thirdpartyDriversにコピーします。
    • Windowsの個人デプロイメントでは、JARファイルを<Data Gateway_extract_path>\thirdpartyDriversにコピーします。
    • MacOSの個人デプロイメントでは、JARファイルを<Application->Show Package Contents>Resources->app.nw-> thirdpartyDriversにコピーします。
  8. データ・ゲートウェイを再起動します。データ・ゲートウェイの保守を参照してください。

Google BigQueryのデータのモデリング

Google BigQueryデータベースに接続し、Google BigQueryのデータをモデリングおよびビジュアル化できるようにします。セマンティック・モデラーまたはモデル管理ツールでGoogle BigQueryデータをモデリングできます。次のタスクでは、モデル管理ツールを使用したプロセスを説明します。

トピック

Google BigQueryへのOracle Analytics接続の作成

Google BigQueryデータベースへのシステム接続を作成し、その接続を使用してGoogle BigQueryプロジェクトをモデリングできます。

開始する前に、Google BigQueryサービスのサービス・アカウント・プライベート・キー(JSON形式)をダウンロードします。
  1. Oracle Analyticsのホーム・ページで、「作成」をクリックしてから「接続」をクリックします。
  2. 「BigQuery」をクリックします。
  3. 接続の詳細を入力します。
    • 「接続名」で、Oracle Analytics内の接続の詳細を識別するためのわかりやすい名前を指定します。
    • 「プロジェクト」で、分析するプロジェクトのBigQueryプロジェクト名を小文字で指定します。
    • 「サービス・アカウント・プライベート・キー」で、「選択」をクリックし、BigQueryサービスのサービス・アカウント・プライベート・キー(JSON形式)をアップロードします。「サービス・アカウント電子メール」には、アップロードしたキーの詳細から移入されます。
    • 「システム接続」で、このオプションを選択します。

  4. 詳細を保存します。

BigQuery ODBCドライバのダウンロードおよび設定

Google BigQueryへの接続に必要なODBCドライバをインストールし、モデル管理ツールで構成して、プロジェクトのモデリングができるようにします。

  1. Simba BigQuery ODBCドライバをGoogleからダウンロードします。
    たとえば、Google参照サイトからダウンロードします。
  2. ダウンロードしたドライバを、Oracle Analytics Client Toolsがインストールされているマシンにインストールします。
  3. DSN設定ダイアログを使用してODBCドライバを構成します。

  4. 「テスト」をクリックして接続をテストします。

  5. 詳細を保存します。

Google BigQueryデータ・ソースからのデータ・モデルの構築

Google BigQueryデータベース用のデータ・モデルを構築し、それをデプロイしてBigQueryプロジェクト内のデータをビジュアル化できるようにします。

データ・モデルを構築するには、BigQueryキーの権限が必要です。BigQueryキーによって、データセット・レベルへのアクセス権が付与される場合は、次のステップに従って、BigQuery ODBCドライバを使用してメタデータのインポートを実行するだけです。BigQueryキーによって、特定の表またはビューのみへのアクセス権が付与される場合は、次のステップに従って物理スキーマを作成します。
  1. モデル管理ツールで、リポジトリにデータベースを作成し、データベース・タイプを「ODBC基本」に設定します。

  2. 「接続プール」ダイアログで、データベースに接続プールを作成します。
    • 「コール・インタフェース」で、「デフォルト(ODBC 2.0)」を選択します。
    • 「データ・ソース名」フィールドで、前に作成したBigQuery ODBCドライバを選択します。

  3. BigQueryデータセットと同じ名前を使用して、データベースに物理スキーマを作成します。
    BigQueryのSQLでは、表名の先頭にデータセット名を追加して、dataset.tableとする必要があります。データセット名は、リポジトリ・ファイル内の物理スキーマ・オブジェクトに相当します。
  4. 接続プールを右クリックし、「メタデータのインポート」を選択します。
  5. 「データ・ソースの選択」ダイアログで、接続タイプとして「ODBC 2.0」または「ODBC 3.5」を選択し、BigQuery ODBCドライバを選択します。

  6. 「メタデータ型の選択」ダイアログで、「ビュー」と、BigQueryキーが権限を持つその他のタイプのうち使用するものを選択します。

  7. 「メタデータ型の選択」ダイアログで、個々の表を選択し、「選択項目をインポート」をクリックします。これにより、BigQueryデータベースと基礎となる構造がインポートされます。

    「すべてインポート」をクリックすると、データベースのみがインポートされます。これが起こった場合は、もう一度「すべてインポート」を選択すると表がインポートされます。
  8. 「終了」をクリックします。
  9. インポートされた表を物理スキーマにドラッグします。
  10. 物理データベースを編集し、データベース・タイプをBigQueryに変更します。

    物理データベースを変更すると、接続プールに設定されているコール・インタフェースとデータベース・タイプが一致しないというメッセージが表示されます。「はい」をクリックします。

  11. 「接続プール」ダイアログで、次の設定を構成します:
    • 「コール・インタフェース」で、コール・インタフェースをJDBC (ダイレクト・ドライバ)に変更します。
    • 「完全修飾表名が必要」を選択します。
    • 「データ接続の使用を選択します。
    • Oracle Analyticsで、BigQuery接続を検査し、オブジェクトIDをコピーします。BigQueryでは大文字と小文字が区別されます。正しいデータ接続構文を維持するために、「コピー」ボタンを使用します。

    • 「接続プール」ダイアログで、コピーしたオブジェクトIDを「オブジェクトID」フィールドに貼り付けます。
    • 「最大接続数」を100に設定します。
  12. 詳細を保存します。
リポジトリ内のメタデータをモデリングし、リポジトリ・ファイル(RPD)をOracle Analyticsにアップロードします。

Google BigQueryに対するリポジトリ接続の問題のトラブルシューティング

Google BigQueryに接続する場合に発生する可能性のあるいくつかの問題と、その回避方法を示します。

「完全修飾表名が必要」が選択されておらず、生成されるSQLに物理スキーマが含まれていない場合、問合せは失敗し、「Javaデータソース・サーバーからのデータの読取りに失敗しました」のようなメッセージが表示されます。

nqcmdまたは別のSQL入力ツールを使用して、BigQueryに対して問合せを実行した場合、実際のエラー・メッセージは次のように表示されます:

WITH SAWITH0 AS (select distinct T4.PROP_CD as c1 from FINOPS_RM_OCC_ACT T4) select 0 as c1, D1.c1 as c2 from SAWITH0 D1 order by c2
[Simba][BigQuery] (70) Invalid query: Table "FINOPS_RM_OCC_ACT" must be qualified with a dataset (e.g. dataset.table).
Statement preparation failed

問合せをデータセットで修飾するには、リポジトリ・ファイル内の物理スキーマを使用します。

Oracle Analytics接続で大文字のプロジェクト名を使用した場合、接続は正常に作成されます。

2種類の問題が発生する可能性があります。

1. 問合せが失敗し、マスクされたURLに関する404 Not Foundメッセージが表示されます:

[2022-03-17T01:13:44.105+00:00] [OBIS] [TRACE:2] [USER-34] [] [ecid: d6382db0-1e63-427e-893b-18bc00c0424e-0000de96,0:2:1:5] [sik: bootstrap] [tid: 856a6700] [messageId: USER-34] [requestid: 6358001e] [sessionid: 63580000] [username: Testuser] -------------------- Query Status: [nQSError: 46164] HTTP Server returned 404 (Not Found) for URL [masked_url]. [[
[nQSError: 46281] Failed to download metadata for dataset ‘system’.‘BigQuery Test’.
[nQSError: 43119] Query Failed:

2. Oracle Analytics内で、データセットは表示されますが、基礎となる表は使用できません。
GUID-1C0811AA-3875-4A7C-A147-230688B98583-default.pngの説明が続きます
.pngの説明

いずれの場合も、プロジェクト名が小文字になるように接続を変更できます。

Oracle Analytics CloudでBigQuery接続のトラブルシューティングを行う際には、サードパーティのJDBCクライアントを使用して、同じサービス・アカウント・キーでBigQueryへの接続を試します。

まだ接続に失敗する場合は、サービス・アカウント・キーに問題があります。

接続に成功する場合は、Oracle Analyticsに問題があるため、Oracleサポートに連絡する必要があります。

このテストは、サービス・アカウント・キーがODBCを通じて検証されない場合に役立ちます。

データソースを指定するためのDSN形式

Oracle Analyticsでは、多数のデータベース・タイプのオンプレミス・データをモデリングできます。Oracle Analyticsでは、セマンティック・モデルを介した一部のオンプレミス・データ・ソースへの直接アクセスがサポートされています。モデル管理ツールを使用してデータベース接続を作成するときに、「接続プール」ダイアログ(「一般」タブ)の「データ・ソース名」フィールドで、接続先のデータベース・タイプに適したDSN形式を使用します。

Amazon Redshift:
       DRIVER=Oracle 7.1 Amazon Redshift Wire Protocol;HOST=["host-name"];PORT=["port"];DB=["service-name"]
      SSL: DRIVER=Oracle 7.1 Amazon Redshift Wire Protocol;HOST=["host-name"];PORT=["port"];DB=["service-name"];EM=6;CPV=TLSv1.2,TLSv1.1,TLSv1, SSLv3, SSLv2;VSC=0
Apache Drill:
       DRIVER=MapR Drill ODBC Driver;Host=["host-name"];Port=["port"];CastAnyToVarchar=true;ExcludedSchemas=sys,INFORMATION_SCHEMA;AuthenticationType=Basic               Authentication;ConnectionType=Direct
Aster:
       DRIVER=Aster ODBC Driver;SERVER=["host-name"];PORT=["port"];DATABASE=["service-name"]
DB2:
      DRIVER=Oracle 7.1 DB2 Wire Protocol;IpAddress=["host-name"];PORT=["port"];DB=["service-name"]
      SSL:  DRIVER=Oracle 7.1 DB2 Wire Protocol;IpAddress=["host-name"];PORT=["port"];DB=["service-name"];EM=1;VSC=0
Greenplum:
       DRIVER=Oracle 7.1 Greenplum Wire Protocol;HOST=["host-name"];PORT=["port"];DB=["service-name"]
Hive:
       DRIVER=Oracle 8.0 Apache Hive Wire Protocol;HOST=["host-name"];PORT=["port"]
      SSL: DRIVER=Oracle 8.0 Apache Hive Wire Protocol;HOST=["host-name"];PORT=["port"];EM=1;VSC=0
Impala:
       DRIVER=Oracle 7.1 Impala Wire Protocol;HOST=["host-name"];PORT=["port"]
     SSL:  DRIVER=Oracle 7.1 Impala Wire Protocol;HOST=["host-name"];PORT=["port"];EM=1;VSC=0
Informix:
       DRIVER=Oracle 7.1 Informix Wire Protocol;HOSTNAME=["host-name"];PORTNUMBER=["port"];DATABASE=["service-name"]
MongoDB:
       DRIVER=Oracle 8.0 MongoDB;HOST=["host-name"];PORT=["port"];DB=["service-name"]
MySQL:
      DRIVER=Oracle 7.1 MySQL Wire Protocol;HOST=["host-name"];PORT=["port"];DB=["service-name"]
PostgresSql:
       DRIVER=Oracle 7.1 PostgreSQL Wire Protocol;HOST=["host-name"];PORT=["port"];DB=["service-name"]
Spark:
      DRIVER=Oracle 8.0 Apache Spark SQL;HOST=["host-name"];PORT=["port"]
      SSL:  DRIVER=Oracle 8.0 Apache Spark SQL;HOST=["host-name"];PORT=["port"];EM=1;VSC=0
SQL Server:
     DRIVER=Oracle 7.1 SQL Server Wire Protocol;HOST=["host-name"];PORT=["port"];DB=["service-name"]
     SSL:  DRIVER=Oracle 7.1 SQL Server Wire Protocol;HOST=["host-name"];PORT=["port"];DB=["service-name"];EM=1;VSC=0;CryptoProtocolVersion=TLSv1.2,TLSv1.1,TLSv1,SSLv3,SSLv2
Sybase:
       DRIVER=Oracle 7.1 Sybase Wire Protocol;NA=["host-name"], ["port"];DB=["service-name"]
Teradata:
       DRIVER=Oracle 7.1 Teradata;DBCName=["host-name"];port_name=["port"]