이 안내를 사용하는 언어
MySQL, MariaDB, SingleStore(이전 명칭: MemSQL)는 이 페이지에 설명된 데이터베이스 설정 요구사항을 공유합니다.
네트워크 트래픽 암호화
Looker 애플리케이션과 데이터베이스 사이에 네트워크 트래픽을 암호화하는 것이 가장 좋습니다. 안전한 데이터베이스 액세스 사용 설정 문서 페이지에 설명된 옵션 중 하나를 고려해 보세요.
SSL 암호화를 사용하려면 이 MySQL 문서 페이지를 참조하세요.
사용자 및 보안
Looker 사용자에게 필요한 액세스 권한을 만들고 부여하려면 데이터베이스 언어 및 버전에 해당하는 섹션의 안내를 따르세요.
MySQL 8.0.X:
MySQL 8.0.X에서 기본 인증 플러그인은 caching_sha2_password입니다. Looker는 mysql_native_password 플러그인을 사용하여 JDBC 드라이버를 통해 MySQL 데이터베이스에 인증을 시도합니다. 이 버전의 MySQL이 제대로 작동하려면 다음과 같은 추가 단계를 수행해야 합니다.
- mysql_native_password플러그인을 사용하도록 MySQL 데이터베이스를 구성합니다. 이 작업은 여러 방법으로 수행할 수 있으며, MySQL 8 데이터베이스가 배포되는 방식과 구성에 대한 액세스 유형에 따라 달라집니다.- --default-auth=mysql_native_password플래그를 사용하여 프로세스를 시작합니다.
- my.cnf구성 파일의 속성을 설정합니다.
 - [mysqld] default-authentication-plugin=mysql_native_password- 데이터베이스 인스턴스가 AWS RDS를 통해 호스팅되는 경우 이 데이터베이스 인스턴스에 적용되는 RDS 매개변수 그룹을 통해 default_authentication_plugin매개변수를 설정합니다.
 
- 다음 명령어를 실행하고 - some_password_here를 고유한 보안 비밀번호로 바꿉니다.- CREATE USER looker IDENTIFIED WITH mysql_native_password BY 'some_password_here'; GRANT SELECT ON database_name.* TO 'looker'@'%';
MySQL 5.7.X 이하, MariaDB, SingleStore:
다음 명령어를 실행하고 some_password_here를 고유한 보안 비밀번호로 바꿉니다.
CREATE USER looker;
SET PASSWORD FOR looker = PASSWORD ('some_password_here');
GRANT SELECT ON database_name.* TO 'looker'@'%';
영구 파생 테이블의 임시 스키마 설정
이러한 데이터베이스 언어는 영구 파생 테이블(PDT) 생성을 지원합니다. 이 기능은 매우 유용할 수 있으므로 가능하면 사용 설정하는 것이 좋습니다.
PDT를 사용 설정하려면 임시 스키마를 구성해야 합니다. 다음 명령어는 임시 데이터베이스를 만들고 looker 사용자에게 필요한 권한을 부여하는 예시를 보여줍니다.
데이터베이스 연결을 만들 때 임시 데이터베이스 필드에 임시 데이터베이스의 이름을 지정할 수 있습니다. 임시 데이터베이스의 이름을 지정하지 않으면 Looker가
looker_tmp라는 스크래치 데이터베이스를 생성합니다. 다음 명령어는looker_tmp를 사용하지만 다른 임시 데이터베이스 이름을 지정한 경우looker_tmp대신 임시 데이터베이스 이름을 사용합니다.
CREATE SCHEMA looker_tmp;
GRANT
  SELECT,
  INDEX,
  INSERT,
  UPDATE,
  DELETE,
  CREATE,
  DROP,
  ALTER,
  CREATE TEMPORARY TABLES
ON looker_tmp.* TO 'looker'@'%';
SingleStore의 경우 또는 데이터베이스에 GTID 기반 복제를 사용하는 경우 GTID가 CREATE TABLE AS SELECT 문을 지원하지 않으므로 create_process LookML 매개변수를 사용하여 PDT를 사용해야 합니다.
일반 파생 테이블의 대체 설정
영구 파생 테이블 생성을 허용하지 않으려면 일반 파생 테이블을 계속 사용하면 됩니다. 일반 파생 테이블을 사용하려면 looker_tmp라는 스키마에 특정 권한을 추가해야 합니다. 하지만 looker_tmp 스키마가 실제로 데이터베이스에 존재할 필요는 없습니다.
GRANT
  SELECT,
  INDEX,
  INSERT,
  DROP,
  CREATE TEMPORARY TABLES
