MySQL, Clustrix, MariaDB et SingleStore

Dialectes utilisant ces instructions

Les conditions de configuration de base de données décrites dans cette page sont valables pour MySQL, Clustrix, MariaDB et SingleStore (anciennement MemSQL).

Chiffrement du trafic réseau

Il est vivement conseillé de chiffrer le trafic réseau entre l'application Looker et votre base de données. Choisissez l'une des options décrites sur la page de documentation Activer l'accès sécurisé aux bases de données.

Si vous souhaitez utiliser le chiffrement SSL, consultez cette page de la documentation MySQL.

Utilisateurs et sécurité

Pour créer et octroyer un accès demandé à un utilisateur Looker, suivez les instructions de la section correspondant au dialecte et à la version de votre base de données :

MySQL 8.0.X :

L'option du dialecte Looker MySQL 8.0.X est implémentée avec la version de correctif 8.0.12+ en raison de l'abandon de MySQL dans le tri implicite de la clause GROUP BY. Ce problème affecte les sous-totaux pour les versions 8.0.0 à 8.0.11 de MySQL, ce qui entraîne des erreurs de génération SQL. Looker recommande de mettre à niveau toutes les bases de données MySQL 8.0.X vers la version 8.0.12 ou plus pour assurer une intégration optimale. Cependant, les versions MySQL antérieures fonctionneront toujours, à l'exception des sous-totaux.

Dans MySQL 8.0.X, le plug-in d'authentification par défaut est caching_sha2_password. Looker utilise le plug-in mysql_native_password pour tenter de s'authentifier auprès de bases de données MySQL via le pilote JDBC. Pour que cette version de MySQL fonctionne correctement, vous devez suivre les étapes supplémentaires suivantes:

  1. Configurez la base de données MySQL pour utiliser le plug-in mysql_native_password. Plusieurs méthodes s'offrent à vous, selon le mode de déploiement de votre base de données MySQL 8 et le type d'accès dont vous disposez pour la configuration :
    1. Démarrez le processus avec l'option --default-auth=mysql_native_password.
    2. Définissez la propriété dans le fichier de configuration my.cnf:
      ```none [mysqld] default-authentication-plugin=mysql_native_password ```
    3. Si votre instance de base de données est hébergée via AWS RDS, définissez le paramètre default_authentication_plugin via un groupe de paramètres RDS appliqué à cette instance de base de données.

  2. Exécutez les instructions suivantes en remplaçant some_password_here par un mot de passe unique et sécurisé:

      CREATE USER looker IDENTIFIED WITH mysql_native_password BY 'some_password_here';
    GRANT SELECT ON database_name.* TO 'looker'@'%';
    

MySQL 5.7.x et versions antérieures, Clustrix, MariaDB et SingleStore :

Exécutez les instructions suivantes en remplaçant some_password_here par un mot de passe unique et sécurisé:

CREATE USER looker;
SET PASSWORD FOR looker = PASSWORD ('some_password_here');
GRANT SELECT ON database_name.* TO 'looker'@'%';

Configuration d'un schéma temporaire pour les tables dérivées persistantes

Ces dialectes de base de données permettent de créer des tables dérivées persistantes. Ces dernières peuvent être très utiles et nous vous conseillons de vous en servir dès que possible.

Pour activer la création de tables PDT, vous devez configurer un schéma temporaire. Les commandes suivantes montrent comment créer une base de données temporaire et accorder les droits requis à l'utilisateur looker.

Vous pouvez indiquer le nom de la base de données temporaire dans le champ Temp Database (Base de données temporaire) lorsque vous créez votre connexion à la base de données. Si vous ne spécifiez pas de nom pour la base de données temporaire, Looker génère une base de données de travail nommée looker_tmp. Les commandes suivantes utilisent looker_tmp, mais si vous avez spécifié un nom de base de données temporaire différent, utilisez le nom de la base de données temporaire au lieu de looker_tmp.

CREATE SCHEMA looker_tmp;
GRANT
  SELECT,
  INDEX,
  INSERT,
  UPDATE,
  DELETE,
  CREATE,
  DROP,
  ALTER,
  CREATE TEMPORARY TABLES
ON looker_tmp.* TO 'looker'@'%';

Pour SingleStore ou si votre base de données utilise la réplication basée sur GTID, vous devez utiliser le paramètre LookML create_process pour utiliser des PDT, car GTID n'est pas compatible avec les instructions CREATE TABLE AS SELECT.

Configuration alternative pour les tables dérivées régulières

Si vous ne souhaitez pas autoriser la création de tables dérivées persistantes, vous pouvez toujours utiliser des tables dérivées standards. Pour utiliser des tables dérivées standards, vous devez toujours ajouter certaines autorisations à un schéma appelé looker_tmp. Cependant, le schéma looker_tmp n'a pas besoin d'exister dans votre base de données.

GRANT
  SELECT,
  INDEX,
  INSERT,
  DROP,
  CREATE TEMPORARY TABLES
ON looker_tmp.* TO 'looker'@'%';
-- Note that the looker_tmp schema does not need to actually exist,
-- even though these permission grants are still needed

Définir la variable max_allowed_packet

Pour MySQL, définissez la variable MySQL max_allowed_packet sur sa valeur maximale, à savoir 1073741824, pour éviter les erreurs "SQLException: Packet for query is Too large".

Prise en charge de fonctionnalités

Pour que Looker prenne en charge certaines fonctionnalités, votre dialecte de base de données doit également les prendre en charge.

Dans la dernière version de Looker, MySQL est compatible avec les fonctionnalités Looker suivantes:

Dans la dernière version de Looker, MySQL 8.0.12+ est compatible avec les fonctionnalités Looker suivantes:

Dans la dernière version de Looker, Clustrix est compatible avec les fonctionnalités suivantes:

Dans la dernière version de Looker, MariaDB est compatible avec les fonctionnalités Looker suivantes:

Dans la dernière version de Looker, SingleStore est compatible avec les fonctionnalités Looker suivantes:

Dans la dernière version de Looker, SingleStore 7+ est compatible avec les fonctionnalités Looker suivantes:

Étapes suivantes

Une fois la configuration de la base de données terminée, vous pouvez vous connecter à la base de données à partir de Looker en suivant ces instructions.

Lorsque vous créez des connexions, assurez-vous d'utiliser le bon nom de dialecte de la base de données. Bien que les instructions de configuration de la base de données soient les mêmes pour MySQL, Clustrix, MariaDB et SingleStore, veillez à sélectionner le dialecte qui vous intéresse dans la liste déroulante Dialect de la page "Connections" (Connexions), décrite ici.