Conexión y gestión de MySQL HeatWave en OCI

Una de las mejores cosas de MySQL HeatWave es la capacidad de ejecutar análisis directamente en los datos transaccionales existentes, por lo que no es necesario trasladar esos datos a un sistema independiente cuando se necesita realizar análisis masivos paralelos. Es sorprendentemente fácil.

MySQL HeatWave es un servicio totalmente gestionado y, como cualquier base de datos, es mejor cuando se mantiene protegido de la red pública de Internet. Seguiremos necesitando conectarnos de alguna manera para poder trabajar con nuestros datos, así que exploremos el uso de OCI Cloud Shell (que tratamos brevemente en la guía de introducción), un host de bastión DIY y la conexión con MySQL Workbench mediante el servicio OCI Bastion (lea más sobre Bastion) como túnel seguro.

Si aún no tienes un sistema MySQL HeatWave activo y en ejecución, dirígete a Introducción a MySQL HeatWave en OCI y ponte en marcha. Cuando esté listo, siga leyendo aquí para explorar las distintas opciones de conexión, las técnicas de carga de datos y las capacidades de gestión de clusters.

requisitos previos

  • Una cuenta de OCI (prueba o de pago)
  • Alguna experiencia con el shell MySQL
  • Un sistema de base de datos MySQL HeatWave
  • Un editor de texto

Una revisión rápida de sus opciones

Para aquellos que prefieren una interfaz de línea de comandos, puede optar por conectarse a través de Cloud Shell o a través de un host bastión autogestionado, donde puede utilizar su sabor favorito de Linux. Para aquellos que prefieren la GUI, puede dirigirse a la sección Secure Tunnel. Pero primero... ¡unos pasos preparatorios!

Antes de continuar, asegúrese de que ha recopilado los detalles del punto final de requisito del sistema de base de datos. Necesitará la dirección IP privada y el puerto MySQL que se pueden obtener navegando por Bases de datos -> Sistemas de base de datos, donde hará clic en el nombre de la base de datos MySQL que ha creado anteriormente.

captura de pantalla de Cloud Shell

A continuación, necesitará una clave SSH para una conectividad segura con los diferentes sistemas intermedios (ya sea que elija utilizar Bastion o un túnel seguro). Utilizaremos Cloud Shell, disponible directamente en nuestra consola de OCI, para crear la clave SSH, muy útil. (Nota: también podemos conectarnos a la base de datos desde Cloud Shell... lo haremos pronto)

captura de pantalla del icono de Cloud Shell

Cloud Shell es como una pequeña máquina virtual que ejecuta un shell de Bash y viene cargada de funciones. De hecho, MySQL y MySQL Shell ya están instalados, junto con una variedad de herramientas de OCI. Por lo tanto, tardará un minuto en iniciarse, pero cuando lo haga, podremos hacer mucho dentro de la CLI directamente en su navegador.

Una vez que el shell esté activo, cree una clave SSH con:

ssh-keygen -b 2048 -t rsa

Simplemente siga pulsando Intro (para aceptar el nombre de archivo por defecto y continuar sin contraseña), y pronto las claves SSH públicas (~/.ssh/id_rsa.pub) y privadas (~/.ssh/id_rsa) estarán listas para su uso.

Así que vamos a cd ~/.ssh y ls -al para ver lo que hay dentro:

captura de pantalla de la consola de Cloud Shell

Si es la primera vez que crea claves SSH en Cloud Shell, debería ver solo los dos archivos. Mantenga la clave privada segura y no la comparta. La clave pública será necesaria para ciertas actividades y se puede cargar en algunos sistemas, así como copiar y pegar para facilitar las comunicaciones seguras en la nube.

Antes de salir de Cloud Shell, queremos capturar la clave pública. Abra un editor de texto como el Bloc de notas y, si aún está en Cloud Shell, copie el contenido id_rsa.pub en el bloc de notas con cat ~/.ssh/id_rsa.pub, seleccione ese blob de texto (es la clave) y péguelo en el editor de texto que desee. Debe comenzar con ssh-rsa. También puede hacer clic en el piñón de la esquina superior derecha de Cloud Shell y seleccionar Download. Introduzca la ruta de acceso a la clave pública:

captura de pantalla de descarga de Cloud Shell

La clave pública se colocará en la carpeta designada por el sistema operativo para los archivos descargados. Haga lo mismo con .ssh/id_rsa (la clave privada) y almacénela en una ubicación segura. En Mac o Linux, asegúrese de chmod 400 el archivo de clave privada.

Shell de nube de OCI

