Pilotes JDBC non empaquetés

Configurer Looker pour utiliser des pilotes JDBC non empaquetés

Pour certains dialectes pris en charge par Looker, le pilote JDBC ne peut pas être empaqueté dans le fichier JAR Looker pour des raisons liées aux licences. Dans ce cas, vous devez installer le pilote JDBC sur votre serveur Looker, puis configurer Looker pour enregistrer le pilote décompressé comme décrit sur cette page.

Tous les dialectes dont la valeur est "Non" sous "Compatible ?" nécessitent des installations de pilotes JDBC non empaquetées:

Dialecte Compatible ?
Avalanche d'Actian
Non
Amazon Athena
Oui
Amazon Aurora MySQL
Oui
Amazon Redshift
Oui
Apache Druid
Oui
Apache Druid 0.13 et versions ultérieures
Oui
Apache Druid 0.18 et versions ultérieures
Oui
Apache Hive 2.3 et versions ultérieures
Oui
Apache Hive 3.1.2 et versions ultérieures
Oui
Apache Spark 3 et versions ultérieures
Oui
ClickHouse
Oui
Cloudera Impala 3.1+
Oui
Cloudera Impala 3.1+ avec pilote natif
Non
Cloudera Impala avec Native Driver
Non
DataVirtuality
Non
Databricks
Oui
Denodo 7
Oui
Denodo 8
Oui
Dremio
Oui
Dremio 11 et versions ultérieures
Oui
Exasol
Oui
Feu
Oui
Ancien SQL de Google BigQuery
Oui
SQL standard Google BigQuery
Oui
Google Cloud PostgreSQL
Oui
Google Cloud SQL
Oui
Google Spanner
Oui
Greenplum
Oui
HyperSQL
Oui
IBM Netezza
Oui
MariaDB
Oui
Microsoft Azure PostgreSQL
Oui
Base de données Microsoft Azure SQL
Oui
Microsoft Azure Synapse Analytics
Oui
Microsoft SQL Server 2008 et versions ultérieures
Oui
Microsoft SQL Server 2012 et versions ultérieures
Oui
Microsoft SQL Server 2016
Oui
Microsoft SQL Server 2017 et versions ultérieures
Oui
MongoBI
Non
MySQL
Oui
MySQL 8.0.12 et versions ultérieures
Oui
Oracle
Oui
Oracle ADWC
Oui
PostgreSQL 9.5 et versions ultérieures
Oui
PostgreSQL version antérieure à 9.5
Oui
PrestoDB
Oui
PrestoSQL
Oui
SAP HANA 2 et versions ultérieures
Oui
SingleStore
Oui
SingleStore 7 et versions ultérieures
Oui
Snowflake
Oui
Teradata
Non
Trino
Oui
Vecteur
Non
Vertica
Oui

Prérequis

Pour connecter Looker à une base de données nécessitant un pilote JDBC décompressé, vous avez besoin des éléments suivants:

  • Accès en ligne de commande à votre serveur Looker.
  • Pilote JDBC sous forme de fichier JAR. La documentation spécifique du dialecte peut indiquer où télécharger ce fichier ; sinon, nous supposons que vous avez accès au fichier JAR nécessaire.
  • Symbole conducteur 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 liste des symboles de pilote sur cette page pour connaître les symboles utilisés par Looker 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 Consultez la section Entrées du pilote dans le fichier de configuration YAML sur cette page pour en savoir plus.

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 du pilote pour votre dialecte:

  • Le fichier custom_jdbc_config.yml est basé sur YAML, ce qui signifie que les retraits et les espaces sont importants.
  • Les attributs name et dir_name doivent être le symbole de pilote attendu par Looker pour votre dialecte lors de l'enregistrement des pilotes JDBC.
  • Il est possible d'utiliser l'attribut file_name au lieu de dir_name contenant le chemin d'accès relatif entre custom_jdbc_drivers et le fichier JAR du pilote JDBC. dir_name est recommandé, car il favorise l'isolation de plusieurs pilotes dans leurs propres répertoires et réduit le risque de collision des classes Java.
  • La propriété module_path dé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. Toutefois, pour trouver la classe module_path spécifique utilisée par le conducteur, consultez sa documentation expliquant comment register la classe de pilote.
  • override_jdbc_url_subprotocol est 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]

