MySQL HeatWave tiene mucho sentido si ejecuta cargas de trabajo mixtas de análisis y transacciones en MySQL, o si mueve datos a una base de datos independiente para análisis. En lugar de crear complicados pipelines de ETL para mover datos, HeatWave, un acelerador de consultas en memoria de alto rendimiento incorporado, acelera el rendimiento de MySQL por órdenes de magnitud para análisis y cargas de trabajo mixtas, sin ningún cambio en las aplicaciones actuales. El servicio se basa en MySQL Enterprise Edition, que permite a los desarrolladores crear e implementar rápidamente aplicaciones nativas de la nube seguras utilizando la base de datos de código abierto más popular del mundo.
Oracle diseñó MySQL HeatWave para que los desarrolladores pudieran centrarse en sus aplicaciones. No tiene que gestionar dos bases de datos para OLTP y OLAP, y puede obtener análisis seguros en tiempo real sin la complejidad, latencia y costo de la duplicación de ETL. MySQL HeatWave es un servicio totalmente gestionado que automatiza tareas como la copia de seguridad, la recuperación y la aplicación de parches en bases de datos y sistemas operativos. "Preocupa menos, crunch más", como decimos. MySQL HeatWave está desarrollado y respaldado por el equipo de desarrollo MySQL de Oracle.
Para empezar a utilizar OCI, crearemos una VCN, desplegaremos un sistema de base de datos MySQL y crearemos un cluster HeatWave, extraeremos algunos datos y los analizaremos. Busca comienza a usar MySQL HeatWave en AWS. Esto te mostrará cómo puedes aprovechar MySQL HeatWave en un escenario multinube. ¡Qué momento para estar vivo!
Como acabamos de empezar, comencemos realmente al principio y creemos una VCN con el acceso adecuado. A continuación, veamos cómo crear un cluster HeatWave en OCI.
En nuestro ejemplo, estamos utilizando un enfoque optimizado para configurar las cosas para utilizar HeatWave.
¡Ahora vamos a empezar con lo básico!
Menú: Inicio > Redes > Redes virtuales en la nube
Cree VCN y subredes mediante redes virtuales en la nube > Iniciar asistente de VCN > Crear una VCN con conexión a Internet. Por supuesto, también obtendrá una subred privada.
El práctico asistente le guiará a través de la creación de un entorno de red para su sistema, aunque hay muchas formas de configurar esto, no nos distraigamos. Observe que elegí el compartimento que configuré anteriormente, my_heatwave_testing, porque es importante.
Ahora, vamos a configurar la lista de seguridad de la VCN para permitir el tráfico a través de los puertos de MySQL Database Service. Haga clic en la subred privada de la VCN que ha creado y haga clic en la lista de seguridad correspondiente.
Ahora haga clic en Añadir lista de seguridad.
Agregaremos algunas reglas de entrada necesarias para activar los puertos adecuados, 3306 y 33060. Estos son los detalles:
Source CIDR: 0.0.0.0/0
Destination Port Range: 3306,33060
Description: MySQL Port
Y haga clic en Add Ingress Rules.
¡Muy bien hasta ahora!
Si ya es el administrador, puede pasar al siguiente paso, pero esto está aquí en caso de que esté agregando usuarios al arrendamiento de OCI que también necesiten acceso para gestionar el sistema de base de datos. Tendremos que definir permisos y limitar un poco el acceso, incluso en nuestro ejemplo "simulado", pero puede leer todo sobre la gestión de grupos aquí. Normalmente crearemos un grupo, crearemos políticas y, a continuación, agregaremos usuarios al grupo.
Hagamos amigos con las opciones de Identidad y Seguridad.
Cree un grupo para los usuarios; en mi ejemplo, he creado un grupo denominado MySQL Admins.
Agregue usuarios al grupo. En nuestro ejemplo, nos agregaremos a este grupo.
Por supuesto, para un grupo, primero creará todos los usuarios que necesite, agregará los que necesiten acceso al grupo en los niveles que determine y estará seguro de que puede soltarlos con los controles de acceso adecuados.
Permitimos el acceso mediante la definición de políticas, lo que permite que un grupo tenga acceso completo (administradores) y un grupo con acceso limitado (usuarios de base de datos, por ejemplo).
Políticas de ejemplo:
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
Esto solo permite configurar y administrar nuestro compartimento y define el ámbito del acceso aplicado a la instancia de base de datos.
Para obtener más información sobre cómo agregar usuarios y definir políticas en OCI, consulte esta documentación.
Menú > Bases de datos > Sistemas de base de datos
Crear sistema de base de datos
Tenga en cuenta que el sistema le avisa si aún no ha configurado usuarios, una VCN, etc. Eso es bueno. No olvides comprobar en qué compartimento crearás esto, de nuevo en List Scope a la izquierda. Haga clic en Create DB System.
Vuelva a comprobar el compartimento, asígnele un nombre y seleccione HeatWave (por supuesto).
Creará credenciales de administrador, asegúrese de guardarlas en algún lugar útil pero seguro.
En Configurar redes, utilizará la red virtual en la nube creada anteriormente, pero utilizaremos la subred privada. Deje el dominio de disponibilidad por defecto y vaya a Configure Hardware.
Confirme que en la sección Configure Hardware, la unidad seleccionada es MySQL. HeatWave.VM.Standard.
Además:
En la sección Configure Backup, puede dejar la ventana de copia de seguridad por defecto de siete días.
Siga desplazándose y haga clic en Show Advanced Options.
Vaya al separador Networking, en el campo Hostname, introduzca el nombre exacto del sistema de base de datos. Esto permitirá al cluster registrarse con DNS y acceder al host a través del nombre de dominio completo (FQDN).
Asegúrese de que la configuración del puerto se corresponda con lo siguiente:
En este ejemplo, vamos a importar datos automáticamente durante la creación de recursos mediante datos almacenados en un cubo de Object Storage, disponibles a través de una solicitud autenticada previamente (PAR).
Si prefiere cargar los datos mediante el shell MySQL, puede omitir este paso.
Seleccione el separador Data Import. Se le pedirá que pegue aquí la URL de la PAR. La URL de PAR de objeto debe ser un archivo de manifiesto que se pueda crear con la opción ociParaMifest de volcado de shell MySQL utilityHere. También puede utilizar una PAR de cubo de Object Storage u objetos con PAR de prefijo.
Aquí hay un enlace de ejemplo que puede usar para importar Airport-DB con fines de prueba.
https://objectstorage.us-ashburn-1.oraclecloud.com/p/zRBSs7nKURyZRcIoV4QlYhascC5gkZcJeQoBS8c2ssyEPID3PSDAnh73OMClQQH4/n/idazzjlcjqzj/b/airportdb-bucket-10282022/o/airportdb/@.manifest.json
Todo listo... haga clic en Crear!
Esta vez aparecerá un hexágono amarillo, eventualmente se volverá verde y su sistema de base de datos estará activo y en ejecución. Haz un poco de té o toma un vaso de agua, has hecho mucho.
Vamos a utilizar Cloud Shell para conectarse a MySQL y MySQL Shell. Es un pequeño terminal de Linux incrustado en el panel de control de OCI (y es adorable). En la esquina superior derecha, haga clic en el icono de petición de datos de Cloud Shell y se abrirá una línea de comandos en la parte inferior del explorador. Asegúrese de configurar la configuración de red privada para Cloud Shell, seleccionando la VCN que se ha creado anteriormente.
Lo bueno es que MySQL Shell ya está instalado.
Una vez que hayamos creado nuestro sistema de base de datos compatible con HeatWave, nos conectaremos a él mediante el shell MySQL.
mysqlsh --host <dbsystemendpointipaddress> -u <username> -p</username></dbsystemendpointipaddress>
Puede más información sobre el shell MySQL.
Más información sobre la conexión de sistemas de base de datos.
Si decide importar datos durante la creación de recursos mediante la opción PAR, puede omitir este paso. De lo contrario, puede continuar aquí para importar AirportDB (PDF).
En Cloud Shell:
wget https://downloads.mysql.com/docs/airport-db.tar.gz
tar xvzf airport-db.tar.gz
Esto crea un único directorio denominado airport-db, que contiene los archivos de datos.
Inicie el shell MySQL y conéctese al punto final del sistema de base de datos MySQL:
mysqlsh _Username@DBSystem_IP_Address_or_host_Name
Cuando se le solicite, introduzca la contraseña de administrador especificada anteriormente. Una vez conectado, utilizará la utilidad de carga de volcado para importar datos.
MySQL>JS> util.loadDump("airport-db", {threads: 16, deferTableIndexes: "all", ignoreVersion: true})
Debe tardar unos minutos en importarse, ¡entonces ya está listo para continuar!
HeatWave está realmente diseñado para juegos de big data, lo que requiere un análisis rápido, por lo que, aunque estoy importando una mera base de datos de ejemplo, puede cargar tanto como desee (siempre que haya asignado el almacenamiento). Además, las consultas se pueden ejecutar en el cluster sin descargarlas a una base de datos independiente. El cluster puede tardar unos minutos en crearse.
Para empezar, vaya a su sistema de base de datos en la consola de OCI: Bases de datos > Sistemas de base de datos > y haga clic en el sistema de base de datos creado recientemente.
En Resources, verá HeatWave (entre otros elementos útiles), haga clic en eso.
Por supuesto, desea agregar el cluster HeatWave (mediante el botón de la derecha, a mitad de la página) o hacer clic en el menú Más acciones arriba y seleccionar Agregar cluster de Heatwave. Acepte los valores por defecto (16 núcleos de CPU con 512 GB de RAM y 1 nodo) y, a continuación, haga clic en el botón Add HeatWave cluster.
Esto toma unos minutos para que pueda volver a calentar esa bebida mientras el cluster se pone en marcha.
Por último, la parte divertida! Una vez que se esté ejecutando el cluster HeatWave:
$> 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);
Ahora, veamos cuánto tiempo llevaría utilizar el sistema de base de datos MySQL "vainilla simple". Para ello, desactivamos la variable use_secondary_engine.
Lo que hemos hecho hasta ahora, todo en OCI, es configurar una red virtual en la nube con puertos para el uso de MySQL, configurar una base de datos MySQL y agregar un cluster HeatWave. A continuación, hemos importado algunos datos de prueba y ejecutado un par de consultas para ver la velocidad de HeatWave frente al sistema de base de datos por sí solo.
¿Deseas más información? ¡Únete a la discusión en nuestro canal público de Slack!
Esta página ha sido traducida por una máquina.