Oracle Autonomous Data Warehouse on Cloud

Looker 對 Oracle ADWC 提供整合層級支援。本頁面說明如何將 Looker 連線至 Oracle ADWC。

加密網路流量

最佳做法是加密 Looker 應用程式和資料庫之間的網路流量。請考慮採用「啟用安全的資料庫存取權」說明文件頁面所述的其中一個選項。

設定 Looker 主機連線

所有 Oracle ADWC 連線都必須使用 SSL 和憑證驗證。如要讓 Looker 連線至 Oracle ADWC 執行個體,您必須下載 Oracle 錢包檔案,並安裝在 Looker 伺服器上。如果您是客戶託管的 Looker 使用者,則需要有權存取 Looker 伺服器的系統管理員,才能執行這項操作。如果您是 Looker 代管使用者,請與 Looker 支援團隊聯絡。

如要在 Looker 伺服器上安裝 Oracle 錢包,請按照下列步驟操作:

  1. 下載 Oracle 錢包至本機電腦。您會取得一個 ZIP 檔案,名稱類似 Wallet_databasename.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 會使用 Oracle Wallet 搭配 JDBC Thin Driver 18.3 連線至 Oracle ADWC。為此,您需要資料庫的 Oracle ADWC 服務層級透明網路基底 (TNS) 別名,以及 Oracle 錢包檔案的路徑。

  6. 如要取得資料庫的 TNS 別名,請執行下列指令:

    cat tnsnames.ora
    

    有三個 TNS 別名可供選擇:dbname_high、dbname_medium 和 dbname_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 能查看所有資料表

如果未先在 Oracle 收集統計資料,Looker 可能無法識別資料表 (尤其是空白資料表)。如果產生的 LookML 或 SQL Runner 中未顯示所需資料表,請執行下列指令:

  EXEC DBMS_STATS.GATHER_DATABASE_STATS;

如需其他方法,請參閱 Oracle 說明文件。

設定主要資料庫物件

Oracle DBA 必須在 Oracle 設定下列物件和權限。下列指令會建立 LOOKER_SESSION 和 LOOKER_SQL,做為 V$SESSION 和 V$SQL 的同義詞。

請以超級使用者身分執行下列指令,完成這項設定。這些範例假設 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 函式的同義詞。資料庫管理員也必須建立相關聯的同義詞和權限。以下範例假設 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 前置字元可能是 SYSDBA、ADMIN,或是不需要。

設定永久衍生資料表

如要啟用永久衍生資料表,請將 UNLIMITED TABLESPACE 和 CREATE TABLE 權限授予 Looker 使用者。下列指令假設 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 前置字元可能是 SYSDBA、ADMIN,或是不需要。

建立 Looker 與資料庫的連線

請按照下列步驟,建立 Looker 到資料庫的連線:

  1. 在 Looker 的「Admin」(管理) 部分,選取「Connections」(連線),然後點選「Add Connection」(新增連線)。
  2. 填寫連線詳細資料。在這些設定中,有絕大部分都是多數資料庫方言的常用設定。請參閱「將 Looker 連線至資料庫」說明文件頁面。下列設定僅適用於 Oracle ADWC:

    • Dialect:Oracle ADWC。
    • 使用 TNS:啟用透明網路基質 (TNS) 連線。
    • 主機:主機名稱或 TNS 別名。在這個範例中,請輸入 dbname_medium。
    • Port:保留預設值,Looker 會從 tnsnames.ora 檔案中尋找通訊埠。
    • 服務名稱:留空,Looker 會從 tnsnames.ora 檔案中尋找服務名稱。
    • 使用者名稱:資料庫使用者名稱,如果已啟用 PDT,則為暫存資料庫。
    • 密碼:資料庫使用者密碼。
    • 啟用 PDT:使用這個切換鈕啟用永久衍生資料表。啟用 PDT 後,「連線」視窗會顯示其他 PDT 設定和「PDT 覆寫」部分。
    • 暫存資料庫:在 Oracle 中,使用者就是結構定義,因此應指定為資料庫使用者名稱。在這個範例中,您會使用暫時結構定義值 LOOKER。
    • 其他 JDBC 參數:Oracle 不支援其他 JDBC 參數,因此請留空。
    • SSL 和驗證 SSL:您可以忽略這些欄位,Looker 一律會搭配 Oracle ADWC 使用 SSL。
  3. 如要確認連線成功,請按一下「連線設定」頁面底部「狀態詳細資料」部分中的「測試連線」按鈕。

  4. 如果 Looker 顯示「可連線」,請按下「連線」建立連線。

資料庫連線就會新增至 Looker「連線」管理頁面的清單中。

功能支援

Looker 支援的功能,也必須由資料庫方言支援。

自 Looker 26.22 起,Oracle ADWC 支援下列功能:

功能 是否支援?
Looker (Google Cloud Core)
對稱式匯總函式
衍生資料表
永久 SQL 衍生資料表
永久原生衍生資料表
穩定檢視畫面
終止查詢
以 SQL 為基礎的透視表
時區
SSL
小計
JDBC 額外參數
區分大小寫
位置類型
清單類型
百分位數
不重複值的百分位數
SQL Runner 顯示程序
SQL Runner Describe Table
SQL Runner 顯示索引
SQL Runner 選取 10
SQL Runner 計數
SQL 說明
OAuth 2.0 憑證
背景資訊註解
連線集區
HLL Sketch
匯總感知
增量 PDT
毫秒
微秒
materialized view
期間比較指標
不重複值的近似計數
資料庫內分析模型
自訂日曆