クラウド上の Oracle Autonomous Data Warehouse

ネットワークトラフィックの暗号化

Looker アプリケーションとデータベース間のネットワーク トラフィックを暗号化することをおすすめします。セキュアなデータベースアクセスを可能にするドキュメント ページに記載されているオプションのいずれかを検討してください。

接続用の Looker ホストの設定

Oracle ADWC 接続にはすべて、SSL と証明書の認証が必要です。Looker を Oracle ADWC インスタンスに接続するには、Oracle ウォレット ファイルをダウンロードし、Looker サーバーにインストールする必要があります。お客様がセルフホスト型 Looker のユーザーである場合は、この操作を行うための Looker サーバーへのアクセス権を有するシステム管理者が必要になります。Looker でホストされているユーザーである場合は、Looker のサポートまでお問い合わせください。

Oracle ウォレットを Looker サーバーにインストールするには:

  1. ローカルのパソコンに Oracle ウォレットをダウンロードしますWallet_databasename.zip のような名前の zip ファイルが作成されます。

  2. Looker サーバー上で、ウォレットの zip ファイルを格納するディレクトリを作成します。

    mkdir /home/looker/looker/credentials
    
  3. ウォレットの zip ファイルをローカルのパソコンから Looker サーバーにコピーします。この例では scp を使用し、ファイルを /home/looker/looker/credentials に配置します。

    scp Wallet_databasename.zip username@remotehost:/home/looker/looker/credentials
    
  4. ウォレットの zip ファイルを解凍します。この例では、unzip コマンドを使用します。

    cd /home/looker/looker/credentials
    unzip Wallet_databasename.zip
    
  5. ls コマンドを使用してウォレットの内容を確認します。必要なファイルは次のとおりです。

     ls
    
     cwallet.sso  keystore.jks      sqlnet.ora    truststore.jks
     ewallet.p12  ojdbc.properties  tnsnames.ora
    

    Looker は、JDBC Thin Driver 18.3 で Oracle ウォレットを使用して Oracle ADWC に接続します。これには、データベースの Oracle ADWC サービスレベルの Transparent Network Substrate(TNS)エイリアスと、Oracle ウォレット ファイルへの PATH が必要です。

  6. データベースの TNS エイリアスを取得するには、次のコマンドを実行します。

    cat tnsnames.ora
    

    選択できる TNS エイリアスは dbname_highdbname_mediumdbname_low の 3 つです。これらのエイリアスは、さまざまなレベルのサービスに対応しています。このファイルには、プロトコル、ホスト、ポート、サービス名、SSL 情報が含まれています。この例では、dbname_medium を使用します。

Looker ユーザーの作成

まず、指定された Looker ユーザーを作成します。

  -- connect / as sysdba;
  CREATE USER LOOKER IDENTIFIED BY <password>
  DEFAULT TABLESPACE USERS
  TEMPORARY TABLESPACE TEMP;

次に、新しい Looker ユーザーがセッションを作成できるようにします。

  GRANT CREATE SESSION TO LOOKER;

最後に、Looker からアクセスする予定のデータテーブルに対する適切な SELECT 権限を Looker ユーザーに付与します。今後その他のテーブルにアクセスする必要がある場合は、これらの新しいテーブルにも SELECT を付与する必要があります。

  GRANT SELECT ON -- <all tables that will be used by looker>;

Looker がすべてのテーブルを認識できるようにする

Looker は、最初に Oracle で統計情報を収集しなければ、テーブル(特に空のテーブル)を識別できない場合があります。生成された LookML または SQL Runner に必要なテーブルが表示されない場合は、次のコマンドを実行します。

  EXEC DBMS_STATS.GATHER_DATABASE_STATS;

代替の方法については、Oracle のドキュメントをご覧ください。

メイン データベース オブジェクトの設定

Oracle DBA は、Oracle で次のオブジェクトと権限を設定する必要があります。次のコマンドは、V$SESSIONV$SQL の類義語として LOOKER_SESSIONLOOKER_SQL を作成します。

root ユーザーとして次のコマンドを実行して、この設定を完了します。次の例は、Looker ユーザー名が LOOKER であることを前提としています。