Como ya está en Cloud Shell, comencemos aquí con un repaso rápido. Debido a que las herramientas ya están instaladas, puede conectarse con el cliente MySQL o el shell. En nuestro ejemplo, utilizaremos el shell MySQL.

Lo primero es lo primero, que tendrá que cambiar la configuración de red para Cloud Shell a privada.

captura de pantalla de configuración de red de Cloud Shell

Cuando se le solicite, seleccione la VCN y la subred en las que ha desplegado la instancia MySQL y [Conéctese a esta red].

NOTA: Esta función se encuentra en su región principal. Si no ha desplegado MySQL allí, puede seguir las instrucciones de la petición de datos para establecer el intercambio de VCN remoto.

Tiempo para conectarse a la base de datos:

mysqlsh -uadmin -p -h 10.0.1.... --sql

Cuando se le solicite, introduzca la contraseña que ha designado al crear el sistema de base de datos.

Si ha cargado los datos de ejemplo al crear la base de datos, puede ejecutar una consulta rápida para validar el contenido de la base de datos:

SELECT table_name, table_rows FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'airportdb';

Host de bastión DIY

Calcular tiempo Vaya a Compute > Instances. Permanezca en el mismo compartimento que antes y haga clic en Create Instance. Asigne un nombre, mantenga el dominio de disponibilidad y la unidad seleccionados. Seleccione la imagen para su tipo de Linux favorito. En este ejemplo, utilizamos Oracle Linux 8.

La parte importante aquí es utilizar la VCN que ha configurado anteriormente. Seleccione la subred pública que se ha creado y asegúrese de que Asignar una dirección IP pública está definida en Sí.

En la sección Add SSH keys, pegue la clave pública del bloc de notas.

A continuación, haga clic en Create para iniciarlo. Tardará unos minutos, por supuesto.

Una vez que se vuelva verde y se esté ejecutando, la página de la instancia nos mostrará una dirección IP pública y una IP privada en Instance access.

Copie y guarde la IP pública.

Ahora nos conectaremos al sistema de base de datos MySQL desde nuestro host de Bastion.

Por lo tanto, ahora tiene la IP pública de la instancia informática, su clave SSH privada y la IP privada del sistema de base de datos. Vamos a unir los dos primeros para conectar a través de SSH. Señale dónde está la clave privada y el nombre de usuario será opc.

Por ejemplo (terminal de Mac OS o Linux; PowerShell en Windows):

ssh -i ~/.ssh/id_rsa opc@<your_compute_instance_ip></your_compute_instance_ip>

Instale el shell MySQL con (y siga respondiendo y a todas las peticiones de datos):

sudo yum install mysql-shell -y

El punto final será la IP privada que ha copiado anteriormente en el bloc de notas. También necesitará la contraseña para la base de datos que puso en marcha anteriormente, por supuesto.

Ejemplo:

mysqlsh -uadmin -p -h 10.0.1.... --sql

Cuando se le solicite, introduzca la contraseña que ha designado al crear el sistema de base de datos.

Si ha cargado los datos de ejemplo al crear la base de datos, puede ejecutar una consulta rápida para validar el contenido de la base de datos:

SELECT table_name, table_rows FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'airportdb';

Bastión gestionado por OCI

El servicio OCI Bastion facilita la creación de conexiones temporales y seguras en los recursos privados dentro de la red virtual en la nube. Puesto que MySQL es un sistema de base de datos totalmente gestionado, no podemos conectarnos al sistema operativo. En su lugar, crearemos un túnel seguro a través del servicio Bastion y utilizaremos MySQL Workbench para conectarnos.

Para empezar, vaya a Seguridad -> Bastión en la consola de OCI. Crear una instancia de Bastion: se trata esencialmente de un contenedor para configuraciones de sesión específicas.

A continuación, cree una sesión. El tipo será sesión de reenvío de puerto SSH. Tendrá que introducir la dirección IP privada de la instancia MySQL, junto con el puerto de base de datos (3306 por defecto). Para este ejercicio, puede utilizar el par de claves SSH que ha generado anteriormente. En el mundo real, probablemente debería generar diferentes pares de claves.

Haga clic en [Crear sesión].

Una vez que la sesión se haya creado correctamente, puede hacer clic en el menú de 3 puntos situado a la derecha para ver los comandos SSH. Copie el comando en un editor de texto y sustituya por la ruta completa a la clave que se creó/descargó anteriormente. Reemplace por el puerto local del equipo desde el que planea conectarse. Puede utilizar cualquier puerto disponible.

