클라우드의 Oracle 자율 데이터 웨어하우스

네트워크 트래픽 암호화

Looker 애플리케이션과 데이터베이스 사이에 네트워크 트래픽을 암호화하는 것이 가장 좋습니다. 안전한 데이터베이스 액세스 사용 설정 문서 페이지에 설명된 옵션 중 하나를 고려해 보세요.

연결을 위한 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
    
  3. 로컬 컴퓨터에서 Looker 서버로 월렛 ZIP 파일을 복사합니다. 이 예시에서는 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 씬 드라이버 18.3과 함께 Oracle 월렛으로 Oracle ADWC에 연결합니다. 이를 위해서는 데이터베이스에 대한 Oracle ADWC 서비스 수준의 TNS(Transparent Network Substrate) 별칭과 Oracle 월렛 파일에 대한 PATH가 필요합니다.

  6. 데이터베이스의 TNS 별칭을 가져오려면 다음 명령어를 실행합니다.

    cat tnsnames.ora
    

    dbname_high, dbname_medium, dbname_low라는 3개의 TNS 별칭 중에서 선택할 수 있습니다. 이러한 별칭은 서로 다른 서비스 수준에 해당합니다. 프로토콜, 호스트, 포트, 서비스 이름, 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 사용자에게 Looker에서 액세스하려는 데이터 테이블에 대한 적절한 SELECT 권한을 부여합니다. 나중에 추가 테이블에 액세스하려면 새 테이블에도 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_SESSIONLOOKER_SQLV$SESSIONV$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 함수의 동의어입니다. 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는 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의 관리 섹션에서 연결을 선택한 후 연결 추가를 클릭합니다.
  2. 연결 세부정보를 작성합니다. 대다수의 설정은 대부분의 데이터베이스 언어에 공통적으로 적용됩니다. 자세한 내용은 데이터베이스에 Looker 연결 문서 페이지를 참조하세요. 다음 설정은 Oracle ADWC 전용입니다.

    • 언어: Oracle ADWC.
    • TNS 사용: TNS(Transparent Network Substrate) 연결을 사용 설정합니다.
    • 호스트: 호스트 이름 또는 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.20부터 다음 기능을 지원합니다.

특성 지원 여부
지원 수준
통합
Looker(Google Cloud 핵심 서비스)
아니요
대칭 집계
파생 테이블
영구 SQL 파생 테이블
영구 기본 파생 테이블
안정적인 뷰
아니요
쿼리 종료
SQL 기반 피벗
시간대
SSL
소계
JDBC 추가 매개변수
아니요
대소문자 구분
위치 유형
목록 유형
백분위수
고유 백분위수
아니요
SQL Runner 표시 프로세스
SQL Runner 설명 테이블
SQL Runner 표시 색인
아니요
SQL Runner 선택 10
SQL Runner 카운트
SQL 설명
아니요
OAuth 사용자 인증 정보
아니요
컨텍스트 주석
연결 풀링
아니요
HLL 스케치
아니요
집계 인식
증분 PDT
아니요
밀리초
마이크로초
구체화된 뷰
아니요
대략적인 고유값
아니요