ON looker_tmp.* TO 'looker'@'%';
-- Note that the looker_tmp schema does not need to actually exist,
-- even though these permission grants are still needed
max_allowed_packet 변수 설정
MySQL의 경우 "SQLException: 쿼리의 패킷이 너무 큼" 오류를 방지하려면 MySQL max_allowed_packet 변수를 최댓값인 1073741824로 설정합니다.
데이터베이스에 대한 Looker 연결 만들기
데이터베이스 구성을 완료하면 Looker에서 데이터베이스에 연결할 수 있습니다. 다음 단계에 따라 Looker에서 데이터베이스로 이어지는 연결을 만듭니다.
- Looker의 관리 섹션에서 연결을 선택한 후 연결 추가를 클릭합니다.
- 언어 드롭다운 메뉴에서 데이터베이스 언어 이름으로 MySQL, MySQL 8.0.12 이상, MariaDB, SingleStore 또는 SingleStore 7 이상을 선택합니다. 
- 연결 세부정보를 작성합니다. 대다수의 설정은 대부분의 데이터베이스 언어에 공통적으로 적용됩니다. 자세한 내용은 데이터베이스에 Looker 연결 문서 페이지를 참조하세요. 
- 제대로 연결되었는지 확인하려면 테스트를 클릭합니다. 문제 해결 정보는 데이터베이스 연결 테스트 문서 페이지를 참조하세요. 
- 이러한 설정을 저장하려면 연결을 클릭합니다. 
기능 지원
Looker가 특정 기능을 지원하려면 데이터베이스 언어도 해당 기능을 지원해야 합니다.
MySQL은 Looker 25.18부터 다음 기능을 지원합니다.
| 기능 | 지원 여부 | 
|---|---|
| 지원 수준 | 지원됨 | 
| Looker(Google Cloud 핵심 서비스) | 아니요 | 
| 대칭 집계 | 예 | 
| 파생 테이블 | 예 | 
| 영구 SQL 파생 테이블 | 예 | 
| 영구 기본 파생 테이블 | 예 | 
| 안정적인 뷰 | 예 | 
| 쿼리 종료 | 예 | 
| SQL 기반 피벗 | 예 | 
| 시간대 | 예 | 
| SSL | 예 | 
| 소계 | 예 | 
| JDBC 추가 매개변수 | 예 | 
| 대소문자 구분 | 아니요 | 
| 위치 유형 | 예 | 
| 목록 유형 | 예 | 
| 백분위수 | 예 | 
| 고유 백분위수 | 예 | 
| SQL Runner 표시 프로세스 | 예 | 
| SQL Runner 설명 테이블 | 예 | 
| SQL Runner 표시 색인 | 예 | 
| SQL Runner 선택 10 | 예 | 
| SQL Runner 카운트 | 예 | 
| SQL 설명 | 예 | 
| OAuth 2.0 사용자 인증 정보 | 아니요 | 
| 컨텍스트 주석 | 예 | 
| 연결 풀링 | 아니요 | 
| HLL 스케치 | 아니요 | 
| 집계 인식 | 예 | 
| 증분 PDT | 예 | 
| 밀리초 | 예 | 
| 마이크로초 | 예 | 
| 구체화된 뷰 | 아니요 | 
| 기간별 측정 | 아니요 | 
| 대략적인 고유값 | 아니요 | 
MySQL 8.0.12 이상에서는 Looker 25.18부터 다음 기능을 지원합니다.
| 기능 | 지원 여부 | 
|---|---|
| 지원 수준 | 지원됨 | 
| Looker(Google Cloud 핵심 서비스) | 예 | 
| 대칭 집계 | 예 | 
| 파생 테이블 | 예 | 
| 영구 SQL 파생 테이블 | 예 | 
| 영구 기본 파생 테이블 | 예 | 
| 안정적인 뷰 | 예 | 
| 쿼리 종료 | 예 | 
| SQL 기반 피벗 | 예 | 
| 시간대 | 예 | 
| SSL | 예 | 
| 소계 | 예 | 
| JDBC 추가 매개변수 | 예 | 
| 대소문자 구분 | 아니요 | 
| 위치 유형 | 예 | 
| 목록 유형 | 예 | 
| 백분위수 | 예 | 
| 고유 백분위수 | 예 | 
| SQL Runner 표시 프로세스 | 예 | 
| SQL Runner 설명 테이블 | 예 | 
| SQL Runner 표시 색인 | 예 | 
| SQL Runner 선택 10 | 예 | 
| SQL Runner 카운트 | 예 | 
| SQL 설명 | 예 | 
| OAuth 2.0 사용자 인증 정보 | 아니요 | 
| 컨텍스트 주석 | 예 | 
| 연결 풀링 | 아니요 | 
| HLL 스케치 | 아니요 | 
| 집계 인식 | 예 | 
| 증분 PDT | 예 | 
| 밀리초 | 예 | 
| 마이크로초 | 예 | 
| 구체화된 뷰 | 아니요 | 
| 기간별 측정 | 예 | 
| 대략적인 고유값 | 아니요 | 
MariaDB는 Looker 25.18부터 다음 기능을 지원합니다.
| 기능 | 지원 여부 | 
|---|---|
| 지원 수준 | 지원됨 | 
| Looker(Google Cloud 핵심 서비스) | 예 | 
| 대칭 집계 | 예 | 
| 파생 테이블 | 예 | 
| 영구 SQL 파생 테이블 | 예 | 
| 영구 기본 파생 테이블 | 예 | 
| 안정적인 뷰 | 예 | 
| 쿼리 종료 | 예 | 
| SQL 기반 피벗 | 아니요 | 
| 시간대 | 예 | 
| SSL | 예 | 
| 소계 | 예 | 
| JDBC 추가 매개변수 | 예 | 
| 대소문자 구분 | 아니요 | 
| 위치 유형 | 예 | 
| 목록 유형 | 예 | 
| 백분위수 | 예 | 
| 고유 백분위수 | 예 | 
| SQL Runner 표시 프로세스 | 예 | 
| SQL Runner 설명 테이블 | 예 | 
| SQL Runner 표시 색인 | 예 | 
| SQL Runner 선택 10 | 예 | 
| SQL Runner 카운트 | 예 | 
| SQL 설명 | 예 | 
| OAuth 2.0 사용자 인증 정보 | 아니요 | 
| 컨텍스트 주석 | 예 | 
| 연결 풀링 | 아니요 | 
| HLL 스케치 | 아니요 | 
| 집계 인식 | 예 | 
| 증분 PDT | 아니요 | 
| 밀리초 | 예 | 
| 마이크로초 | 예 | 
| 구체화된 뷰 | 아니요 | 
| 기간별 측정 | 아니요 | 
| 대략적인 고유값 | 아니요 | 
SingleStore는 Looker 25.18부터 다음 기능을 지원합니다.
| 기능 | 지원 여부 | 
|---|---|
| 지원 수준 | 지원됨 | 
| Looker(Google Cloud 핵심 서비스) | 아니요 | 
| 대칭 집계 | 예 | 
| 파생 테이블 | 예 | 
| 영구 SQL 파생 테이블 | 예 | 
| 영구 기본 파생 테이블 | 예 | 
| 안정적인 뷰 | 예 | 
| 쿼리 종료 | 예 | 
| SQL 기반 피벗 | 예 | 
| 시간대 | 예 | 
| SSL | 예 | 
| 소계 | 예 | 
| JDBC 추가 매개변수 | 예 | 
| 대소문자 구분 | 아니요 | 
| 위치 유형 | 예 | 
| 목록 유형 | 예 | 
| 백분위수 | 아니요 | 
| 고유 백분위수 | 아니요 | 
| SQL Runner 표시 프로세스 | 예 | 
| SQL Runner 설명 테이블 | 예 | 
| SQL Runner 표시 색인 | 예 | 
| SQL Runner 선택 10 | 예 | 
| SQL Runner 카운트 | 예 | 
| SQL 설명 | 예 | 
| OAuth 2.0 사용자 인증 정보 | 아니요 | 
| 컨텍스트 주석 | 예 | 
| 연결 풀링 | 아니요 | 
| HLL 스케치 | 아니요 | 
| 집계 인식 | 예 | 
| 증분 PDT | 아니요 | 
| 밀리초 | 예 | 
| 마이크로초 | 예 | 
| 구체화된 뷰 | 아니요 | 
| 기간별 측정 | 아니요 | 
| 대략적인 고유값 | 아니요 | 
SingleStore 7 이상에서는 Looker 25.18부터 다음 기능을 지원합니다.
| 기능 | 지원 여부 | 
|---|---|
| 지원 수준 | 지원됨 | 
| Looker(Google Cloud 핵심 서비스) | 예 | 
| 대칭 집계 | 예 | 
| 파생 테이블 | 예 | 
| 영구 SQL 파생 테이블 | 예 | 
| 영구 기본 파생 테이블 | 예 | 
| 안정적인 뷰 | 예 | 
| 쿼리 종료 | 예 | 
| SQL 기반 피벗 | 예 | 
| 시간대 | 예 | 
| SSL | 예 | 
| 소계 | 예 | 
| JDBC 추가 매개변수 | 예 | 
| 대소문자 구분 | 아니요 | 
| 위치 유형 | 예 | 
| 목록 유형 | 예 | 
| 백분위수 | 예 | 
| 고유 백분위수 | 아니요 | 
| SQL Runner 표시 프로세스 | 예 | 
| SQL Runner 설명 테이블 | 예 | 
| SQL Runner 표시 색인 | 예 | 
| SQL Runner 선택 10 | 예 | 
| SQL Runner 카운트 | 예 | 
| SQL 설명 | 예 | 
| OAuth 2.0 사용자 인증 정보 | 아니요 | 
| 컨텍스트 주석 | 예 | 
| 연결 풀링 | 아니요 | 
| HLL 스케치 | 아니요 | 
| 집계 인식 | 예 | 
| 증분 PDT | 아니요 | 
| 밀리초 | 예 | 
| 마이크로초 | 예 | 
| 구체화된 뷰 | 아니요 | 
| 기간별 측정 | 아니요 | 
| 대략적인 고유값 | 아니요 |