Introduction à MySQL HeatWave sur AWS

Si vous développez des applications de base de données sur AWS et avez besoin d'analyses en temps réel et de requêtes extrêmement rapides, c'est ce que MySQL HeatWave sur AWS a été conçu pour faire. Au lieu de concevoir des pipelines ETL complexes pour déplacer des données vers une base de données d'analyse distincte, HeatWave tire parti de l'accélération en mémoire pour fournir des fonctionnalités d'analyse en temps réel (OLAP) sans affecter les performances des charges de travail transactionnelles (OLTP). MySQL HeatWave est un service entièrement géré qui permet aux développeurs de créer et de déployer rapidement des applications cloud natives sécurisées en utilisant la base de données open source la plus populaire au monde. MySQL HeatWave est développé et pris en charge par l'équipe de développement MySQL d'Oracle.

L'une des meilleures choses à propos de MySQL HeatWave est la possibilité d'exécuter des analyses directement sur vos données transactionnelles existantes, ce qui signifie que vous n'avez besoin de gérer qu'une seule base de données au lieu de deux et que vous pouvez obtenir des analyses sécurisées en temps réel sans la complexité, la latence et le coût de la duplication ETL.

Pour commencer, démarrez gratuitement sur AWS. Une inscription rapide fournira 300 $ de crédits gratuits pour voir à quel point MySQL HeatWave sur AWS peut être génial.

  1. Indiquez le pays/territoire, le prénom et le nom, ainsi qu'une adresse électronique pour vérification.
    Enregistrement du compte capture d'écran 1
  2. Cliquez sur Vérifier mon adresse électronique
  3. Lorsque vous cliquez sur le lien dans le message de vérification d'adresse électronique, vous êtes invité à fournir un mot de passe renforcé, un nom de compte cloud et une région d'origine. Sélectionnez Est des Etats-Unis (Ashburn) comme région d'origine. Remarque : si vous ne choisissez pas IAD/Ashburn comme région d'origine, vous devez demander une augmentation de limite de région. Une fois cette limite augmentée, vous pourrez vous abonner à la région Ashburn (requis pour HeatWave sur AWS).
    Enregistrement du compte capture d'écran 2
  4. Terminez le processus d'inscription en saisissant une adresse et les détails de facturation.
  5. Acceptez l'accord et cliquez sur Démarrer mon essai gratuit
    Capture d'écran de l'inscription au compte terminée
  6. Dans quelques instants, votre compte sera créé et vous pourrez vous connecter !
  7. Dans le tableau de bord principal, vous devriez voir la bannière pour commencer à utiliser MySQL HeatWave sur AWS. Cliquez sur Accéder au service.
    Capture d'écran de la prise en main de MySQL HeatWave sur la bannière AWS
  8. Sur la page suivante, vous aurez la possibilité de demander une mise à niveau qui convertira votre compte en compte payant. Ne t'inquiète pas ! Vous ne serez pas facturé... rappelez-vous que vous avez 300 $ de crédits gratuits avec lesquels jouer.
    Capture d'écran de Configuration de MySQL HeatWave sur AWS - Demander une mise à niveau
    Remarque : le traitement back-end prendra quelques minutes pour que vous puissiez terminer le processus de mise à niveau. Si vous recevez un message indiquant la même chose, n'hésitez pas à vous éloigner un peu. Donnez un peu de repos à vos yeux.
  9. Une fois que vous avez terminé le processus de mise à niveau, vous pouvez passer à l'étape suivante.
  10. Etant donné que vous avez sélectionné Ashburn en tant que région d'origine, vous devez pouvoir passer à l'étape 3, qui vous guide pour demander la limite de service HeatWave sur AWS.
  11. Une fois la limite de service atteinte, vous pouvez activer HeatWave sur AWS.
  12. Vous êtes maintenant prêt à configurer un cluster MySQL HeatWave sur AWS !

Notez que MySQL HeatWave sur AWS est intégré au système de gestion des identités et des accès d'OCI. Lorsque vous inscrivez à HeatWave sur AWS, vous êtes redirigé vers la page de connexion OCI sur laquelle vous devez vous connecter avec un compte cloud OCI (que vous avez créé précédemment). Pour simplifier les choses, la facturation est gérée et surveillée dans OCI.

Prérequis

  • Nom du compte Oracle Cloud, nom utilisateur et mot de passe de l'administrateur
  • Un navigateur compatible (Chrome 69+, Safari 12.1+, Firefox 62+ ou tout navigateur approuvé par Oracle Jet)

Présentation

Pour commencer à travailler avec MySQL HeatWave sur AWS, vous n'avez besoin ni d'une expérience AWS ni d'un compte AWS. Cependant, si vous en avez, il n'y a aucune limite à ce que vous pouvez faire pour intégrer les applications AWS avec MySQL HeatWave. Alors allons-y !

  1. Connexion à la console MySQL HeatWave on AWS
  2. Création d'un système de base de données MySQL avec un cluster HeatWave
  3. Chargez quelques exemples de données
  4. Se connecter à la base de données et exécuter des requêtes
  5. Charger des tables dans HeatWave et en interroger d'autres

