MySQL HeatWave est parfaitement logique si vous exécutez des charges de travail transactionnelles et analytiques mixtes dans MySQL ou si vous déplacez des données vers une base de données distincte pour les analyses. Au lieu d'élaborer des pipelines ETL complexes pour déplacer des données, HeatWave, un accélérateur de requêtes en mémoire intégré et à hautes performances, accélère les performances de MySQL par ordre de grandeur pour les analyses et les workloads mixtes, sans aucune modification des applications actuelles. Le service est basé sur MySQL Enterprise Edition, qui permet aux développeurs de créer et de déployer rapidement des applications natives du cloud sécurisées à l'aide de la base de données open source la plus populaire au monde.
Oracle a conçu MySQL HeatWave pour que les développeurs puissent se concentrer sur leurs applications. Vous n'avez pas besoin de gérer deux bases de données pour OLTP et OLAP, et 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. MySQL HeatWave est un service entièrement géré qui automatise des tâches telles que la sauvegarde, la récupération et l'application de patches aux bases de données et aux systèmes d'exploitation. "Inquiétez-vous moins, croquez plus", comme on dit ! MySQL HeatWave est développé et pris en charge par l'équipe de développement MySQL d'Oracle.
Pour commencer à utiliser OCI, nous allons créer un VCN, déployer un système de base de données MySQL et créer un cluster HeatWave, extraire certaines données et les analyser. Vous recherchez démarrer avec MySQL HeatWave sur AWS. Cela vous montrera comment tirer parti de MySQL HeatWave dans un scénario multicloud. Quel temps pour être vivant !
Puisque nous commençons tout juste, commençons vraiment au début et créons un VCN avec l'accès approprié, puis voyons comment créer un cluster HeatWave dans OCI.
Dans notre exemple, nous utilisons une approche rationalisée pour configurer l'utilisation de HeatWave.
Maintenant, commençons par les bases !
Menu : Accueil > Mise en réseau > Réseaux cloud virtuels
Créez un VCN et des sous-réseaux à l'aide des réseaux cloud virtuels > Démarrer l'assistant VCN > Créer un VCN avec la connectivité Internet. Bien sûr, vous aurez également un sous-réseau privé.
L'assistant pratique vous guidera tout au long de la création d'un environnement réseau pour votre système, bien qu'il existe de nombreuses façons de le configurer, ne nous laissez pas distraire. J'ai choisi le compartiment que j'ai configuré précédemment, my_heatwave_testing, car c'est important.
Maintenant, configurons la liste de sécurité du VCN pour autoriser le trafic via les ports MySQL Database Service. Cliquez sur le sous-réseau privé du VCN que vous avez créé et cliquez sur la liste de sécurité correspondante.
Cliquez maintenant sur Ajouter une liste de sécurité.
Nous ajouterons les règles entrantes nécessaires pour activer les ports appropriés, 3306 et 33060. Voici les détails :
Source CIDR: 0.0.0.0/0
Destination Port Range: 3306,33060
Description: MySQL Port
Cliquez sur Add Ingress Rules.
J'ai l'air bien jusqu'à maintenant !
Si vous êtes déjà administrateur, vous pouvez passer à l'étape suivante, mais c'est ici que vous ajoutez des utilisateurs à la location OCI qui peuvent également avoir besoin d'accéder à la gestion du système de base de données. Nous devrons définir des autorisations et limiter quelque peu l'accès, même dans notre exemple "simplifié", mais vous pouvez tout lire sur la gestion des groupes ici. En général, nous allons créer un groupe, créer des stratégies, puis ajouter des utilisateurs au groupe.
Faisons-nous des amis avec les options d'identité et de sécurité.
Créez un groupe pour vos utilisateurs. Dans mon exemple, j'ai créé un groupe nommé Administrateurs MySQL.
Ajoutez des utilisateurs au groupe. Dans notre exemple, nous allons nous ajouter à ce groupe.
Bien sûr, pour un groupe, vous allez d'abord créer tous les utilisateurs dont vous avez besoin, ajouter ceux dans le groupe nécessitant un accès aux niveaux que vous déterminez, et soyez assuré que vous pouvez les définir en vrac avec les contrôles d'accès appropriés.
Nous autorisons l'accès en définissant des stratégies, en permettant à un groupe d'avoir un accès complet (admins) et à un groupe avec un accès limité (utilisateurs de base de données, par exemple).
Exemples de stratégie :
Allow group MySQLAdmins to {SUBNET_READ, SUBNET_ATTACH, SUBNET_DETACH, VCN_READ, COMPARTMENT_INSPECT} in tenancy
Allow group MySQLAdmins to manage mysql-family in tenancy
Allow group MySQLAdmins to use tag-namespaces in tenancy
Cela permet simplement de configurer et d'administrer notre compartiment, et définit la portée de l'accès appliqué à l'instance de base de données.
Pour plus d'informations sur l'ajout d'utilisateurs et la définition de stratégies dans OCI, reportez-vous à cette documentation.
Menu > Bases de données > Systèmes de base de données
Créer un système de base de données
Notez que le système vous avertit si vous n'avez pas encore configuré d'utilisateurs, un VCN, etc. C'est bien. N'oubliez pas de vérifier dans quel compartiment vous allez le créer, à nouveau sous Portée de la liste à gauche. Cliquez sur Create DB System.
Vérifiez à nouveau le compartiment, donnez-lui un nom et sélectionnez HeatWave (bien sûr).
Vous allez créer des informations d'identification d'administrateur, assurez-vous de les enregistrer dans un endroit pratique mais sûr.
Dans Configure Networking, vous allez utiliser le réseau cloud virtuel créé précédemment, mais nous allons utiliser le sous-réseau privé. Conservez le domaine de disponibilité par défaut et accédez à Configure Hardware.
Vérifiez que dans la section Configure Hardware, la forme sélectionnée est MySQL. HeatWave.VM.Standard.
Aussi :
Dans la section Configure Backup, vous pouvez laisser la fenêtre de sauvegarde par défaut de sept jours.
Continuez à faire défiler et cliquez sur Afficher les options avancées.
Accédez à l'onglet Mise en réseau. Dans le champ Nom d'hôte, entrez le nom exact du système de base de données. Cela permet à votre cluster de s'inscrire auprès du DNS et d'accéder à l'hôte via un nom de domaine qualifié complet.
Assurez-vous que la configuration du port correspond à ce qui suit :
Pour cet exemple, nous allons importer automatiquement des données lors de la création de ressources à l'aide des données stockées dans un bucket Object Storage, rendues disponibles via une demande pré-authentifiée.
Si vous préférez charger les données à l'aide du shell MySQL, vous pouvez ignorer cette étape.
Cliquez sur l'onglet Import de données. Ici, vous serez invité à coller l'URL de votre demande pré-authentifiée. L'URL de demande pré-authentifiée d'objet doit être un fichier manifeste qui peut être créé avec l'option ociParaMifest du vidage de shell MySQL utilityHere. Vous pouvez également utiliser une demande pré-authentifiée de bucket Object Storage ou des objets avec une demande pré-authentifiée de préfixe.
Voici un exemple de lien que vous pouvez utiliser pour importer Airport-DB à des fins d'essai.
https://objectstorage.us-ashburn-1.oraclecloud.com/p/zRBSs7nKURyZRcIoV4QlYhascC5gkZcJeQoBS8c2ssyEPID3PSDAnh73OMClQQH4/n/idazzjlcjqzj/b/airportdb-bucket-10282022/o/airportdb/@.manifest.json
Tout définir... cliquez sur Créer !
Cette fois, un hexagone jaune apparaît. Il devient alors vert et le système de base de données fonctionne. Faites du thé ou prenez un verre d'eau, vous avez fait beaucoup.
Utilisons Cloud Shell pour nous connecter à MySQL et à MySQL Shell. C'est un petit terminal Linux intégré au tableau de bord OCI (et c'est adorable). Dans l'angle supérieur droit, cliquez sur l'icône d'invite Cloud Shell et une ligne de commande s'ouvre en bas du navigateur. Make sure to configure Private Network Setup for your cloud shell, selecting the VCN that was created previously.
Ce qui est cool, c'est que MySQL Shell est déjà installé !
Une fois le système de base de données compatible avec HeatWave créé, nous allons nous y connecter à l'aide du shell MySQL.
mysqlsh --host -u -p
Vous pouvez en savoir plus sur le shell MySQL.
En savoir plus sur la connexion des systèmes de base de données.
Si vous avez choisi d'importer des données lors de la création de la ressource à l'aide de l'option PAR, vous pouvez ignorer cette étape. Sinon, vous pouvez continuer ici pour importer AirportDB (PDF).
Dans Cloud Shell :
wget https://downloads.mysql.com/docs/airport-db.tar.gz
tar xvzf airport-db.tar.gz
Cela crée un répertoire unique nommé airport-db, qui contient les fichiers de données.
Démarrez le shell MySQL et connectez-vous à l'adresse de système de base de données MySQL :
mysqlsh _Username@DBSystem_IP_Address_or_host_Name
Lorsque vous y êtes invité, entrez le mot de passe administrateur que vous avez indiqué précédemment. Une fois connecté, vous utiliserez l'utilitaire de chargement de vidage pour importer des données.
MySQL>JS> util.loadDump("airport-db", {threads: 16, deferTableIndexes: "all", ignoreVersion: true})
L'importation devrait prendre quelques minutes, alors vous êtes prêt à passer à autre chose !
HeatWave est vraiment conçu pour les ensembles de Big Data, nécessitant une analyse rapide. Par conséquent, même si j'importe une simple base de données échantillon, vous pouvez charger autant que vous le souhaitez (à condition d'avoir alloué le stockage pour cela). De plus, les requêtes peuvent être exécutées dans le cluster sans être déchargées vers une base de données distincte. La création du cluster peut prendre quelques minutes.
Pour commencer, accédez au système de base de données dans la console OCI : Bases de données > Systèmes de base de données, puis cliquez sur le système de base de données créé récemment.
Sous Ressources, vous verrez HeatWave (entre autres éléments utiles), cliquez dessus.
Bien sûr, vous voulez ajouter un cluster HeatWave (à l'aide du bouton situé à droite, au milieu de la page), ou cliquer sur le menu d'actions Plus en haut et sélectionner Ajouter un cluster Heatwave. Acceptez les valeurs par défaut (16 coeurs de processeur avec 512 Go de RAM et 1 noeud), puis cliquez sur le bouton Ajouter un cluster HeatWave.
Cela prend quelques minutes pour que vous puissiez réchauffer cette boisson pendant que le cluster tourne.
Enfin, la partie amusante ! Une fois que le cluster HeatWave est en cours d'exécution :
$> mysqlsh Username@DBSystem_IP_Address_or_Host_Name
MySQL>JS> \sql
MySQL>SQL> USE airportdb;
Default schema set to `airportdb`.Fetching table and column names from `airportdb` for auto-completion... Press ^C to stop.`
MySQL>SQL> call sys.heatwave_load(JSON_ARRAY(“airportdb”), NULL);
Voyons maintenant combien de temps cela prendrait avec le système de base de données MySQL "vanille simple". Pour ce faire, nous désactivons la variable use_secondary_engine.
Jusqu'à présent, tous sur OCI, nous avons configuré un réseau cloud virtuel avec des ports pour l'utilisation de MySQL, configuré une base de données MySQL et ajouté un cluster HeatWave. Nous avons ensuite importé des données de test et exécuté quelques requêtes pour voir la vitesse de HeatWave par rapport au système de base de données seul.
Vous aimeriez en savoir plus ? Rejoignez la discussion sur notre canal Slack public !