パッケージ化されていない 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 Standard SQL
Google Cloud PostgreSQL
Google Cloud SQL
Google Spanner
Greenplum
HyperSQL
IBM Netezza
MariaDB
Microsoft Azure PostgreSQL
Microsoft Azure SQL Database
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 9.5 より前
PrestoDB
PrestoSQL
SAP HANA 2+
SingleStore
SingleStore 7+
Snowflake
Teradata
×
Trino
Vector
×
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 を使用できます。dir_name をおすすめします。これにより、複数のドライバを独自のディレクトリに分離し、Java クラスの競合の可能性を減らすことができます。
  • 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 サーバーに移動する方法は、ドライバ ファイルを取得する場所とファイル転送の設定によって異なります。このディレクトリにファイルを転送するコマンドの例としては、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.sh などの Looker 起動スクリプトの名前を使用します。

    ./looker restart
    

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

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

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