MySQL, Clustrix, MariDB, SingleStore

이 안내를 사용하는 언어

MySQL, Clustrix, MariDB, SingleStore (이전의 MemSQL)는 이 페이지에 설명된 데이터베이스 설정 요구사항을 공유합니다.

네트워크 트래픽 암호화

Looker에서는 Looker 애플리케이션과 데이터베이스 간의 네트워크 트래픽을 암호화할 것을 적극 권장합니다. 보안 데이터베이스 액세스 사용 설정 문서 페이지에 설명된 옵션 중 하나를 고려하세요.

SSL 암호화를 사용하는 데 관심이 있다면 이 MySQL 문서 페이지를 참조하세요.

사용자 및 보안

Looker 사용자에게 필요한 액세스 권한을 만들고 부여하려면 데이터베이스 언어 및 버전에 적합한 섹션의 안내를 따르세요.

MySQL 8.0.X:

GROUP BY 절의 암시적 정렬에서 MySQL 지원 중단으로 인해 Looker MySQL 8.0.X 언어 옵션은 패치 버전 8.0.12 이상으로 구현됩니다. 이는 MySQL 버전 8.0.0~8.0.11의 Looker 소계에 영향을 미쳐 SQL 생성 오류가 발생합니다. Looker에서 완전히 통합하려면 모든 MySQL 8.0.X 데이터베이스를 8.0.12 이상으로 업그레이드하라고 안내합니다. 그러나 이전 MySQL 버전은 소계를 제외하고 계속 작동합니다.

MySQL 8.0.X에서 기본 인증 플러그인은 caching_sha2_password입니다. Looker는 mysql_native_password 플러그인을 사용하여 JDBC 드라이버를 통해 MySQL 데이터베이스에 인증을 시도합니다. 이 버전의 MySQL이 제대로 작동하려면 다음 추가 단계를 수행해야 합니다.

  1. mysql_native_password 플러그인을 사용하도록 MySQL 데이터베이스를 구성합니다. 이 작업은 여러 가지 방법으로 수행할 수 있으며 MySQL 8 데이터베이스가 배포되는 방식과 구성에 액세스할 수 있는 액세스 유형에 따라 다릅니다.
    1. --default-auth=mysql_native_password 플래그를 사용하여 프로세스를 시작합니다.
    2. my.cnf 구성 파일에서 속성을 설정합니다.
      ```none [mysqld] default-authentication-plugin=mysql_native_password ```
    3. 데이터베이스 인스턴스가 AWS RDS를 통해 호스팅되는 경우 이 데이터베이스 인스턴스에 적용되는 RDS 매개변수 그룹을 통해 default_authentication_plugin 매개변수를 설정합니다.

  2. 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 및 이전 버전, Clustrix, MariDB, 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 버전에서 MySQL은 다음 Looker 기능을 지원합니다.

최신 Looker 버전에서 MySQL 8.0.12 이상은 다음과 같은 Looker 기능을 지원합니다.

Looker 최신 출시 버전에서 Clustrix는 다음과 같은 Looker 기능을 지원합니다.

최신 버전의 Looker에서 마리아DB는 다음과 같은 Looker 기능을 지원합니다.

Looker 최신 출시 버전에서 단일 스토어는 다음 Looker 기능을 지원합니다.

Looker 최신 출시 버전에서 단일 스토어 7 이상 버전은 다음과 같은 Looker 기능을 지원합니다.

다음 단계

데이터베이스 구성을 완료한 후 이 지침에 따라 Looker에서 데이터베이스에 연결할 수 있습니다.

연결을 만들 때는 올바른 데이터베이스 언어 이름을 사용해야 합니다. 데이터베이스 구성 안내는 MySQL, Clustrix, MariaDB, SingleStore와 동일하지만 다음에 설명된 연결 페이지의 언어 드롭다운에서 특정 언어를 선택해야 합니다.