CREATE OR REPLACE VIEW LOOKER_SQL
AS
  SELECT
    sql.SQL_ID,
    sql.SQL_TEXT
  FROM
    V$SQL sql,
    v$session sess
  WHERE
    sess.SQL_ADDRESS = sql.ADDRESS AND
    sess.username=&apos;LOOKER&apos;;

CREATE OR REPLACE SYNONYM LOOKER.LOOKER_SQL FOR LOOKER_SQL;

GRANT SELECT ON LOOKER.LOOKER_SQL TO LOOKER;

-- Pay special attention to the comments:
-- the following view will be different for clustered Oracle deployments
CREATE OR REPLACE VIEW LOOKER_SESSION
AS
  SELECT
    SID,
    USERNAME,
    TYPE,
    STATUS,
    SQL_ID,
    -- If using a single node Oracle ADWC deployment
    "SERIAL#",
    -- If using a clustered Oracle ADWC deployment
    (SERIAL# || ',' || INST_ID) AS "SERIAL#",
    AUDSID
  -- If using a single node Oracle ADWC deployment
  FROM V$SESSION
  -- If using a clustered Oracle ADWC deployment
  FROM GV$SESSION
  WHERE
    USERNAME=&apos;LOOKER&apos;;

CREATE OR REPLACE SYNONYM LOOKER.LOOKER_SESSION FOR LOOKER_SESSION;

GRANT SELECT ON LOOKER.LOOKER_SESSION TO LOOKER;

対称集計の設定

Oracle DBA は、LOOKER_HASH 関数を設定して対称集計を有効にする必要があります。LOOKER_HASH 関数は、Oracle の dbms_crypto.hash 関数の類義語です。DBA は関連する類義語と権限も作成する必要があります。次の例は、Looker ユーザー名が LOOKER であることを前提としています。

CREATE OR REPLACE FUNCTION LOOKER_HASH(bytes raw, prec number)
  RETURN raw AS
    BEGIN
  return(dbms_crypto.HASH(bytes, prec));
END;

CREATE OR REPLACE SYNONYM LOOKER.LOOKER_HASH FOR LOOKER_HASH;

GRANT EXECUTE ON LOOKER.LOOKER_HASH TO LOOKER;

GRANT EXECUTE ON SYS.LOOKER_HASH TO LOOKER;

Oracle データベースの構成により、SYS 接頭辞は SYSDBAADMIN、または不要になります。

永続的な派生テーブルの設定

永続的な派生テーブルを有効にするには、Looker ユーザーに UNLIMITED TABLESPACE 権限と CREATE TABLE 権限を付与します。次のコマンドは、Looker ユーザー名が LOOKER であることを前提としています。

GRANT UNLIMITED TABLESPACE TO LOOKER;
GRANT CREATE TABLE TO LOOKER;

クエリの強制終了の設定

クエリの強制終了を設定するには、Oracle DBA が LOOKER_KILL_QUERY プロシージャを ALTER SYSTEM KILL SESSION の同義語として作成する必要があります。これを行うには、次のコマンドを実行します。

CREATE OR REPLACE PROCEDURE LOOKER_KILL_QUERY(p_sid in varchar2,
                                              p_serial# in varchar2)
IS
  cursor_name pls_integer default dbms_sql.open_cursor;
  ignore pls_integer;

BEGIN
  SELECT
    COUNT(*) INTO IGNORE
  -- If using a single node Oracle ADWC deployment
  FROM V$SESSION
  -- If using a clustered Oracle ADWC deployment
  FROM GV$SESSION
  WHERE
    username = USER
    AND sid = p_sid
    -- If using a single node Oracle ADWC deployment
    AND serial# = p_serial#;
    -- If using a clustered Oracle ADWC deployment
    AND (SERIAL# || ',' || INST_ID) = p_serial#;

  IF (ignore = 1)
  THEN
    dbms_sql.parse(cursor_name,
                   &apos;ALTER SYSTEM KILL SESSION &apos;&apos;&apos;
                   || p_sid || &apos;,&apos; || p_serial# || &apos;&apos;&apos;&apos;,
                   dbms_sql.native);
    ignore := dbms_sql.execute(cursor_name);
  ELSE
    raise_application_error(-20001,
                            &apos;You do not own session &apos;&apos;&apos; ||
                            p_sid || &apos;,&apos; || p_serial# ||
                            &apos;&apos;&apos;&apos;);
  END IF;
END;

DBA は、以下の関連する次のコマンドも実行する必要があります。

CREATE OR REPLACE SYNONYM LOOKER.LOOKER_KILL_QUERY FOR SYS.LOOKER_KILL_QUERY;
GRANT EXECUTE ON SYS.LOOKER_KILL_QUERY TO LOOKER;

Oracle データベースの構成により、SYS 接頭辞は SYSDBAADMIN、または不要になります。

データベースへの Looker 接続の作成

Looker からデータベースへの接続を作成する手順は次のとおりです。

  1. Looker の [管理者] セクションで [接続] を選択し、[新しい接続] をクリックします。
  2. 接続の詳細を入力します。設定の大部分は、ほとんどのデータベース言語に共通するものです。詳細については、Looker をデータベースに接続するのドキュメント ページをご覧ください。以下は、Oracle ADWC に固有の設定です。

    • 言語: Oracle ADWC
    • TNS を使用する: 透過ネットワーク サブストレート(TNS)接続を有効にします。
    • ホスト: ホスト名または TNS エイリアス。この例の場合、dbname_medium です。
    • ポート: デフォルトのままにします。Looker が tnsnames.ora ファイルからポートを探します。
    • サービス名: 空白のままにします。Looker がサービス名を tnsnames.ora ファイルから探します。
    • ユーザー名: データベースのユーザー名。または PDT が有効になっている場合は 一時データベース
    • パスワード: データベース ユーザーのパスワード。
    • PDT を有効にする: 有効にするには、この切り替えボタンを使用して永続的な派生テーブルを有効にします。PDT が有効になると、追加の PDT 設定と [PDT オーバーライド]が [接続] ウィンドウに表示されます。
    • 一時的なデータベース: Oracle ではユーザーがスキーマであるため、データベース ユーザーの名前として指定する必要があります。この例では、一時的なスキーマ値 LOOKER を使用します。
    • その他の JDBC パラメータ: Looker サーバー上の Oracle ウォレットへの PATH。この例では /home/looker/looker/credentials です。
    • Looker がホストする従来のデプロイの場合、この値は /home/lookerops/looker/credentials です。
    • 次世代ホスティングで Looker がホストするデプロイの場合、この値は /app/credentials です。
    • SSL と SSL の検証: これらのフィールドは無視できます。Looker では、常に Oracle ADWC で SSL が使用されます。
  3. 接続が成功したことを確認するには、[テスト] をクリックします。トラブルシューティング情報については、データベース接続のテストのドキュメント ページをご覧ください。[テスト] をクリックすると、Looker は次のように JDBC 文字列を作成します。

    jdbc:oracle:thin:@dbname_medium?TNS_ADMIN=/home/looker/looker/credentials

  4. これらの設定を保存するには、[接続] をクリックします。

機能のサポート

一部の機能については、Looker でサポートするには、データベース言語が同じ機能に対応している必要があります。

Oracle ADWC では、Looker 24.16 の時点で、次の機能がサポートされています。

機能 サポート対象
サポート レベル
統合
Looker(Google Cloud コア)
いいえ
対称集計
はい
派生テーブル
はい
永続的な SQL 派生テーブル
はい
永続的なネイティブ派生テーブル
はい
安定したビュー
いいえ
クエリの強制終了
はい
SQL ベースのピボット
はい
タイムゾーン
はい
SSL
はい
Subtotals
はい
JDBC の追加パラメータ
いいえ
大文字と小文字を区別
はい
ロケーション タイプ
はい
リストのタイプ
はい
パーセンタイル
はい
個別のパーセンタイル
いいえ
SQL Runner の表示プロセス
はい
SQL Runner の説明テーブル
はい
SQL Runner 表示インデックス
いいえ
SQL Runner Select 10
はい
SQL ランナーの数
はい
SQL の説明
いいえ
Oauth 認証情報
いいえ
コンテキスト コメント
はい
接続プーリング
いいえ
HLL スケッチ
いいえ
集計認識
はい
増分PDT
いいえ
ミリ秒
はい
マイクロ秒
はい
マテリアライズド ビュー
いいえ
Approximate Count Distinct
いいえ