パッケージ化されていない 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を見つけるには、ドライバクラスを登録する方法に関するドキュメントをご覧ください。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 lookercustom_jdbc_driversという名前のディレクトリを作成します。これは、パッケージ化されていない JDBC ドライバをすべてインストールする最上位ディレクトリです。このディレクトリへのパスはlooker/custom_jdbc_driversにする必要があります。mkdir custom_jdbc_driverscustom_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.ymlcustom_jdbc_config.yml構成ファイルに言語の新しいエントリを追加します。ドライバ エントリについて詳しくは、このページの YAML 構成ファイルのドライバ エントリのセクションをご覧ください。- name: driver_symbol dir_name: driver_symbol module_path: com.dialect.jdbc.DialectDriverパッケージ化されていない JDBC ドライバ構成で Looker アプリケーションが起動するように、ファイル
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