Oracle 데이터베이스에 저장된 데이터를 분석하도록 Looker를 구성할 수 있습니다. Looker의 Oracle 통합은 보안 연결을 제공하고, 영구 파생 테이블 (PDT)을 지원하며, 쿼리 종료를 용이하게 합니다. 이 통합을 통해 Looker 플랫폼 내에서 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에서 모든 테이블을 볼 수 있는지 확인
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='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;
영구 파생 테이블 설정
영구 파생 테이블을 사용 설정하려면 Looker 사용자에게 UNLIMITED TABLESPACE 및 CREATE 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;
Amazon RDS 배포
Amazon RDS Oracle 배포에서는 rdsadmin.rdsadmin_util.kill 절차는 쿼리를 종료하는 데 사용됩니다. 이 프로시져를 사용하려면 Looker 데이터베이스 사용자에게 DBA 역할이 할당되어 있어야 합니다.
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 매개변수를 지원하지 않으므로 비워 둡니다.
- 유지보수 일정: Looker가 데이터 그룹 및 영구 파생 테이블을 확인해야 하는 시기를 나타내는
cron표현식입니다. 유지보수 일정 문서에서 이 설정에 대해 자세히 알아보세요. - SSL: SSL 연결을 사용하려면 선택합니다.
- SSL 확인: 이 필드를 무시합니다. Oracle은 기본 Java 트러스트 저장소를 사용하여 SSL을 확인합니다.
- 노드당 최대 연결 수: 이 설정은 처음에 기본값으로 두어도 됩니다. 이 설정에 대한 자세한 내용은 데이터베이스에 Looker 연결 문서 페이지의 노드당 최대 연결 수 섹션을 참조하세요.
- 연결 풀 제한 시간: 이 설정은 처음에는 기본값으로 둘 수 있습니다. 이 설정에 대한 자세한 내용은 데이터베이스에 Looker 연결 문서 페이지의 연결 풀 제한 시간 섹션을 참조하세요.
- SQL Runner 사전 캐시: 테이블을 선택할 때 SQL Runner가 테이블 정보를 미리 로드하지 않고 테이블 정보만 로드하도록 하려면 이 옵션을 선택 해제합니다. 이 설정에 대한 자세한 내용은 데이터베이스에 Looker 연결 문서 페이지의 SQL Runner 사전 캐시 섹션을 참조하세요.
- 데이터베이스 시간대: 데이터베이스에 사용되는 시간대를 지정합니다. 시간대 변환을 원하지 않으면 이 필드를 비워 둡니다. 자세한 내용은 시간대 설정 사용 문서 페이지를 참조하세요.
제대로 연결되었는지 확인하려면 연결 설정 페이지 하단에 있는 상태 세부정보 섹션에서 연결 테스트 버튼을 클릭합니다.
Looker에 연결 가능 이 표시되면 연결 을 눌러 연결을 만듭니다.
그러면 데이터베이스 연결이 Looker 연결 관리 페이지의 목록에 추가됩니다.
기능 지원
Looker가 특정 기능을 지원하려면 데이터베이스 언어도 해당 기능을 지원해야 합니다.
Oracle은 Looker 26.16부터 다음 기능을 지원합니다.
| 기능 | 지원 여부 |
|---|---|
| Looker (Google Cloud 핵심 서비스) | |
| 대칭 집계 | |
| 파생 테이블 | |
| 영구 SQL 파생 테이블 | |
| 영구 기본 파생 테이블 | |
| 안정적인 뷰 | |
| 쿼리 종료 | |
| SQL 기반 피벗 | |
| 시간대 | |
| SSL | |
| 소계 | |
| JDBC 추가 파라미터 | |
| 대소문자 구분 | |
| 위치 유형 | |
| 목록 유형 | |
| 백분위수 | |
| 고유 백분위수 | |
| SQL Runner 표시 프로세스 | |
| SQL Runner 설명 테이블 | |
| SQL Runner 표시 색인 | |
| SQL Runner 선택 10 | |
| SQL Runner 카운트 | |
| SQL 설명 | |
| OAuth 2.0 사용자 인증 정보 | |
| 컨텍스트 주석 | |
| 연결 풀링 | |
| HLL 스케치 | |
| 집계 인식 | |
| 증분 PDT | |
| 밀리초 | |
| 마이크로초 | |
| 구체화된 뷰 | |
| 이전 기간 대비 측정항목 | |
| 대략적인 고유값 | |
| 데이터베이스 내 분석 모델 | |
| 맞춤 캘린더 |