패키지화되지 않은 JDBC 드라이버를 사용하도록 Looker 구성
일부 Looker 지원 언어의 경우 라이선스 관련 이유로 JDBC 드라이버를 Looker JAR 파일에 패키징할 수 없습니다. 이러한 경우 Looker 서버에 JDBC 드라이버를 설치한 후 이 페이지의 설명대로 패키지화되지 않은 드라이버를 등록하도록 Looker를 구성해야 합니다.
모든 언어에서 '지원됨' 아래에 값이 '아니요'인 경우 패키지화되지 않은 JDBC 드라이버 설치가 필요합니다.
언어 | 지원 여부 |
---|---|
Actian Avalanche | 아니요 |
Amazon Athena | 예 |
Amazon Aurora MySQL | 예 |
Amazon Redshift | 예 |
Apache Druid | 예 |
Apache Druid 0.13 이상 | 예 |
Apache Druid 0.18 이상 | 예 |
Apache Hive 2.3 이상 | 예 |
Apache Hive 3.1.2 이상 | 예 |
Apache Spark 3 이상 | 예 |
ClickHouse | 예 |
Cloudera Impala 3.1 이상 | 예 |
네이티브 드라이버를 사용하는 Cloudera Impala 3.1 이상 | 아니요 |
네이티브 드라이버를 사용하는 Cloudera Impala | 아니요 |
DataVirtuality | 아니요 |
Databricks | 예 |
Denodo 7 | 예 |
Denodo 8 | 예 |
Dremio | 예 |
Dremio 11 이상 | 예 |
Exasol | 예 |
Firebolt | 예 |
Google BigQuery Legacy SQL | 예 |
Google BigQuery 표준 SQL | 예 |
Google Cloud PostgreSQL | 예 |
Google Cloud SQL | 예 |
Google Spanner | 예 |
Greenplum | 예 |
HyperSQL | 예 |
IBM Netezza | 예 |
MariaDB | 예 |
Microsoft Azure PostgreSQL | 예 |
Microsoft Azure SQL 데이터베이스 | 예 |
Microsoft Azure Synapse Analytics | 예 |
Microsoft SQL Server 2008 이상 | 예 |
Microsoft SQL Server 2012 이상 | 예 |
Microsoft SQL Server 2016 | 예 |
Microsoft SQL Server 2017 이상 | 예 |
MongoBI | 아니요 |
MySQL | 예 |
MySQL 8.0.12 이상 | 예 |
Oracle | 예 |
Oracle ADWC | 예 |
PostgreSQL 9.5 이상 | 예 |
PostgreSQL pre-9.5 | 예 |
PrestoDB | 예 |
PrestoSQL | 예 |
SAP HANA 2 이상 | 예 |
SingleStore | 예 |
SingleStore 7 이상 | 예 |
Snowflake | 예 |
Teradata | 아니요 |
Trino | 예 |
벡터 | 아니요 |
Vertica | 예 |
기본 요건
패키지화되지 않은 JDBC 드라이버가 필요한 데이터베이스에 Looker를 연결하려면 다음이 필요합니다.
- Looker 서버에 대한 명령줄 액세스.
- JAR 파일로 지정된 JDBC 드라이버. 언어의 특정 문서에 이 파일을 다운로드하는 위치에 대한 안내가 있을 수 있습니다. 그렇지 않은 경우 필요한 JAR 파일에 액세스할 수 있다고 가정합니다.
- 언어의 드라이버 기호. 드라이버 기호는 Looker가 내부적으로 언어를 드라이버와 일치시키기 위해 사용하는 문자열 값입니다. 이 페이지의 예시에서는 일반 값
driver_symbol
을 사용합니다. Looker에서 JDBC 드라이버를 언어에 등록하는 데 사용하는 기호는 각 언어의 Looker 문서를 참조하세요. - 언어를
custom_jdbc_config.yml
구성 파일에 추가할 YAML의 드라이버 항목입니다. 자세한 내용은 이 페이지의 YAML 구성 파일의 드라이버 항목 섹션을 참조하세요.
YAML 구성 파일의 드라이버 항목
다음은 custom_jdbc_config.yml
파일의 드라이버 항목의 예시입니다.
- name: driver_symbol
dir_name: driver_symbol
module_path: com.dialect.jdbc.DialectDriver
override_jdbc_url_subprotocol: driver_subprotocol # optional
언어의 드라이버 항목을 작성할 때 다음을 수행하세요.
custom_jdbc_config.yml
파일은 YAML 기반이므로 들여쓰기와 간격이 중요합니다.name
및dir_name
속성은 JDBC 드라이버를 등록할 때 Looker에서 해당 언어에 사용하는 드라이버 기호여야 합니다.custom_jdbc_drivers
에서 JDBC 드라이버 JAR 파일에 대한 상대 경로가 포함된dir_name
대신file_name
속성을 사용할 수 있습니다. 여러 드라이버를 고유 디렉터리에 격리하고 Java 클래스가 충돌할 가능성을 낮추므로dir_name
를 사용하는 것이 좋습니다.module_path
속성은 특정 JDBC 드라이버에 따라 달라집니다. Java 드라이버 클래스의 정규화된 경로여야 합니다. 이 예시에서는 일반 값을 사용하지만 드라이버가 사용하는 특정module_path
를 찾으려면 드라이버 클래스를 등록하는 방법에 대한 문서를 참조하세요.override_jdbc_url_subprotocol
은 Looker에서 데이터베이스에 전송하는 JDBC 문자열에 사용되는 하위 프로토콜을 재정의하는 데 사용되는 선택적 인수입니다. 일반적인 JDBC 문자열은 다음과 같습니다.
jdbc:mysql://localhost:3306/database_name[?propertyName1][=propertyValue1]
여기서 mysql
는 사용 중인 JDBC 하위 프로토콜입니다.
override_jdbc_url_subprotocol: driver_subprotocol
을 지정하면 이 JDBC 문자열은 다음과 같이 됩니다.
jdbc:driver_subprotocol://localhost:3306/database_name[?propertyName1][=propertyValue1]
이 옵션은 Looker의 기본 URL 하위 프로토콜 이외의 URL 하위 프로토콜을 필요로 하는 패키징되지 않은 JDBC 드라이버를 사용해야 하는 경우에 필요합니다. 대부분의 경우 언어 문서에서 이를 명시적으로 언급하지 않는 한 필요하지 않습니다. MongoBI는 이 옵션이 필요한 언어의 예시입니다.
패키지화되지 않은 JDBC 드라이버 설치
Looker 애플리케이션 기본 디렉터리로 변경합니다. 이 예시에서는
looker
를 기본 디렉터리로 사용합니다.cd looker
custom_jdbc_drivers
디렉터리를 만듭니다. 패키지되지 않은 모든 JDBC 드라이버 설치에 대한 최상위 디렉터리입니다. 이 디렉터리의 경로는looker/custom_jdbc_drivers
이어야 합니다.mkdir custom_jdbc_drivers
custom_jdbc_drivers
디렉터리에서 언어의 드라이버 기호로 이름이 지정된 하위 디렉터리를 만듭니다. 이 예시에서는 일반 값driver_symbol
을 사용합니다. 디렉터리의 결과 경로는looker/custom_jdbc_drivers/driver_symbol
과 같습니다.cd custom_jdbc_drivers mkdir driver_symbol
언어의 JDBC 드라이버 파일을 이 디렉터리에 배치합니다. 이 메서드의 이름은 언어 드라이버를 찾아 서버에 업로드할 수 있는 위치에 따라 다르지만 관련 JAR 파일이
driver_symbol
디렉터리 내에 있는지 확인합니다.looker/custom_jdbc_drivers/driver_symbol/
예:
looker/custom_jdbc_drivers/driver_symbol/DialectDriver.jar
필요한 파일을 Looker 서버로 이동하는 방법은 드라이버 파일을 가져오는 위치와 파일 전송 환경설정에 따라 달라집니다. 파일을 이 디렉터리로 전송하는 명령어의 예시에는
wget
,scp
,curl
이 있습니다.디렉터리를 Looker 애플리케이션 디렉터리로 변경하고
custom_jdbc_config.yml
이라는 구성 파일을 만듭니다. 이 파일의 경로는looker/custom_jdbc_config.yml
여야 합니다. 이 파일에는 Looker에서 커스텀 JDBC 드라이버를 찾아 등록하는 데 필요한 정보가 포함됩니다.cd looker vim custom_jdbc_config.yml
언어에 대해 새 항목을
custom_jdbc_config.yml
구성 파일에 추가합니다. 드라이버 항목에 대한 자세한 내용은 이 페이지의 YAML 구성 파일의 드라이버 항목 섹션을 참조하세요.- name: driver_symbol dir_name: driver_symbol module_path: com.dialect.jdbc.DialectDriver
Looker 애플리케이션이 패키지화되지 않은 JDBC 드라이버 구성으로 시작되도록
lookerstart.cfg
파일을 만들거나 업데이트합니다. 이 파일의 경로는looker/lookerstart.cfg
여야 합니다.--use-custom-jdbc-config
옵션을 추가합니다. 다른 옵션이 있는 경우 Looker 시작 옵션의 끝에 다음을 추가합니다.LOOKERARGS="--use-custom-jdbc-config"
lookerstart.cfg
가 아닌LOOKERARGS
를 환경 변수와 같이 설정한 경우 이 시작 플래그를 추가할 수 있습니다. 또는 기존 값이 이 파일로 확장되도록LOOKERARGS="${LOOKERARGS} --use-custom-jdbc-config"
를 설정할 수 있습니다.Looker 애플리케이션을 다시 시작합니다. 이 명령어에서 Looker 시작 스크립트의 이름(예:
./looker
또는./looker.sh
)을 사용합니다../looker restart
또는
none ./looker stop ./looker start
패키지화되지 않은 JDBC 드라이버 여러 개
패키지화되지 않은 JDBC 드라이버를 사용하기 위해 언어를 2개 이상 구성해야 하는 경우에도 패키지화되지 않은 JDBC 드라이버 설치 섹션에 설명된 프로세스가 계속 적용됩니다. custom_jdbc_drivers
디렉터리에는 자체 드라이버 JAR이 포함된 여러 dialect
하위 디렉터리가 있고 custom_jdbc_config.yml
파일에는 여러 항목이 있습니다.
ls looker/custom_jdbc_drivers
driver_symbol_1 driver_symbol_2
ls looker/custom_jdbc_drivers/driver_symbol_1
Dialect1Driver.jar
- name: driver_symbol_1
dir_name: driver_symbol_1
module_path: com.dialect.jdbc.Dialect1Driver
- name: driver_symbol_2
dir_name: driver_symbol_2
module_path: com.dialect.jdbc.Dialect2Driver