클라우드의 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

dbname_high, dbname_medium, dbname_low 중에서 선택할 수 있는 TNS 별칭 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가 모든 테이블을 볼 수 있는지 확인

Oracle에서 먼저 통계를 수집하지 않으면 Looker가 테이블 (특히 빈 테이블)을 식별하지 못할 수 있습니다. 생성된 LookML 또는 SQL Runner에 필요한 테이블이 표시되지 않으면 다음 명령어를 실행합니다.

EXEC DBMS_STATS.GATHER_DATABASE_STATS;

다른 방법은 Oracle 문서를 참조하세요.

기본 데이터베이스 객체 설정

Oracle DBA는 Oracle에서 다음 객체와 권한을 설정해야 합니다. 다음 명령어는 V$SESSIONV$SQL의 동의어로 LOOKER_SESSIONLOOKER_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 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 함수의 동의어입니다. 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 프리픽스가 SYSDBA, ADMIN이거나 불필요할 수 있습니다.

영구 파생 테이블 설정

영구 파생 테이블을 사용 설정하려면 Looker 사용자에게 UNLIMITED TABLESPACECREATE 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 프리픽스가 SYSDBA, ADMIN이거나 불필요할 수 있습니다.

연결 추가

Looker의 관리 섹션에서 연결을 선택한 후 연결 추가를 클릭합니다.

연결 세부정보를 작성합니다. 대부분의 설정은 대부분의 데이터베이스 언어에 일반적으로 적용되며 Looker를 데이터베이스에 연결 문서 페이지에 설명되어 있습니다. 다음 설정은 Oracle ADWC 또는 위에 표시된 연결 설정 페이지에만 해당합니다.

  • 언어: Oracle ADWC.
  • TNS 사용: 투명한 네트워크 기판 (TNS) 연결을 사용 설정합니다.
  • 호스트: 호스트 이름 또는 TNS 별칭입니다. 이 예에서는 dbname_medium입니다.
  • Port(포트): 기본값으로 둡니다. Looker에서 tnsnames.ora 파일에서 포트를 찾습니다.
  • Service Name: 비워 둡니다. Looker에서 tnsnames.ora 파일에서 서비스 이름을 찾습니다.
  • 사용자 이름: 데이터베이스 사용자 이름 또는 임시 데이터베이스(PDT가 사용 설정된 경우)
  • Password(비밀번호): 데이터베이스 사용자 비밀번호
  • 영구 파생 테이블: 영구 파생 테이블을 사용 설정하려면 이 체크박스를 선택합니다. 그러면 추가 PDT 필드와 PDT 재정의 열이 표시됩니다.
  • 임시 데이터베이스: Oracle에서 사용자는 스키마이므로 데이터베이스 사용자 이름으로 지정해야 합니다. 이 예시에서는 임시 스키마 값 LOOKER을 사용합니다.
  • 추가 매개변수: Looker 서버의 Oracle 월렛에 대한 경로입니다. 이 예시에서는 /home/looker/looker/credentials입니다.
    • Looker에서 호스팅하는 기존 배포의 경우 이 값은 /home/lookerops/looker/credentials입니다.
    • 차세대 호스팅의 Looker 호스팅 배포에서 이 값은 /app/credentials입니다.
  • SSL 및 SSL 인증서 확인: 이 필드는 무시해도 됩니다. Looker에서는 항상 Oracle ADWC와 함께 SSL을 사용합니다.

Test 이러한 설정을 클릭하면 Looker가 다음과 같은 JDBC 문자열을 빌드합니다.

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

기능 지원

Looker에서 일부 기능을 지원하려면 데이터베이스 언어도 이 기능을 지원해야 합니다.

Looker 최신 출시 버전에서 Cloud Oracle의 Oracle Autonomous Data Warehouse는 다음 Looker 기능을 지원합니다.

다음 단계

데이터베이스 구성을 완료한 후 Looker에서 데이터베이스에 연결합니다.