パッケージ化されていない JDBC ドライバ

非パッケージ化 JDBC ドライバを使用するように Looker を構成する

Looker でサポートされている言語の一部については、ライセンス関連の理由により JDBC ドライバを Looker JAR ファイルにパッケージ化できません。このような場合には、JDBC ドライバを Looker サーバーにインストールしてから、このページの説明に沿ってパッケージ化されていないドライバを登録するように Looker を構成する必要があります。

次の表に、パッケージされていない JDBC ドライバのインストールが必要な言語を示します。

前提条件

Looker をパッケージ化されていない JDBC ドライバを必要とするデータベースに接続するには、以下が必要です。

  • Looker サーバーへのコマンドライン アクセス。
  • JAR ファイルとしての JDBC ドライバ。言語固有のドキュメントには、このファイルのダウンロード方法が記載されています。それ以外の場合は、必要な JAR ファイルにアクセスできることを前提としています。
  • 言語のドライバ シンボル。ドライバ シンボルは、Looker が内部でドライバの言語とマッチングするために使用する文字列値です。このページの例では、一般的な値 driver_symbol を使用しています。Looker が言語に登録するために使用するシンボルについては、このページのドライバ シンボルのリストをご覧ください。
  • 言語の言語の YAML のドライバ エントリcustom_jdbc_config.yml 構成ファイルに追加します。詳細については、このページの 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 を使用できます。dir_name が推奨されるのは、複数のドライバを独自のディレクトリに隔離して、Java クラスが競合する可能性を減らすためです。
  • 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 ドライバのインストール

  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 サーバーに移動する方法は、ドライバ ファイルの入手場所とファイル転送の設定によって異なります。このディレクトリにファイルを転送するコマンドの例は、wgetscpcurl などです。

  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"
    

    LOOKERARGSlookerstart.cfg 以外の場所(環境変数など)に設定している場合は、そこにこの起動フラグを追加できます。または、LOOKERARGS="${LOOKERARGS} --use-custom-jdbc-config" を設定して、既存の値がこのファイルに展開されるようにすることもできます。

  8. Looker アプリケーションを再起動します。このコマンドでは、Looker の起動スクリプトの名前(./looker./looker.sh など)を使用します。

    ./looker restart
    

    または none ./looker stop ./looker start

パッケージ化されていない複数の JDBC ドライバ

パッケージ化されていない 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