Amazon RDS pour MySQL

Chiffrement du trafic réseau

Il est recommandé de chiffrer le trafic réseau entre l'application Looker et votre base de données. Pour ce faire, consultez les options détaillées sur la page Sécurisation de l'accès à la base de données de la documentation.

Si vous envisagez d'utiliser le chiffrement SSL, consultez la documentation MySQL RDS.

Options

Pour des raisons de performances, il est courant d'utiliser des instances répliquées de base de données en lecture seule (également appelées instances répliquées avec accès en lecture) avec Looker. Cela libère la base de données de production pour qu'elle puisse remplir sa fonction principale sans que des requêtes ne la ralentissent.

Ce document explique comment :

  • Modifier une base de données d'instance répliquée existante pour qu'elle fonctionne avec Looker
  • Créer une base de données d'instance répliquée avec accès en lecture et la configurer pour qu'elle fonctionne avec Looker

Modifier une instance répliquée existante

Utilisateurs et sécurité

Remplacez <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'@'%';

RDS et tables temporaires

Par défaut, les instances répliquées avec accès en lecture RDS ont un indicateur de lecture seule activé qui empêche Looker d'écrire dans des tables temporaires. Looker ne modifie jamais les données existantes, mais MySQL nécessite toujours un accès en écriture pour utiliser les tables temporaires. Pour résoudre ce problème, modifiez l'option dans RDS. Extrait des questions fréquentes sur RDS :

Q : Mes instances répliquées avec accès en lecture ne peuvent-elles accepter que les opérations de lecture de base de données ?

Les instances répliquées avec accès en lecture sont conçues pour diffuser le trafic en lecture. Toutefois, il peut arriver que des utilisateurs avancés souhaitent exécuter des instructions SQL de langage de définition de données (LDD) sur une instance répliquée avec accès en lecture. Par exemple, vous pouvez ajouter un index de base de données à une instance répliquée avec accès en lecture utilisée pour les rapports d'activité sans ajouter le même index à l'instance de base de données source correspondante.

Amazon RDS pour MySQL peut être configuré pour autoriser les instructions SQL LDD sur une instance dupliquée avec accès en lecture. Si vous souhaitez activer des opérations autres que les lectures pour une instance répliquée avec accès en lecture donnée, modifiez le groupe de paramètres de base de données actif pour l'instance répliquée avec accès en lecture en définissant le paramètre read_only sur 0.

Amazon RDS pour PostgreSQL n'est actuellement pas compatible avec l'exécution d'instructions SQL LDD sur une instance répliquée avec accès en lecture.

Si vous modifiez le groupe de paramètres de base de données, vous devrez redémarrer l'instance répliquée avec accès en lecture pour que les modifications soient prises en compte.

Créer une base de données et accorder des autorisations

Créez une base de données temporaire et accordez à l'utilisateur looker les droits d'écriture sur celle-ci. L'instruction CREATE TEMPORARY dans MySQL doit être associée à une base de données pour des raisons d'autorisation.

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

Créer une instance répliquée

Notez qu'AWS RDS ne peut créer des instances répliquées avec accès en lecture qu'avec des instances de base de données pour lesquelles la conservation des sauvegardes est activée.

Étapes préalables à AWS

Étape 1

mysql dans la base de données qui sera l'instance de base de données principale :

mysql -h hostname.uid.region.rds.amazonaws.com -P 3306 -u root -p

Étape 2

Créez un utilisateur nommé looker (remplacez <some_password_here> par un mot de passe unique et sécurisé) :

CREATE USER looker IDENTIFIED BY '<some_password_here>';

Étape 3

Créez une base de données temporaire et accordez à Looker des droits de lecture sur les autres bases de données et tables. Looker n'écrit généralement pas dans la base de données looker_tmp, mais l'utilise pour exécuter des commandes CREATE TEMPORARY TABLE.

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

GRANT
  SELECT,
  SHOW DATABASES
ON *.* TO 'looker'@'%';

Étape 4

Videz les droits :

FLUSH PRIVILEGES;

Étapes AWS

Étape 1

Connectez-vous et accédez au tableau de bord AWS. Dans la section Database (Base de données), sélectionnez RDS.

Étape 2

Dans votre tableau de bord RDS, sélectionnez l'instance de base de données que vous souhaitez définir comme base de données principale. Sélectionnez Actions sur l'instance, puis Créer une instance dupliquée avec accès en lecture.

Étape 3

Dans le pop-up Create Read Replica DB Instance (Créer une instance de base de données répliquée avec accès en lecture), configurez la base de données répliquée avec accès en lecture, puis sélectionnez Yes, Create Read Replica (Oui, créer une instance répliquée avec accès en lecture).

Étape 4

Pendant que vous attendez la création de la base de données de l'instance dupliquée avec accès en lecture, vous pouvez configurer le groupe de paramètres de base de données, qui contiendra les valeurs de configuration du moteur appliquées à l'instance de base de données de l'instance dupliquée avec accès en lecture. Sélectionnez la page Groupes de paramètres de base de données dans la barre latérale, puis cliquez sur le bouton Créer un groupe de paramètres de base de données.