Etapes

  1. Connectez-vous à MySQL HeatWave sur AWS
    Si vous venez de terminer le processus d'inscription et de vous connecter, vous aurez peut-être une longueur d'avance. Sinon, vous pouvez accéder à la page de destination MySQL HeatWave on AWS. Ici, vous entrez le nom de votre compte cloud (peut-être déjà mis en cache par le navigateur) et cliquez sur Continuer.
    Sur la page suivante, vous êtes invité à saisir l'ID utilisateur et le mot de passe que vous avez créés lors du processus d'inscription. Une fois que tout est entré correctement, vous vous trouverez sur le tableau de bord MySQL HeatWave.
  2. Création d'un système de base de données MySQL avec un cluster HeatWave
    Le plaisir commence maintenant ! Passons au provisionnement.
    Cliquez sur Créer un système de base de données MySQL dans le tableau de bord pour afficher la boîte de dialogue Créer un système de base de données MySQL et un cluster HeatWave. Cette première partie est consacrée à la configuration de l'instance MySQL sous-jacente et du cluster HeatWave lui-même.
    Capture d'écran de la création du système de base de données MySQL et du cluster HeatWave - Incomplet
    Capture d'écran de la création du système de base de données MySQL et du cluster HeatWave - Incomplet
    Renseignez les détails requis :
    1. Nom d'affichage
    2. Description
    3. Informations d'identification de l'administrateur (ne les perdez pas)
    4. Sélectionnez la configuration matérielle. La forme détermine le nombre de coeurs d'UC virtuelles et la quantité de RAM. (par exemple, MySQL.4.32GB est 4 UC virtuelles et 32 Go de RAM)
    5. Sélectionnez la taille de stockage de données de départ dans GiB...this pouvant être augmentée ultérieurement si/lorsque nécessaire.
    6. Sélectionnez la dernière version de la base de données (elle ne prend actuellement en charge que la dernière version de MySQL 8.0.31)
    7. Choisir une fenêtre de maintenance (automatique ou manuelle)
    8. Choisissez une zone de disponibilité. Remarque : Si vous choisissez Manuel, vous serez invité à sélectionner la zone de disponibilité physique AWS. Si des applications existantes sont déployées sur AWS, vous devrez rapprocher l'AZ logique affichée dans la console AWS et l'AZ physique sélectionnée ici.
    9. Fournissez les détails du réseau. L'instance MySQL devient accessible via l'adresse publique. Par défaut, aucune connectivité entrante n'est autorisée. Pour les adresses client autorisées, vous devez entrer une adresse IP publique spécifique suivie de /32. Par exemple, si l'adresse IP publique de votre ordinateur client est 1.2.3.4, entrez 1.2.3.4/32. Vous pouvez entrer plusieurs valeurs séparées par un point-virgule. Dans cet exemple, nous allons également utiliser les ports par défaut 3306 et 33060.
    10. Cliquez sur Suivant
      Capture d'écran de la création du système de base de données MySQL et du cluster HeatWave - terminée
    11. Indiquez un nom d'affichage et une description pour le cluster HeatWave.
    12. Sélectionnez une forme. Cela déterminera la quantité de mémoire disponible dans chaque noeud de cluster.
    13. Sélectionnez une taille de cluster comprise entre 1 et 128. Pour cet exercice, nous vous recommandons de sélectionner la forme HeatWave.16 Go et une taille de cluster de 1.
    14. Cliquez sur Créer, puis asseyez-vous et détendez-vous pendant quelques minutes pendant que la magie se produit.
  3. Charger des données échantillon
    Maintenant que tout est en cours d'exécution, chargez certaines données et testez cette opération.
    1. Ouvrez un nouvel onglet de navigateur et connectez-vous à la console OCI pour accéder à Cloud Shell. Si vous êtes invité à saisir des informations d'identification, vous utiliserez le même compte cloud, le même nom utilisateur et le même mot de passe que ceux saisis lors de la connexion à HeatWave.
    2. Ouvrir OCI Cloud Shell
      Capture d'écran d'OCI Cloud Shell
    3. Récupérez l'exemple de base de données : airport-db
      wget https://downloads.mysql.com/docs/airport-db.tar.gz
      
      tar xvzf airport-db.tar.gz
    4. Localisez l'adresse IP publique associée à votre environnement Cloud Shell. Elle sera ajoutée aux adresses client autorisées MySQL.
      dig +short myip.opendns.com @resolver1.opendns.com
    5. Revenez au tableau de bord MySQL et modifiez l'instance de base de données MySQL. Ajoutez l'adresse IP publique avec /32 aux adresses client autorisées et cliquez sur Enregistrer.
    6. Revenez à l'onglet de navigateur avec Cloud Shell et démarrez une session MySQL Shell. Vous aurez besoin du nom utilisateur et du mot de passe d'administrateur fournis lors de la création du système de base de données. Vous aurez également besoin du nom d'hôte copié précédemment.
      mysqlsh username@hostname
      Après avoir appuyé sur Entrée, vous serez invité à saisir le mot de passe.
    7. Utilisez loadDump pour importer la base de données décompressée précédemment.
      util.loadDump("airport-db", {threads: 16, deferTableIndexes: "all", ignoreVersion: true})
      Cette étape peut prendre quelques minutes. C'est maintenant une excellente occasion de prendre une collation rapide ou de vérifier les prévisions météorologiques.
    8. Une fois l'importation terminée, vous êtes prêt à passer à autre chose. Beau travail !
  4. Exécutez quelques requêtes simples... juste pour une bonne mesure
    Nous comparerons les performances à HeatWave un peu plus tard. Le shell MySQL est un outil assez puissant, mais l'interface n'est pas pour tout le monde. Avant d'aller de l'avant, nous allons exécuter quelques requêtes supplémentaires juste pour le plaisir ; une grande chance de fléchir ces muscles de ligne de commande.
    1. Pourquoi n'essayons-nous pas de récupérer quelques lignes supplémentaires dans notre requête :
      select * from airplane limit 10000;
    2. Vous avez l'air bien ? Juste un more...for amusant !
      mysql SELECT booking.price, count(*) FROM booking WHERE booking.price > 500 GROUP BY booking.price ORDER BY booking.price LIMIT 10;
      Notez le temps d'exécution.
    3. Quittez le shell MySQL en saisissant '\d' et en appuyant sur Entrée.
    4. Chargez les tables dans HeatWave et interrogez-en d'autres. Vous exécutez great...and maintenant, il est temps d'augmenter la chaleur. Dans cette dernière section, vous pourrez libérer la puissance impressionnante de MySQL HeatWave.
      1. Revenez à l'onglet du navigateur avec le tableau de bord MySQL HeatWave. Accédez au volet des espaces de travail.
      2. Sélectionnez votre système de base de données, puis entrez le nom utilisateur et le mot de passe d'administrateur que vous avez créés précédemment (vous les avez enregistrés, non ?). Cliquez sur Connect et donnez-lui quelques secondes pour ouvrir la porte.
      3. Maintenant que vous êtes connecté, il est temps d'exécuter la même requête qu'auparavant. Cette opération sera toujours exécutée sur InnoDB, mais c'est intentionnel.
        mysql SELECT booking.price, count(*) FROM booking WHERE booking.price > 500 GROUP BY booking.price ORDER BY booking.price LIMIT 10;
        Notez le temps nécessaire à la préparation de complete...and.
    5. Accédez à Gérer les données dans l'onglet HeatWave, sélectionnez airportdb, ce qui sélectionnera toutes les tables de la base de données. Cliquez sur le bouton Charger dans HeatWave.
      Capture d'écran de l'onglet Gérer les données dans Heatwave
      Une fenêtre décrivant la tâche s'affiche et indiquant la durée estimée de réalisation. Après l'avoir redéfini rapidement, cliquez sur Load Tables.
      Capture d'écran des tables de chargement parallèle MySQL Autopilot vers HeatWave
      Une fois que vous avez chargé une nouvelle table dans HeatWave, elle assure automatiquement le suivi et le chargement de toutes les données. Ou, au moins jusqu'à ce que vous démarriez cette table.
      Remarque : si vous n'avez pas besoin de la puissance de HeatWave pendant un certain temps, vous pouvez toujours l'arrêter pour réduire les coûts. Pendant son arrêt, le système continue de suivre les données DIFFS pour toutes les tables chargées. Lorsque HeatWave est redémarré, il met automatiquement à jour les tables chargées.
  5. Exécutez à nouveau la requête précédente et notez la différence de performances.
  6. N'hésitez pas à expérimenter avec des ensembles de données plus volumineux et/ou des requêtes plus complexes. A chaque fois que vous voulez tester des tests d'évaluation des performances entre InnoDB et HeatWave, vous avez uniquement besoin de décharger, puis de recharger les tables.
  7. Cela nous amène à la fin. Vous pouvez mettre fin aux ressources que vous created...and, les arrêter ou les laisser en cours d'exécution. N'oubliez pas de vous tapoter sur le dos. Excellent !

Synthèse

Jusqu'à présent, nous avons créé une instance de base de données MySQL et un cluster HeatWave sur AWS, chargé des données et alimenté légèrement le système. Vous avez constaté l'amélioration spectaculaire des performances obtenue en exécutant des requêtes dans HeatWave...all sans avoir besoin d'ETL entre les systèmes. Avec toute cette puissance à portée de main, nous vous encourageons vivement à continuer à explorer les performances et les capacités. Nous n'avons fait que gratter la surface !

Vous aimeriez en savoir plus ? Rejoignez la discussion sur notre canal Slack public !