Configurer Looker pour utiliser des pilotes JDBC non empaquetés
Pour certains des dialectes compatibles de Looker, le pilote JDBC ne peut pas être empaqueté dans le fichier JAR de Looker pour des raisons liées à la licence. Dans ce cas, vous devez installer le pilote JDBC sur votre serveur Looker, puis configurer Looker pour enregistrer le pilote non empaqueté, comme décrit sur cette page.
Tous les dialectes dont la valeur est "Non" sous "Compatibilité" nécessitent des installations de pilotes JDBC non empaquetés :
| Dialecte | Compatibilité |
|---|---|
| Actian Avalanche | |
| Amazon Athena | |
| Amazon Aurora MySQL | |
| Amazon Redshift | |
| Amazon Redshift 2.1+ | |
| Amazon Redshift Serverless 2.1+ | |
| Apache Druid | |
| Apache Druid 0.13.x - 0.17.x | |
| 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 AlloyDB for PostgreSQL | |
| 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 |
Prérequis
Pour connecter Looker à une base de données qui nécessite un pilote JDBC non empaqueté, vous aurez besoin des éléments suivants :
- Accès à la ligne de commande de votre serveur Looker.
- Le pilote JDBC en tant que fichier JAR. La documentation spécifique du dialecte peut contenir des instructions sur l'emplacement où télécharger ce fichier. Sinon, il est supposé que vous avez accès au fichier JAR requis.
- Le symbole de pilote pour votre dialecte. Un symbole de pilote est une valeur de chaîne que Looker utilise en interne pour faire correspondre le dialecte au pilote. Les exemples de cette page utilisent la valeur générique
driver_symbol. Consultez la documentation Looker pour chaque dialecte afin de connaître les symboles que Looker utilise pour enregistrer les pilotes JDBC dans les dialectes. - L'entrée de pilote YAML pour votre dialecte à ajouter au fichier de configuration
custom_jdbc_config.yml. Pour en savoir plus, consultez la section Entrées de pilote dans le fichier de configuration YAML sur cette page.
Entrées de pilote dans le fichier de configuration YAML
Voici un exemple d'entrée de pilote dans le fichier custom_jdbc_config.yml :
- name: driver_symbol
dir_name: driver_symbol
module_path: com.dialect.jdbc.DialectDriver
override_jdbc_url_subprotocol: driver_subprotocol # optional
Lorsque vous écrivez l'entrée de pilote pour votre dialecte :
- Le fichier
custom_jdbc_config.ymlest basé sur YAML, ce qui signifie que l'indentation et l'espacement sont importants. - Les attributs
nameetdir_namedoivent correspondre au symbole de pilote que Looker utilise pour votre dialecte lors de l'enregistrement des pilotes JDBC. - Il est possible d'utiliser l'attribut
file_nameau lieu dedir_namecontenant le chemin d'accès relatif decustom_jdbc_driversau fichier JAR du pilote JDBC.dir_nameest recommandé, car il permet de conserver plusieurs pilotes isolés dans leurs propres répertoires et réduit le risque de conflit entre les classes Java. - La propriété
module_pathdépend du pilote JDBC spécifique. Il doit s'agir du chemin d'accès complet à la classe de pilote Java. Cet exemple utilise une valeur générique, mais pour trouver lemodule_pathspécifique utilisé par le pilote, consultez sa documentation sur la façon d'enregistrer la classe de pilote. override_jdbc_url_subprotocolest un argument facultatif qui permet de remplacer le sous-protocole utilisé dans la chaîne JDBC que Looker envoie à la base de données. Une chaîne JDBC typique se présente comme suit :
jdbc:mysql://localhost:3306/database_name[?propertyName1][=propertyValue1]
Où mysql est le sous-protocole JDBC utilisé.
Si vous spécifiez override_jdbc_url_subprotocol: driver_subprotocol, cette chaîne JDBC devient :
jdbc:driver_subprotocol://localhost:3306/database_name[?propertyName1][=propertyValue1]
Cette option est requise si vous devez utiliser un pilote JDBC non empaqueté qui nécessite un sous-protocole d'URL autre que celui par défaut de Looker. Dans la plupart des cas, cela n'est pas nécessaire, sauf si la documentation du dialecte indique explicitement que c'est le cas. MongoBI est un exemple de dialecte qui nécessite cette option.
Installer des pilotes JDBC non empaquetés
Accédez au répertoire de base de l'application Looker. Cet exemple utilise
lookercomme répertoire de base.cd lookerCréez un répertoire appelé
custom_jdbc_drivers. Il s'agit du répertoire de premier niveau pour toutes les installations de pilotes JDBC non empaquetés. Le chemin d'accès à ce répertoire doit êtrelooker/custom_jdbc_drivers.mkdir custom_jdbc_driversDans le répertoire
custom_jdbc_drivers, créez un sous-répertoire nommé avec le symbole de pilote de votre dialecte. Cet exemple utilise la valeur génériquedriver_symbol. Le chemin d'accès obtenu vers le répertoire se présente comme suit :looker/custom_jdbc_drivers/driver_symbol.cd custom_jdbc_drivers mkdir driver_symbolPlacez les fichiers du pilote JDBC pour votre dialecte dans ce répertoire. La méthode à suivre dépend de l'emplacement où le pilote de votre dialecte peut être trouvé et importé sur le serveur, mais assurez-vous que le ou les fichiers JAR pertinents se trouvent dans le répertoire
driver_symbol:looker/custom_jdbc_drivers/driver_symbol/Par exemple :
looker/custom_jdbc_drivers/driver_symbol/DialectDriver.jarLa façon dont vous déplacez les fichiers nécessaires sur le serveur Looker varie en fonction de l'emplacement où vous obtenez les fichiers du pilote et de votre préférence pour le transfert de fichiers. Les commandes permettant de transférer des fichiers dans ce répertoire incluent
wget,scpetcurl.Accédez au répertoire de l'application Looker, puis créez un fichier de configuration nommé
custom_jdbc_config.yml. Le chemin d'accès à ce fichier doit êtrelooker/custom_jdbc_config.yml. Ce fichier contient les informations dont Looker a besoin pour localiser et enregistrer le pilote JDBC personnalisé.cd looker vim custom_jdbc_config.ymlAjoutez une entrée pour votre dialecte dans le fichier de configuration
custom_jdbc_config.yml. Pour en savoir plus sur les entrées de pilote, consultez la section Entrées de pilote dans le fichier de configuration YAML sur cette page.- name: driver_symbol dir_name: driver_symbol module_path: com.dialect.jdbc.DialectDriverCréez ou mettez à jour le fichier
lookerstart.cfgafin que l'application Looker démarre avec la configuration du pilote JDBC non empaqueté. Le chemin d'accès à ce fichier doit êtrelooker/lookerstart.cfg. Ajoutez l'option--use-custom-jdbc-config. Si d'autres options sont disponibles, ajoutez-les à la fin des options de démarrage de Looker :LOOKERARGS="--use-custom-jdbc-config"Si vous avez défini
LOOKERARGSailleurs que danslookerstart.cfg, par exemple dans une variable d'environnement, vous pouvez y ajouter cet indicateur de démarrage. Vous pouvez également définirLOOKERARGS="${LOOKERARGS} --use-custom-jdbc-config"afin que les valeurs existantes soient développées dans ce fichier.Redémarrez l'application Looker. Dans cette commande, utilisez le nom de votre script de démarrage Looker, tel que
./lookerou./looker.sh../looker restartou
none ./looker stop ./looker start
Plusieurs pilotes JDBC non empaquetés
Si vous devez configurer plusieurs dialectes pour utiliser des pilotes JDBC non empaquetés, le processus décrit dans la section Installer des pilotes JDBC non empaquetés s'applique toujours. Le répertoire custom_jdbc_drivers comporte plusieurs sous-répertoires dialect avec leurs propres JAR de pilote, et le fichier custom_jdbc_config.yml comporte plusieurs entrées :
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