Introducción a MySQL HeatWave en OCI

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.

requisitos previos

  • Una cuenta de OCI y un nombre de cuenta de Oracle Cloud
  • Acceso de administrador
  • Un explorador compatible (Chrome 69+, Safari 12.1+, Firefox 62+ o cualquier explorador aprobado por Oracle Jet)

Descripción general

  1. Crear una VCN y configurar para el acceso a la base de datos
  2. Crear usuarios y grupos (si aún no lo ha hecho)
  3. Creación de un sistema de base de datos con una unidad compatible con HeatWave
  4. Conéctese a Cloud Shell y utilice MySQL Shell
  5. Importar datos de muestra
  6. Agregar cluster de HeatWave
  7. Ejecutar consultas

En nuestro ejemplo, estamos utilizando un enfoque optimizado para configurar las cosas para utilizar HeatWave.

¡Ahora vamos a empezar con lo básico!

Crear una VCN y configurar para el acceso a la base de datos

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.

captura de pantalla del asistente de VCN

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.

captura de pantalla de configuración de VCN

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.

captura de pantalla de lista de seguridad

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.

captura de pantalla de reglas de entrada

¡Muy bien hasta ahora!

Crear usuarios y grupos (si aún no lo ha hecho)

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.

Crear un sistema de base de datos con una unidad compatible con HeatWave

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.

captura de pantalla de información del sistema de base de datos

Vuelva a comprobar el compartimento, asígnele un nombre y seleccione HeatWave (por supuesto).

captura de pantalla de creación de credenciales de administrador

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.

captura de pantalla de configuración de ubicación

Confirme que en la sección Configure Hardware, la unidad seleccionada es MySQL. HeatWave.VM.Standard.

Además:

  • Recuento de núcleos de CPU: 16
  • Tamaño de la memoria: 512 GB
  • Tamaño de almacenamiento de datos: 1024
captura de pantalla de configuración de hardware

En la sección Configure Backup, puede dejar la ventana de copia de seguridad por defecto de siete días.

captura de pantalla de configuración de plan de copia de seguridad

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).

captura de pantalla de configuración de redes

Asegúrese de que la configuración del puerto se corresponda con lo siguiente:

  • MySQL Puerto: 3306
  • MySQL Puerto de protocolo X: 33060

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).

captura de pantalla de importación de datos

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.

Conectar y utilizar el shell MySQL

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.

captura de pantalla del shell mysql
captura de pantalla de configuración de red privada de mysql shell

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.

Importar 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!

Agregar cluster de HeatWave

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.

captura de pantalla del separador Recursos

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.

captura de pantalla de agregación de cluster
captura de pantalla de configuración de cluster de ciclo de calor

Esto toma unos minutos para que pueda volver a calentar esa bebida mientras el cluster se pone en marcha.

Cargar datos en HeatWave y ejecutar consultas

Por último, la parte divertida! Una vez que se esté ejecutando el cluster HeatWave:

  1. 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
  2. Cambie el modo de ejecución del shell MySQL a SQL:
    MySQL>JS> \sql
  3. Cambiar a la base de datos airportdb:
    MySQL>SQL> USE airportdb;  
    Default schema set to `airportdb`.Fetching table and column names from `airportdb` for auto-completion... Press ^C to stop.`
  4. Cargar datos de MySQL InnoDB a HeatWave
    MySQL>SQL> call sys.heatwave_load(JSON_ARRAY(“airportdb”), NULL);
  5. Utilice EXPLAIN para verificar que la consulta se puede descargar en el cluster HeatWave:
    captura de pantalla de la consulta mysql 1
    Nota: Si se puede descargar la consulta, la columna Extra de la salida EXPLAIN informa "Using Secondary Engine RAPID".
  6. Después de verificar que la consulta se puede descargar, ejecute la consulta y anote el tiempo de ejecución.
    captura de pantalla de la consulta mysql 2

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.

captura de pantalla de la consulta mysql 3

Resumen

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.

Chatbot de Oracle
Disconnected