Para Mac o Linux, puede abrir una ventana de terminal y ejecutar el comando. En Windows, utilice PowerShell. Si se le solicita que continúe conectándose, escriba 'yes' y pulse Intro.

A continuación, abra el cliente de base de datos (es decir, MySQL Workbench) y configure la conexión.

  • Nombre de host: 127.0.0.1
  • Puerto: 3306
  • Nombre de usuario: admin (en mi caso)
  • Contraseña: [Almacenar en almacén ...]

Haga clic en [Probar conexión] - si todo va bien, debería ver:

captura de pantalla de mysql workbench: conexión correcta

Guardar la configuración y abrir la conexión. Ahora puede buscar datos existentes y/o cargar nuevos datos.

Cargando datos en el cluster HeatWave

En este punto, estamos listos para cargar datos de InnoDB en HeatWave para que realmente podamos poner las cosas en marcha.

Volvamos al shell MySQL para que podamos iniciar la carga de datos.

En la línea de comandos:

mysqlsh -uadmin -p -h 10.0.1... --sql

Introduzca la contraseña de la base de datos.

Utilice el comando Auto Parallel Load para cargar las tablas de airportdb en HeatWave:

CALL sys.heatwave_load(JSON_ARRAY('airportdb'), NULL);

Solo para asegurarnos de que las tablas se cargan en el cluster HeatWave. Las tablas cargadas tienen un estado de carga AVAIL_RPDGSTABSTATE.

De nuevo, en el shell MySQL:

USE performance_schema;

Le indicará que el esquema por defecto se ha definido en performance_schema.

SELECT NAME, LOAD_STATUS FROM rpd_tables,rpd_table_id WHERE rpd_tables.ID = rpd_table_id.ID;

Por supuesto, desde aquí puede ejecutar consultas y realizar todas las funciones de base de datos que necesite. También puede activar y desactivar HeatWave para comparar los tiempos de consulta y ver cuánto más rápido se ejecutan con HeatWave activado.

Para ver si HeatWave está activado, utilice el siguiente comando:

SHOW VARIABLES LIKE 'use_secondary_engine%';

Para desactivarlo, utilice:

SET SESSION use_secondary_engine=OFF;

Y para volver a encenderlo, utilice:

SET SESSION use_secondary_engine=ON;

Si necesita descargar tablas del cluster HeatWave, simplemente modifique la tabla de la siguiente forma:

ALTER TABLE flightschedule SECONDARY_UNLOAD;

Gestión de un cluster HeatWave

Después de crear un cluster HeatWave, puede ajustar el número de nodos. Para ello, edite el cluster mediante la opción de menú HeatWave en Sistemas de base de datos. Tenga en cuenta que el tamaño del cluster se cambia en línea, que no hay tiempo de inactividad durante la operación y que los datos se vuelven a equilibrar automáticamente después del cambio de tamaño.

También existe la opción de estimar el número de nodos que pueden ser necesarios para la cantidad de datos que desea analizar. La generación de una estimación puede tardar varios minutos, pero ayuda a eliminar la estimación del tamaño correcto del cluster. Si el estimador sugiere un cambio en la configuración, puede aplicarlo allí mismo.

En cualquier momento, puede optar por parar el cluster HeatWave (ya que la facturación también se detendrá) o reiniciar para refrescar el cluster. Cuando un cluster HeatWave se para mediante una acción de parada o reinicio, los datos cargados en la memoria del cluster HeatWave se pierden. Al iniciar o reiniciar el cluster, los datos cargados anteriormente se volverán a cargar automáticamente. Los cambios de datos que se han producido en la base de datos mientras se paraba HeatWave se incluyen en los datos recargados.

Supresión de un cluster HeatWave

Al suprimir un cluster HeatWave, se eliminan los nodos de cluster HeatWave de forma permanente. El sistema de base de datos al que está asociado el cluster HeatWave no se ve afectado. Tenga en cuenta que el cluster se deberá configurar de nuevo desde cero después de la supresión, lo que significa volver a cargar los datos en HeatWave.

Resumen

Esto concluye nuestra breve revisión de las estrategias de conectividad y las capacidades de gestión para MySQL HeatWave en OCI. Hemos aprendido a conectar un sistema de base de datos a través de varios canales, a cargar/descargar datos en HeatWave y a activar y desactivar el motor secundario. Desde aquí, puede intentar ejecutar algunas consultas o incluso cargar sus propios datos y ver lo rápido que puede llegar HeatWave.

Para obtener más información sobre MySQL HeatWave, lea los documentos aquí.

¿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