パッケージ化されていない 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
を見つけるには、ドライバクラスを登録する方法に関するドキュメントをご覧ください。registeroverride_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 ドライバのインストール
Looker アプリケーションのベース ディレクトリに変更します。この例では、
looker
をベース ディレクトリとして使用しています。cd looker
custom_jdbc_drivers
という名前のディレクトリを作成します。これは、パッケージ化されていない JDBC ドライバをすべてインストールする最上位ディレクトリです。このディレクトリへのパスはlooker/custom_jdbc_drivers
にする必要があります。mkdir custom_jdbc_drivers
custom_jdbc_drivers
ディレクトリに、言語のドライバ シンボルという名前のサブディレクトリを作成します。この例では、汎用値driver_symbol
を使用しています。ディレクトリへのパスはlooker/custom_jdbc_drivers/driver_symbol
のようになります。cd custom_jdbc_drivers mkdir driver_symbol
お使いの言語の JDBC ドライバ ファイルをこのディレクトリに配置します。この方法は、お使いの言語のドライバがある場所やサーバーにアップロードする場所によって異なりますが、次のように、関連する JAR ファイルが 確実に
driver_symbol
ディレクトリ内にあるようにしてください。looker/custom_jdbc_drivers/driver_symbol/
例:
looker/custom_jdbc_drivers/driver_symbol/DialectDriver.jar
必要なファイルを Looker サーバーに移動する方法は、ドライバ ファイルを取得する場所とファイル転送の設定によって異なります。このディレクトリにファイルを転送するコマンドの例としては、
wget
、scp
、curl
などがあります。ディレクトリを Looker アプリケーション ディレクトリに変更し、
custom_jdbc_config.yml
という名前の構成ファイルを作成します。このファイルへのパスはlooker/custom_jdbc_config.yml
にする必要があります。このファイルには、Looker がカスタム JDBC ドライバを見つけて登録するために必要な情報が含まれます。cd looker vim custom_jdbc_config.yml
言語の新しいエントリを
custom_jdbc_config.yml
構成ファイルに追加します。ドライバ エントリについて詳しくは、このページの YAML 構成ファイルのドライバ エントリのセクションをご覧ください。- name: driver_symbol dir_name: driver_symbol module_path: com.dialect.jdbc.DialectDriver
Looker アプリケーションがパッケージ化されていない JDBC ドライバ構成で起動するように、
lookerstart.cfg
ファイルを作成または更新します。このファイルへのパスはlooker/lookerstart.cfg
にする必要があります。--use-custom-jdbc-config
オプションを追加します。他のオプションがある場合は、Looker の起動オプションの末尾に追加します。LOOKERARGS="--use-custom-jdbc-config"
LOOKERARGS
がlookerstart.cfg
以外の場所(環境変数など)に設定されている場合は、そちらに起動フラグを追加できます。または、既存の値がこのファイルに展開されるようにLOOKERARGS="${LOOKERARGS} --use-custom-jdbc-config"
を設定することもできます。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