クラウド上の Oracle 自律型データ ウェアハウス

接続用の Looker ホストの設定

すべての Oracle ADWC 接続には SSL および証明書認証が必要です。Looker を Oracle ADWC インスタンスに接続するには、Oracle ウォレット ファイルをダウンロードして Looker サーバーにインストールする必要があります。お客様がホストする Looker ユーザーの場合、Looker サーバーにアクセスできるシステム管理者が必要になります。Looker ホストのユーザーである場合は、Looker サポートにご連絡ください。

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

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

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

  mkdir /home/looker/looker/credentials
  1. ウォレットの zip ファイルをローカル コンピュータから Looker サーバーにコピーします。この例では、scp を使用してファイルを /home/looker/looker/credentials に配置しています。
  scp Wallet_databasename.zip username@remotehost:/home/looker/looker/credentials
  1. ウォレットの zip ファイルを解凍します。この例では、unzip コマンドを使用しています。
  cd /home/looker/looker/credentials
  unzip Wallet_databasename.zip
  1. ls コマンドを使用してウォレットの内容を確認します。次のファイルを用意します。

     ls
    
     cwallet.sso  keystore.jks      sqlnet.ora    truststore.jks
     ewallet.p12  ojdbc.properties  tnsnames.ora
     ```
    Looker connects to Oracle ADWC using Oracle Wallets with the [JDBC Thin Driver 18.3](https://docs.oracle.com/en/cloud/paas/autonomous-data-warehouse-cloud/user/connect-jdbc-thin-wallet.html#GUID-20656D84-4D79-4EE9-B55F-333053948966). For this, you will need the Transparent Network Substrate (TNS) Alias of the Oracle ADWC Service level for your database and the PATH to your Oracle wallet files.
    
  2. データベースの TNS エイリアスを取得するには、次のコマンドを実行します。

cat tnsnames.ora

3 つの TNS エイリアス(dbname_highdbname_mediumdbname_low)から選択できます。これらのエイリアスは、さまざまなレベルのサービスに対応しています。このファイルには、プロトコル、ホスト、ポート、サービス名、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 below:
-- 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 関数の類義語です。また、関連する類義語や権限も作成する必要があります。次のコマンドは、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 で ALTER SYSTEM KILL SESSION の類義語として LOOKER_KILL_QUERY プロシージャを作成する必要があります。これを行うには、次のコマンドを実行します。

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 の [Admin] セクションで [Connections] を選択し、[Add Connection] をクリックします。

接続の詳細を入力します。これらの設定の多くはデータベース言語に共通するものであり、Looker のデータベースへの接続に関するドキュメント ページで説明しています。以下の設定は、Oracle ADWC または上述の [接続設定] ページの例に固有のものです。

  • Dialect: Oracle ADWC。
  • TNS を使用する: 透過的ネットワーク基板(TNS)接続を有効にします。
  • ホスト: ホスト名または TNS エイリアス。この例では dbname_medium です。
  • ポート: デフォルトのままにします。Looker は tnsnames.ora ファイルからポートを検索します。
  • サービス名: 空白のままにします。Looker は tnsnames.ora ファイルのサービス名を検索します。
  • ユーザー名: データベースのユーザー名または PDT が有効になっている場合は一時データベース
  • パスワード: データベース ユーザーのパスワード。
  • 永続的な派生テーブル: 永続派生テーブルを有効にするには、このチェックボックスをオンにします。追加の PDT フィールドと [PDT Override] 列が表示されます。
  • 一時データベース: Oracle ではユーザーはスキーマであるため、データベース ユーザー名として指定する必要があります。この例では、一時スキーマ値 LOOKER を使用します。
  • その他のパラメータ: Looker サーバー上の Oracle ウォレットへの PATH。この例では、/home/looker/looker/credentials です。
    • Looker ホスト型のレガシー デプロイでは、この値は /home/lookerops/looker/credentials になります。
    • 次世代ホスティングの Looker ホスト型デプロイでは、この値は /app/credentials になります。
  • SSL と SSL 認証の確認: この項目は無視してかまいません。Looker では常に、Oracle ADWC とともに SSL が使用されます。

[Test Settings] をクリックすると、Looker は次のような JDBC 文字列を作成します。

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

機能のサポート

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

Looker の最新リリースでは、クラウド上の Oracle Autonomous Data Warehouse で次の Looker 機能がサポートされています。

次のステップ

データベースの構成が完了したら、Looker からデータベースに接続します。