Pilotes JDBC non empaquetés

Configurer Looker pour utiliser les pilotes JDBC non empaquetés

Pour certains dialectes compatibles avec Looker, le pilote JDBC ne peut pas être empaqueté dans le fichier JAR Looker pour des raisons de 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.

Le tableau suivant présente les dialectes qui nécessitent l'installation de pilotes JDBC sans package:

Prerequisites

Pour connecter Looker à une base de données qui nécessite un pilote JDBC non empaqueté, vous avez besoin des éléments suivants:

  • Accès en ligne de commande à votre serveur Looker.
  • Pilote JDBC en tant que fichier JAR. La documentation du dialecte peut contenir des instructions expliquant où télécharger ce fichier. Dans le cas contraire, nous partons du principe que vous avez accès au fichier JAR nécessaire.
  • Symbole du conducteur pour votre dialecte. Un symbole de pilote est une valeur de chaîne que Looker utilise en interne pour mettre en correspondance le dialecte avec le 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 sur des 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 Pilotes dans le fichier de configuration YAML de 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 rédigez l'entrée du pilote pour votre dialecte:

  • Le fichier custom_jdbc_config.yml est basé sur YAML, ce qui signifie que la mise en retrait et l'espacement sont importants.
  • Les attributs name et dir_name doivent être le symbole du pilote que Looker attend 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 relatif de custom_jdbc_drivers au fichier JAR du pilote JDBC. dir_name est recommandé, car il permet d'isoler plusieurs pilotes dans leurs propres répertoires et de réduire le risque de conflit entre les 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 du pilote Java. Cet exemple utilise une valeur générique. Toutefois, pour trouver le module_path spécifique que le conducteur utilise, consultez sa documentation sur l'enregistrement de la classe de conducteur.
  • override_jdbc_url_subprotocol est un argument facultatif permettant de remplacer le sous-protocole utilisé dans la chaîne JDBC envoyée par Looker à la base de données. Voici à quoi ressemble une chaîne JDBC type:
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 deviendra:

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 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 sans package

  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 du pilote de votre dialecte. Cet exemple utilise la valeur générique driver_symbol. Le chemin d'accès obtenu vers le répertoire ressemblera à 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 à adopter dépend de l'emplacement du pilote de votre dialecte et de son importation sur le serveur. Assurez-vous toutefois que les fichiers JAR appropriés 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 selon l'emplacement où vous téléchargez les fichiers de pilotes et selon votre préférence de transfert de fichiers. Exemples de commandes pour 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 contient 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. Pour en savoir plus sur les entrées de pilote, consultez la section Entrées de pilote dans le fichier de configuration YAML de cette page.

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

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

    Si vous avez défini LOOKERARGS ailleurs que lookerstart.cfg, par exemple dans une variable d'environnement, vous pouvez ajouter cette option de démarrage ici. Vous pouvez également définir LOOKERARGS="${LOOKERARGS} --use-custom-jdbc-config" pour 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 des pilotes JDBC non empaquetés, la procédure ci-dessus s'applique toujours. Le répertoire custom_jdbc_drivers comporte plusieurs sous-répertoires dialect avec leurs propres fichiers 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