クラウド上の 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
×