mysql est le sous-protocole JDBC utilisé.

Si vous spécifiez override_jdbc_url_subprotocol: driver_subprotocol, cette chaîne JDBC se présentera comme suit:

jdbc:driver_subprotocol://localhost:3306/database_name[?propertyName1][=propertyValue1]

Cette option est obligatoire si vous avez besoin d'utiliser un pilote JDBC décompressé qui nécessite un sous-protocole d'URL autre que le sous-protocole d'URL 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 nécessaire. MongoBI est un exemple de dialecte qui nécessite cette option.

Installer des pilotes JDBC non empaquetés

  1. Accédez au répertoire de base de l'application Looker. Pour ce document, nous supposons qu'il s'agit de looker

    cd looker
    
  2. Cré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ées. Le chemin d'accès à ce répertoire doit être looker/custom_jdbc_drivers.

    mkdir custom_jdbc_drivers
    
  3. Dans 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érique driver_symbol. Le chemin d'accès au répertoire obtenu ressemble à looker/custom_jdbc_drivers/driver_symbol.

    cd custom_jdbc_drivers
    mkdir driver_symbol
    

  4. Placez les fichiers de pilote JDBC de votre dialecte dans ce répertoire. La méthode 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.jar

    Le déplacement des fichiers nécessaires sur le serveur Looker varie en fonction de l'emplacement où vous obtenez les fichiers de pilote et de vos préférences pour le transfert de fichiers. Exemples de commandes permettant de transférer des fichiers dans ce répertoire : wget, scp, curl, etc.

  5. Revenez au répertoire de l'application Looker et créez un fichier de configuration nommé custom_jdbc_config.yml. Le chemin d'accès à ce fichier doit être looker/custom_jdbc_config.yml. Ce fichier contiendra les informations dont Looker a besoin pour localiser et enregistrer le pilote JDBC personnalisé.

    cd looker
    vim custom_jdbc_config.yml
    
  6. Ajoutez une entrée pour votre dialecte dans le fichier de configuration custom_jdbc_config.yml. Consultez la section Entrées du pilote dans le fichier de configuration YAML de cette page pour en savoir plus sur les entrées de pilote.

    - name: driver_symbol
      dir_name: driver_symbol
      module_path: com.dialect.jdbc.DialectDriver
    
  7. Créez ou mettez à jour le fichier lookerstart.cfg pour que l'application Looker démarre avec la configuration du pilote JDBC décompressé. Le chemin d'accès à ce fichier doit être looker/lookerstart.cfg. Ajoutez l'option --use-custom-jdbc-config. S'il existe d'autres options, ajoutez ceci à la fin des options de démarrage de Looker:

    LOOKERARGS="--use-custom-jdbc-config"
    

    Si LOOKERARGS n'est pas défini sur lookerstart.cfg, comme dans une variable d'environnement, vous pouvez y ajouter cet indicateur de démarrage. Vous pouvez également définir LOOKERARGS="${LOOKERARGS} --use-custom-jdbc-config" afin que les valeurs existantes soient développées dans ce fichier.

  8. Redémarrez l'application Looker. Dans cette commande, utilisez le nom de votre script de démarrage Looker, tel que ./looker ou ./looker.sh.

    ./looker restart
    

    ou none ./looker stop ./looker start

Plusieurs pilotes JDBC non empaquetés

Si vous devez configurer plusieurs dialectes pour utiliser les pilotes JDBC décompressés, la procédure décrite dans la section Installer des pilotes JDBC décompressés s'applique toujours. Le répertoire custom_jdbc_drivers comportera plusieurs sous-répertoires dialect avec leurs propres fichiers JAR de pilote, et le fichier custom_jdbc_config.yml comportera 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