Étape 5

Sélectionnez la famille de groupes de paramètres de base de données et le nom du groupe de paramètres de base de données, puis saisissez une description du groupe de paramètres de base de données. Sélectionnez ensuite Oui, créer.

Étape 6

Sélectionnez l'icône en forme de loupe sur la ligne contenant le groupe de paramètres de la base de données de l'instance dupliquée avec accès en lecture, ou sélectionnez cette ligne, puis sélectionnez Modifier les paramètres.

Étape 7

Dans le champ Filtres sous Paramètres, recherchez "read_only". Remplacez la valeur du paramètre par 0. Sélectionnez ensuite Enregistrer les modifications.

Étape 8

Une fois la création de l'instance répliquée avec accès en lecture terminée, sélectionnez-la dans la liste des instances de base de données, cliquez sur le bouton Instance Action (Action sur l'instance), puis sélectionnez Modify (Modifier) dans l'action sur l'instance.

Étape 9

Dans le pop-up Modify DB Instance (Modifier l'instance de base de données), remplacez le Parameter Group (Groupe de paramètres) de l'instance de base de données par le nouveau groupe de paramètres de l'instance dupliquée avec accès en lecture. Cochez ensuite la case Apply Immediately (Appliquer immédiatement), sélectionnez Continue (Continuer), puis Modify DB Instance (Modifier l'instance de base de données).

Étape 10

À l'aide du client MySQL, connectez-vous à l'instance de base de données de l'instance répliquée avec accès en lecture en tant que looker et vérifiez si les données sont accessibles.

Créer la connexion entre Looker et votre base de données

Dans la section Admin de Looker, sélectionnez Connexions, puis cliquez sur Ajouter une connexion.

Saisissez les informations de connexion. La majorité des paramètres sont communs à la plupart des dialectes de base de données. Pour en savoir plus, consultez la page de documentation Connecter Looker à votre base de données.

Pour vérifier que la connexion est établie, cliquez sur le bouton Tester la connexion dans la section Détails de l'état en bas de la page Paramètres de connexion.

Si Looker affiche Connexion possible, appuyez sur Connecter pour créer la connexion.

Votre connexion de base de données est ensuite ajoutée à la liste de la page Connexions de la section Admin de Looker.

Paramètres JDBC compatibles

Pour Amazon RDS pour MySQL, Looker accepte les paramètres JDBC suivants dans le champ Paramètres JDBC supplémentaires de la connexion. Pour en savoir plus sur ces paramètres, consultez la documentation de votre base de données.

  • allowMultiQueries
  • autocommit
  • characterSetResults
  • clientCertificateKeyStorePassword
  • clientCertificateKeyStoreUrl
  • connectionAttributes
  • connectionCollation
  • connectionTimeZone
  • connectTimeout
  • defaultAuthenticationPlugin
  • disableSslHostnameVerification
  • disconnectOnExpiredPasswords
  • enabledSslCipherSuites
  • failOverReadOnly
  • fallbackToSystemTrustStore
  • forceConnectionTimeZoneToSession
  • interactiveClient
  • lookerFailover
  • maxIdleTime
  • maxQuerySizeToLog
  • oldModeNoPrecisionTimestamp
  • password
  • passwordCharacterEncoding
  • permitMysqlScheme
  • pinGlobalTxToPhysicalConnection
  • preserveInstants
  • queryInterceptors
  • restrictedAuth
  • rewriteBatchedStatements
  • socketTimeout
  • sslMode
  • tcpKeepAlive
  • trustCertificateKeyStorePassword
  • trustCertificateKeyStoreUrl
  • useCompression
  • usePipelineAuth
  • user
  • useServerPrepStmts
  • verifyServerCertificate
  • yearIsDateType

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.

MySQL prend en charge les fonctionnalités suivantes à partir de Looker 26.22 :

Fonctionnalité Compatibilité
Looker (Google Cloud Core)
Agrégations symétriques
Tables dérivées
Tables dérivées SQL persistantes
Tables dérivées natives persistantes
Vues stables
Arrêt des requêtes
Pivots basés sur SQL
Fuseaux horaires
SSL
Sous-totaux
Paramètres JDBC supplémentaires
Sensible à la casse
Type de lieu
Type de liste
Centile
Centile distinct
Afficher les processus dans l'exécuteur SQL
Décrire la table dans l'exécuteur SQL
Afficher les index dans l'exécuteur SQL
Sélectionner 10 dans l'exécuteur SQL
Nombre d'exécuteurs SQL
SQL Explain
Identifiants OAuth 2.0
Commentaires sur le contexte
Regroupement de connexions
Résumés HLL
Reconnaissance d'agrégats
Augmentation de tables PDT
Millisecondes
Microsecondes
Vues matérialisées
Mesures de variation par période
Nombre approximatif d'éléments distincts
Modèles d'analyse dans la base de données
Agendas personnalisés