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

パッケージ化されていない JDBC ドライバを使用するように Looker を構成する

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

「サポート対象」の下にある「いいえ」の値を持つすべての言語でパッケージ化されていない JDBC ドライバのインストールが必要です。

方言 サポート対象
Actian Avalanche
×
Amazon Athena
Amazon Aurora MySQL
はい
Amazon Redshift
はい
Amazon Redshift 2.1+
はい
Amazon Redshift Serverless 2.1+
はい
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+ with Native Driver
いいえ
Cloudera Impala with Native Driver
いいえ
DataVirtuality
いいえ
Databricks
Denodo 7
はい
Denodo 8 & 9
はい
Dremio
はい
Dremio 11+
はい
Exasol
はい
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 pre-9.5
はい
PrestoDB
はい
PrestoSQL
はい
SAP HANA
はい
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. パッケージ化されていない 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 ドライバを使用するように複数の言語を構成する必要がある場合、パッケージ化されていない 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