Una delle cose interessanti di MySQL HeatWave è la possibilità di eseguire gli analytics direttamente sui dati transazionali esistenti, quindi non è necessario mescolare tali dati in un sistema separato quando è necessario eseguire un'analisi massicciamente parallela. È sorprendentemente facile.
MySQL HeatWave è un servizio completamente gestito e, come qualsiasi database, è la soluzione migliore quando viene protetto dalla rete Internet pubblica. Dovremo comunque connetterci in qualche modo in modo da poter lavorare con i nostri dati, quindi esploriamo l'uso di OCI Cloud Shell (che abbiamo descritto brevemente nella guida introduttiva), un host Bastion fai-da-te e la connessione a MySQL Workbench utilizzando il servizio Bastion OCI (Ulteriori informazioni su Bastion) come tunnel sicuro.
Se non disponi già di un sistema MySQL HeatWave attivo e in esecuzione, vai alla Guida introduttiva a MySQL HeatWave su OCI e ottieni una soluzione. Quando sei tutto pronto, continua a leggere qui per esplorare le varie opzioni di connessione, le tecniche di caricamento dei dati e le funzionalità di gestione dei cluster.
Per coloro che preferiscono un'interfaccia a riga di comando, è possibile scegliere di connettersi tramite Cloud Shell o tramite un host bastion autogestito, in cui è possibile utilizzare il proprio sapore preferito di Linux. Per coloro che preferiscono la GUI, è possibile passare alla sezione Secure Tunnel. Ma prima... qualche passo preparatorio!
Prima di proseguire, assicurati di aver raccolto i dettagli degli endpoint richiesti dal tuo sistema DB. Avrai bisogno dell'indirizzo IP privato e della porta MySQL che puoi ottenere navigando in Database -> Sistemi DB, dove fare clic sul nome del database MySQL creato in precedenza.
Successivamente, avrai bisogno di una chiave SSH per una connettività sicura ai diversi sistemi intermedi (sia che tu scelga di utilizzare Bastion o un tunnel sicuro). Per creare la chiave SSH, utilizzeremo Cloud Shell disponibile direttamente nella console OCI. (Nota - possiamo anche connetterci al database da Cloud Shell... ci arriveremo presto)
Cloud Shell è come una piccola VM che esegue una shell Bash e viene caricata con funzioni. Infatti, MySQL e MySQL Shell sono già installati, insieme a una vasta gamma di strumenti OCI. Quindi ci vorrà un minuto per iniziare, ma quando lo farà saremo in grado di fare molto all'interno della CLI direttamente nel tuo browser.
Una volta attivata la shell, creare una chiave SSH utilizzando:
ssh-keygen -b 2048 -t rsa
Basta continuare a premere Invio (per accettare il nome file predefinito e procedere senza password), e presto le chiavi SSH pubbliche (~/.ssh/id_rsa.pub) e private (~/.ssh/id_rsa) saranno pronte per l'uso.
Quindi cd ~/.ssh e ls -al per vedere cosa c'è dentro:
Se questa è la prima volta che hai creato le chiavi SSH in Cloud Shell, dovresti vedere solo i due file. Mantieni la chiave privata al sicuro e non condividerla. La chiave pubblica sarà necessaria per determinate attività e può essere caricata su alcuni sistemi, nonché copiata e incollata per facilitare le comunicazioni sicure nel cloud.
Prima di uscire da Cloud Shell, prenderemo la chiave pubblica. Aprire un editor di testo come Blocco note e, se ci si trova ancora in Cloud Shell, copiare il contenuto id_rsa.pub nel blocco note con il cat ~/.ssh/id_rsa.pub, selezionare il blocco di testo (la chiave) e incollarlo nell'editor di testo desiderato. Dovrebbe iniziare con ssh-rsa. È inoltre possibile fare clic sul pignone nell'angolo superiore destro di Cloud Shell e selezionare Scarica. Immettere il percorso della chiave pubblica:
La chiave pubblica verrà posizionata nella cartella designata dal sistema operativo per i file scaricati. Fai lo stesso per .ssh/id_rsa (la chiave privata) e conservala in un luogo sicuro. Su Mac o Linux, assicurarsi di chmod 400 il file chiave privata.
Poiché ti trovi già in Cloud Shell, iniziamo da qui con un rapido aggiornamento. Poiché gli strumenti sono già installati, è possibile connettersi al client MySQL o alla shell. Nel nostro esempio, useremo la shell MySQL.
Innanzitutto, dovrai modificare l'impostazione di rete per Cloud Shell in privata.
Quando richiesto, selezionare la VCN e la subnet in cui è stata distribuita l'istanza MySQL e [Connettersi a questa rete].
NOTA: questa funzione vive nella tua regione d'origine. Se non è stato distribuito MySQL, è possibile seguire le istruzioni contenute nel prompt per stabilire il peering VCN remoto.
Tempo di login al database:
mysqlsh -uadmin -p -h 10.0.1.... --sql
Quando richiesto, immettere la password designata durante la creazione del sistema DB.
Se i dati di esempio sono stati caricati durante la creazione del database, è possibile eseguire una query rapida per convalidare il contenuto del database:
SELECT table_name, table_rows FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'airportdb';
Tempo di calcolo! Andare a Compute > Istanze. Rimanere nello stesso compartimento di prima e fare clic su Crea istanza. Assegnare un nome, mantenere il dominio di disponibilità e la forma selezionati. Seleziona l'immagine per il tuo gusto Linux preferito. In questo esempio, stiamo utilizzando Oracle Linux 8.
L'importante è utilizzare la VCN impostata in precedenza. Selezionare la subnet pubblica creata e assicurarsi che l'opzione Assegna un indirizzo IP pubblico sia impostata su Sì.
Nella sezione Aggiungi chiavi SSH incollare la chiave pubblica dal blocco note.
Quindi fai clic su Crea per avviarlo! Ci vorranno alcuni minuti, ovviamente.
Una volta che diventa verde ed è in esecuzione, la pagina dell'istanza ci mostrerà un indirizzo IP pubblico e un IP privato nell'accesso all'istanza.
Copia e salva l'IP pubblico.
Ora ci connetteremo al sistema DB MySQL dal nostro host Bastion.
Ora puoi disporre dell'IP pubblico dell'istanza di computazione, della chiave SSH privata e dell'IP privato del tuo sistema DB. Metteremo insieme i primi due per connettersi tramite SSH. Indica dove si trova la chiave privata e il nome utente sarà opc.
Ad esempio (Mac OS o terminale Linux; PowerShell su Windows):
ssh -i ~/.ssh/id_rsa opc@
Installiamo MySQL Shell utilizzando (e continuiamo a rispondere a tutti i prompt):
sudo yum install mysql-shell -y
L'endpoint sarà l'IP privato copiato in precedenza nel blocco note. Avrai anche bisogno della password per il database che ti sei alzato in precedenza, ovviamente.
Esempio:
mysqlsh -uadmin -p -h 10.0.1.... --sql
Quando richiesto, immettere la password designata durante la creazione del sistema DB.
Se i dati di esempio sono stati caricati durante la creazione del database, è possibile eseguire una query rapida per convalidare il contenuto del database:
SELECT table_name, table_rows FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'airportdb';
Il servizio OCI Bastion semplifica la creazione di connessioni sicure e temporanee nelle risorse private all'interno della rete cloud virtuale. Poiché MySQL è un sistema DB completamente gestito, non è possibile connettersi al sistema operativo. Creeremo invece un tunnel sicuro attraverso il servizio Bastion e utilizzeremo MySQL Workbench per la connessione.
Per iniziare, vai a Security -> Bastion nella console OCI. Crea un'istanza bastion: si tratta essenzialmente di un contenitore per configurazioni di sessione specifiche.
Creare quindi una sessione. Il tipo sarà Sessione di inoltro porta SSH. Sarà necessario immettere l'indirizzo IP privato dell'istanza MySQL, insieme alla porta DB (3306 per impostazione predefinita). Per questo esercizio è possibile utilizzare la coppia di chiavi SSH generata in precedenza. Nel mondo reale si dovrebbe probabilmente generare diverse coppie di chiavi.
Fare clic su [Crea sessione].
Dopo aver creato correttamente la sessione, è possibile fare clic sul menu a 3 punti sulla destra per visualizzare i comandi SSH. Copiare il comando in un editor di testo e sostituire
Per Mac o Linux, è possibile aprire una finestra del terminale ed eseguire il comando. In Windows, utilizzare PowerShell. Se viene richiesto di continuare la connessione, digitare 'sì' e premere Invio.
Successivamente, aprire il client del database (ad esempio MySQL Workbench) e configurare la connessione.
Fare clic su [Test connessione] - se tutto va bene, si dovrebbe vedere:
Salvare le impostazioni e aprire la connessione. Ora puoi puntare su dati esistenti e / o caricare nuovi dati.
A questo punto siamo pronti a caricare i dati da InnoDB in HeatWave in modo che possiamo davvero dare il via alle cose.
Torniamo alla shell MySQL in modo da poter avviare il caricamento dei dati.
Sulla riga di comando:
mysqlsh -uadmin -p -h 10.0.1... --sql
Immettere la password del database.
Utilizzare il comando Auto Parallel Load per caricare le tabelle airportdb in HeatWave:
CALL sys.heatwave_load(JSON_ARRAY('airportdb'), NULL);
Solo per essere sicuri, verificheremo che le tabelle siano caricate nel cluster HeatWave. Le tabelle caricate hanno uno stato di caricamento AVAIL_RPDGSTABSTATE.
Ancora una volta, nella shell MySQL:
USE performance_schema;
Verrà indicato che lo schema predefinito è stato impostato su performance_schema.
SELECT NAME, LOAD_STATUS FROM rpd_tables,rpd_table_id WHERE rpd_tables.ID = rpd_table_id.ID;
Naturalmente, da qui è possibile eseguire query ed eseguire tutte le funzioni del database necessarie. È inoltre possibile attivare e disattivare HeatWave per confrontare i tempi delle query e vedere quanto più velocemente questi vengono eseguiti con HeatWave attivato.
Per verificare se HeatWave è attivo, usare il comando seguente:
SHOW VARIABLES LIKE 'use_secondary_engine%';
Per spegnerlo, utilizzare:
SET SESSION use_secondary_engine=OFF;
E per riaccenderlo, utilizzare:
SET SESSION use_secondary_engine=ON;
Se è necessario scaricare le tabelle dal cluster HeatWave, modificare la tabella in questo modo:
ALTER TABLE flightschedule SECONDARY_UNLOAD;
Dopo aver creato un cluster HeatWave, è comunque possibile regolare il numero di nodi. Per eseguire questa operazione, modificare il cluster utilizzando la voce di menu HeatWave nei sistemi DB. Si noti che il cluster viene ridimensionato in linea, non vi è alcun tempo di inattività durante l'operazione e i dati vengono ribilanciati automaticamente dopo il ridimensionamento.
C'è anche un'opzione per stimare il numero di nodi che possono essere necessari per la quantità di dati che si desidera analizzare. La generazione di una stima può richiedere diversi minuti, ma aiuta a evitare di ridimensionare correttamente il cluster. Se lo strumento di stima suggerisce una modifica alla configurazione, è possibile applicarla direttamente lì.
In qualsiasi momento, è possibile scegliere di arrestare il cluster HeatWave (poiché verrà arrestata anche la fatturazione) o di riavviare per rinnovare il cluster. Quando un cluster HeatWave viene arrestato mediante un'azione di arresto o riavvio, i dati caricati nella memoria del cluster HeatWave vengono persi. Quando si avvia o riavvia il cluster, tutti i dati caricati in precedenza verranno ricaricati automaticamente. Le modifiche ai dati che si sono verificate all'interno del database durante l'arresto di HeatWave sono incluse nei dati ricaricati.
L'eliminazione di un cluster HeatWave comporta la rimozione definitiva dei nodi del cluster HeatWave. Il sistema DB a cui è collegato il cluster HeatWave non viene interessato. Tenere presente che il cluster dovrà essere impostato di nuovo da zero dopo l'eliminazione, il che significa ricaricare i dati in HeatWave.
Questo conclude la nostra breve revisione delle strategie di connettività e delle funzionalità di gestione per MySQL HeatWave su OCI. Abbiamo imparato come connettere un sistema DB attraverso vari canali, come caricare/scaricare i dati in HeatWave e come attivare e disattivare il motore secondario. Da qui, puoi provare a eseguire alcune query o persino caricare i tuoi dati e vedere quanto velocemente HeatWave può andare!
Per ulteriori informazioni su MySQL HeatWave, leggi i documenti qui.
Vorresti saperne di più? Partecipa alla discussione sul nostro canale Slack pubblico.