パッケージ化されていない 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 ドライバを言語に登録するために使用する記号については、このページのドライバ記号のリストをご覧ください。
  • 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 を見つけるには、ドライバクラスを登録する方法に関するドキュメントをご覧ください。
  • 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