패키지되지 않은 JDBC 드라이버

패키지화되지 않은 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 기반이므로 들여쓰기와 간격이 중요합니다.
  • namedir_name 속성은 JDBC 드라이버를 등록할 때 Looker에서 해당 언어에 사용하는 드라이버 기호여야 합니다.
  • custom_jdbc_drivers에서 JDBC 드라이버 JAR 파일에 대한 상대 경로가 포함된 dir_name 대신 file_name 속성을 사용할 수 있습니다. 여러 드라이버를 고유 디렉터리에 격리하고 Java 클래스가 충돌할 가능성을 낮추므로 dir_name를 사용하는 것이 좋습니다.
  • module_path 속성은 특정 JDBC 드라이버에 따라 달라집니다. Java 드라이버 클래스의 정규화된 경로여야 합니다. 이 예시에서는 일반 값을 사용하지만 드라이버가 사용하는 특정 module_path를 찾으려면 드라이버 클래스를 register하는 방법에 대한 문서를 참조하세요.
  • 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 드라이버 설치

  1. Looker 애플리케이션 기본 디렉터리로 변경합니다. 이 예시에서는 looker를 기본 디렉터리로 사용합니다.

    cd looker
    
  2. custom_jdbc_drivers 디렉터리를 만듭니다. 패키지되지 않은 모든 JDBC 드라이버 설치에 대한 최상위 디렉터리입니다. 이 디렉터리의 경로는 looker/custom_jdbc_drivers이어야 합니다.

    mkdir custom_jdbc_drivers
    
  3. custom_jdbc_drivers 디렉터리에서 언어의 드라이버 기호로 이름이 지정된 하위 디렉터리를 만듭니다. 이 예시에서는 일반 값 driver_symbol을 사용합니다. 디렉터리의 결과 경로는 looker/custom_jdbc_drivers/driver_symbol과 같습니다.

    cd custom_jdbc_drivers
    mkdir driver_symbol
    

  4. 언어의 JDBC 드라이버 파일을 이 디렉터리에 배치합니다. 이 메서드의 이름은 언어 드라이버를 찾아 서버에 업로드할 수 있는 위치에 따라 다르지만 관련 JAR 파일이 driver_symbol 디렉터리 내에 있는지 확인합니다. looker/custom_jdbc_drivers/driver_symbol/

    예: looker/custom_jdbc_drivers/driver_symbol/DialectDriver.jar

    필요한 파일을 Looker 서버로 이동하는 방법은 드라이버 파일을 가져오는 위치와 파일 전송 환경설정에 따라 달라집니다. 파일을 이 디렉터리로 전송하는 명령어의 예시에는 wget, scp, curl이 있습니다.

  5. 디렉터리를 Looker 애플리케이션 디렉터리로 변경하고 custom_jdbc_config.yml이라는 구성 파일을 만듭니다. 이 파일의 경로는 looker/custom_jdbc_config.yml여야 합니다. 이 파일에는 Looker에서 커스텀 JDBC 드라이버를 찾아 등록하는 데 필요한 정보가 포함됩니다.

    cd looker
    vim custom_jdbc_config.yml
    
  6. 언어에 대해 새 항목을 custom_jdbc_config.yml 구성 파일에 추가합니다. 드라이버 항목에 대한 자세한 내용은 이 페이지의 YAML 구성 파일의 드라이버 항목 섹션을 참조하세요.

    - name: driver_symbol
      dir_name: driver_symbol
      module_path: com.dialect.jdbc.DialectDriver
    
  7. 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"를 설정할 수 있습니다.

  8. 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