Oracle

네트워크 트래픽 암호화

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

SSL 암호화를 사용하려면 Oracle 문서를 참조하세요.

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에서 모든 테이블을 볼 수 있는지 확인

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='LOOKER';

CREATE OR REPLACE SYNONYM LOOKER.LOOKER_SQL FOR LOOKER_SQL;

GRANT SELECT ON LOOKER.LOOKER_SQL TO LOOKER;

-- Pay special attention to the following 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 deployment
    "SERIAL#",
    -- If using a clustered Oracle deployment, like Oracle Real Application Clusters
    (SERIAL# || ',' || INST_ID) AS "SERIAL#",
    AUDSID
  -- If using a single node Oracle deployment
  FROM V$SESSION
  -- If using a clustered Oracle deployment, like Oracle Real Application Clusters
  FROM GV$SESSION
  WHERE
    USERNAME='LOOKER';

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 배포나 Amazon RDS 배포에 대한 쿼리 종료를 구성합니다.

표준 Oracle 배포

표준 Oracle 배포에서 쿼리 종료를 설정하려면 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 deployment
  FROM V$SESSION
  -- If using a clustered Oracle deployment, like Oracle Real Application Clusters
  FROM GV$SESSION
  WHERE
    username = USER
    AND sid = p_sid
    -- If using a single node Oracle deployment
    AND serial# = p_serial#;
    -- If using a clustered Oracle deployment, like Oracle Real Application Clusters
    AND (SERIAL# || ',' || INST_ID) = p_serial#;

  IF (ignore = 1)
  THEN
    dbms_sql.parse(cursor_name,
                   'ALTER SYSTEM KILL SESSION '''
                   || p_sid || ',' || p_serial# || '''',
                   dbms_sql.native);
    ignore := dbms_sql.execute(cursor_name);
  ELSE
    raise_application_error(-20001,
                            'You do not own session ''' ||
                            p_sid || ',' || p_serial# ||
                            '''');
  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이거나 필요하지 않을 수 있습니다.

Amazon RDS 배포

Amazon RDS Oracle 배포에서는 rdsadmin.rdsadmin_util.kill 절차는 쿼리를 종료하는 데 사용됩니다. 이 프로시져를 사용하려면 Looker 데이터베이스 사용자에게 DBA 역할이 할당되어 있어야 합니다.

DBA는 승격된 데이터베이스 역할이므로 이 단계를 건너뛰고 Looker에서 쿼리 종료를 건너뛰는 방안을 고려해 보세요.

Looker 데이터베이스 사용자에게 쿼리 종료 기능을 제공하려면 다음 명령어를 실행합니다.

GRANT DBA TO LOOKER;

데이터베이스에 대한 Looker 연결 만들기

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

연결 세부정보를 작성합니다. 대다수의 설정은 대부분의 데이터베이스 언어에 공통적으로 적용됩니다. 자세한 내용은 데이터베이스에 Looker 연결 문서 페이지를 참조하세요. 다음 설정은 Oracle 전용입니다.

  • 이름: 연결 이름을 지정합니다. LookML 프로젝트에서 연결을 참조하는 방법은 다음과 같습니다.
  • 언어: Oracle입니다.
  • TNS 사용: TNS(Transparent Network Substrate) 연결을 사용 설정합니다.
  • 호스트: 호스트 이름 또는 TNS 별칭입니다.
  • 포트: 데이터베이스 포트입니다.
  • 데이터베이스: 데이터베이스 이름입니다(TNS를 사용하지 않는 경우).
  • 서비스 이름: 서비스 이름입니다(TNS를 사용하는 경우).
  • 사용자 이름: 데이터베이스 사용자 이름 또는 임시 데이터베이스(PDT가 사용 설정된 경우)입니다.
  • 비밀번호: 데이터베이스 사용자 비밀번호입니다.
  • PDT 사용 설정: 이 전환 버튼으로 영구 파생 테이블을 사용 설정합니다. PDT가 사용 설정되면 연결 창에 추가 PDT 설정과 PDT 재정의 섹션이 표시됩니다.
  • 임시 데이터베이스: Oracle에서 사용자는 스키마이므로 데이터베이스 사용자 이름으로 지정해야 합니다. 이 예시에서는 임시 스키마 값 LOOKER를 사용합니다.
  • 최대 PDT 빌더 연결 수: 이 연결에 가능한 동시 PDT 빌드 수를 지정합니다. 이 값을 너무 높게 설정하면 쿼리 시간에 부정적인 영향을 줄 수 있습니다. 자세한 내용은 데이터베이스에 Looker 연결 문서 페이지를 참조하세요.
  • 추가 JDBC 매개변수: Oracle에서 추가 JDBC 매개변수를 지원하지 않으므로 비워 둡니다.
  • 데이터 그룹 및 PDT 유지보수 일정: Looker가 데이터 그룹 및 영구 파생 테이블을 확인해야 하는 시기를 나타내는 cron 표현식입니다. 데이터 그룹 및 PDT 유지보수 일정 문서에서 이 설정에 대해 자세히 알아보세요.
  • SSL: SSL 연결을 사용하려면 선택합니다.
  • SSL 확인: 이 필드를 무시합니다. Oracle은 기본 Java 트러스트 저장소를 사용하여 SSL을 확인합니다.
  • 노드당 최대 연결 수: 이 설정은 처음에 기본값으로 두어도 됩니다. 이 설정에 대한 자세한 내용은 데이터베이스에 Looker 연결 문서 페이지의 노드당 최대 연결 수 섹션을 참조하세요.
  • 연결 풀 제한 시간: 이 설정은 처음에는 기본값으로 둘 수 있습니다. 이 설정에 대한 자세한 내용은 데이터베이스에 Looker 연결 문서 페이지의 연결 풀 제한 시간 섹션을 참조하세요.
  • SQL Runner 사전 캐시: 테이블을 선택할 때 SQL Runner가 테이블 정보를 미리 로드하지 않고 테이블 정보만 로드하도록 하려면 이 옵션을 선택 해제합니다. 이 설정에 대한 자세한 내용은 데이터베이스에 Looker 연결 문서 페이지의 SQL Runner 사전 캐시 섹션을 참조하세요.
  • 데이터베이스 시간대: 데이터베이스에 사용되는 시간대를 지정합니다. 시간대 변환을 원하지 않으면 이 필드를 비워 둡니다. 자세한 내용은 시간대 설정 사용 문서 페이지를 참조하세요.

제대로 연결되었는지 확인하려면 테스트를 클릭합니다. 문제 해결 정보는 데이터베이스 연결 테스트 문서 페이지를 참조하세요.

이러한 설정을 저장하려면 연결을 클릭합니다. Looker의 관리 섹션에서 연결을 선택한 후 연결 추가를 클릭합니다.

기능 지원

Looker가 특정 기능을 지원하려면 데이터베이스 언어도 해당 기능을 지원해야 합니다.

Oracle은 Looker 24.18부터 다음 기능을 지원합니다.

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