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

패키지화되지 않은 JDBC 드라이버를 사용하도록 Looker 구성

일부 Looker 지원 언어의 경우 라이선스와 관련된 이유로 JDBC 드라이버를 Looker JAR 파일에 패키징할 수 없습니다. 이러한 경우 Looker 서버에 JDBC 드라이버를 설치한 다음 이 페이지에 설명된 대로 패키지되지 않은 드라이버를 등록하도록 Looker를 구성해야 합니다.

다음 표에서는 패키징되지 않은 JDBC 드라이버 설치가 필요한 언어를 보여줍니다.

기본 요건

패키지되지 않은 JDBC 드라이버가 필요한 데이터베이스에 Looker를 연결하려면 다음이 필요합니다.

  • Looker 서버에 대한 명령줄 액세스 권한입니다.
  • JAR 파일인 JDBC 드라이버. 언어별 문서에 이 파일을 다운로드할 수 있는 위치가 안내되어 있을 수 있습니다. 그렇지 않으면 필요한 JAR 파일에 액세스할 수 있다고 가정합니다.
  • 방언의 운전자 기호 드라이버 기호는 Looker에서 언어를 드라이버와 일치시키기 위해 내부적으로 사용하는 문자열 값입니다. 이 페이지의 예시에서는 일반적인 값인 driver_symbol를 사용합니다. 이 페이지에 있는 드라이버 기호 목록에서 Looker가 방언에 JDBC 드라이버를 등록하는 데 사용하는 기호를 확인할 수 있습니다.
  • 언어를 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 속성을 사용할 수 있습니다. dir_name은 여러 드라이버를 자체 디렉터리에 격리하고 자바 클래스가 충돌할 가능성을 줄이기 때문에 권장됩니다.
  • module_path 속성은 특정 JDBC 드라이버에 따라 다릅니다. 자바 드라이버 클래스의 정규화된 경로여야 합니다. 이 예에서는 일반 값을 사용하지만, 운전자가 사용하는 특정 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 드라이버 설치

  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. 패키지 해제된 JDBC 드라이버 구성으로 Looker 애플리케이션이 시작되도록 lookerstart.cfg 파일을 만들거나 업데이트합니다. 이 파일의 경로는 looker/lookerstart.cfg여야 합니다. --use-custom-jdbc-config 옵션을 추가합니다. 다른 옵션이 있는 경우 Looker 시작 옵션 끝에 다음을 추가합니다.

    LOOKERARGS="--use-custom-jdbc-config"
    

    환경 변수에서와 같이 LOOKERARGSlookerstart.cfg가 아닌 다른 곳에 설정된 경우 여기에 이 시작 플래그를 추가할 수 있습니다. 또는 LOOKERARGS="${LOOKERARGS} --use-custom-jdbc-config"을 설정하여 기존 값이 이 파일로 확장되도록 할 수 있습니다.

  8. Looker 애플리케이션을 다시 시작합니다. 이 명령어에서는 ./looker 또는 ./looker.sh과 같은 Looker 시작 스크립트의 이름을 사용합니다.

    ./looker restart
    

    또는 none ./looker stop ./looker start

패키지 해제된 여러 JDBC 드라이버

패키지되지 않은 JDBC 드라이버를 사용하기 위해 2개 이상의 언어를 구성해야 하는 경우에도 위의 프로세스가 적용됩니다. 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