MySQL HeatWave ha perfettamente senso se esegui carichi di lavoro misti transazionali e di analytics in MySQL o stai spostando i dati in un database separato per gli analytics. Invece di creare pipeline ETL complesse per spostare i dati, HeatWave, un acceleratore di query in-memory integrato e ad alte prestazioni, accelera le prestazioni MySQL in base agli ordini di grandezza per gli analytics e i carichi di lavoro misti, senza apportare modifiche alle applicazioni correnti. Il servizio si basa su MySQL Enterprise Edition, che consente agli sviluppatori di creare e distribuire rapidamente applicazioni cloud native sicure utilizzando il database open source più diffuso al mondo.
Oracle ha progettato MySQL HeatWave in modo che gli sviluppatori potessero concentrarsi sulle loro applicazioni. Non è necessario gestire due database per OLTP e OLAP ed è possibile ottenere analytics sicuri in tempo reale senza la complessità, la latenza e i costi della duplicazione ETL. MySQL HeatWave è un servizio completamente gestito che automatizza attività quali backup, ripristino, applicazione di patch al database e al sistema operativo. "Preoccupati di meno, schiaccia di più", come diciamo noi! MySQL HeatWave è stato sviluppato e supportato dal team di sviluppo MySQL di Oracle.
Per iniziare a utilizzare OCI, creare una VCN, distribuire un sistema DB MySQL e creare un cluster HeatWave, estrarre alcuni dati e analizzarli. Cerchi iniziare a utilizzare MySQL HeatWave on AWS. Questo ti mostrerà come puoi sfruttare MySQL HeatWave in uno scenario multi-cloud. Che tempo per essere vivi!
Poiché abbiamo appena iniziato, iniziamo davvero all'inizio e creiamo una VCN con l'accesso appropriato, quindi vediamo come creare un cluster HeatWave in OCI.
Nel nostro esempio, stiamo utilizzando un approccio semplificato per impostare le cose per utilizzare HeatWave.
Ora iniziamo con le basi!
Menu: Home > Networking > Reti cloud virtuali
Crea VCN e subnet utilizzando le reti cloud virtuali > Avvia procedura guidata VCN > Crea una VCN con connettività Internet. Avrai anche una subnet privata.
La pratica procedura guidata ti guiderà attraverso la creazione di un ambiente di rete per il tuo sistema, anche se ci sono molti modi per configurarlo, non lasciamoci distrarre. Notare che ho scelto il compartimento che ho impostato in precedenza, my_heatwave_testing - perché questo è importante!
Ora configuriamo la lista di sicurezza della VCN per consentire il traffico attraverso le porte di MySQL Database Service. Fare clic sulla subnet privata per la VCN creata e fare clic sulla relativa lista di sicurezza.
Ora fare clic su Aggiungi lista di sicurezza.
Aggiungeremo alcune regole di entrata necessarie per abilitare le porte giuste, 3306 e 33060. Ecco i dettagli:
Source CIDR: 0.0.0.0/0
Destination Port Range: 3306,33060
Description: MySQL Port
Fare clic su Aggiungi regole di entrata.
Che sembra buono finora!
Se sei già l'amministratore, puoi saltare al passo successivo, ma questo è qui nel caso in cui tu stia aggiungendo utenti alla tenancy OCI che potrebbero anche aver bisogno dell'accesso per gestire il sistema DB. Sarà necessario impostare le autorizzazioni e limitare l'accesso in qualche modo, anche nel nostro esempio "semplificato", ma è possibile leggere tutto sulla gestione dei gruppi qui. Di solito creeremo un gruppo, creeremo criteri, quindi aggiungeremo utenti al gruppo.
Facciamo amicizia con le opzioni di identità e sicurezza.
Crea un gruppo per i tuoi utenti; nel mio esempio ho creato un gruppo chiamato MySQL Admins.
Aggiungere utenti al gruppo. Nel nostro esempio, ci aggiungiamo a questo gruppo.
Naturalmente, per un gruppo creerai prima tutti gli utenti di cui hai bisogno, aggiungili al gruppo che richiede l'accesso ai livelli stabiliti e assicurati di poterli impostare allentati con i controlli di accesso appropriati.
Consentiamo l'accesso impostando i criteri, consentendo a un gruppo di avere accesso completo (admin) e a un gruppo con accesso limitato (ad esempio, gli utenti del database).
Criteri di esempio:
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
Ciò consente solo di configurare e amministrare il nostro compartimento e definisce l'ambito dell'accesso applicato all'istanza di database.
Per ulteriori informazioni sull'aggiunta di utenti e sull'impostazione dei criteri in OCI, fare riferimento a questo documento.
Menu > Database > Sistemi DB
Crea sistema DB
Si noti che il sistema visualizza un avviso se non sono già stati impostati utenti, una VCN e così via. È bello. Non dimenticare di controllare in quale compartimento creerai questo, di nuovo sotto List Scope a sinistra. Fare clic su Crea sistema DB.
Doppio controllo del compartimento, assegnargli un nome e selezionare HeatWave (ovviamente).
Creerai le credenziali di amministratore, assicurati di salvare quelle da qualche parte utili ma sicure.
In Configure Networking, utilizzerai la rete cloud virtuale creata in precedenza, ma useremo la subnet privata. Lasciare il dominio di disponibilità predefinito e andare a Configura hardware.
Verificare che nella sezione Configura hardware la forma selezionata sia MySQL. HeatWave.VM.Standard.
Inoltre:
Nella sezione Configura backup è possibile lasciare la finestra di backup predefinita di sette giorni.
Continua a scorrere e fai clic su Mostra opzioni avanzate.
Andare alla scheda Networking e immettere il nome esatto del sistema DB nel campo Nome host. Ciò consentirà al cluster di registrarsi con il DNS e di accedere all'host tramite un nome dominio completamente qualificato (FQDN).
Accertarsi che la configurazione della porta corrisponda a quanto indicato di seguito.
Per questo esempio, i dati verranno importati automaticamente durante la creazione delle risorse utilizzando i dati memorizzati in un bucket di storage degli oggetti, resi disponibili tramite la richiesta preautenticata (PAR, Pre-Authenticated Request).
Se si preferisce caricare i dati utilizzando la shell MySQL, è possibile saltare questo passo.
Selezionare la scheda Importazione dati. Verrà richiesto di incollare qui l'URL per la richiesta PAR. L'URL PAR dell'oggetto deve essere un file manifest che può essere creato con l'opzione ociParaMifest del dump della shell MySQL utilityHere. Inoltre, puoi utilizzare una richiesta PAR del bucket di storage degli oggetti o oggetti con richiesta PAR prefisso.
Di seguito è riportato un collegamento di esempio che è possibile utilizzare per importare Airport-DB a scopo di prova.
https://objectstorage.us-ashburn-1.oraclecloud.com/p/zRBSs7nKURyZRcIoV4QlYhascC5gkZcJeQoBS8c2ssyEPID3PSDAnh73OMClQQH4/n/idazzjlcjqzj/b/airportdb-bucket-10282022/o/airportdb/@.manifest.json
Tutti i set... fare clic su Crea!
Questa volta verrà visualizzato un esagono giallo, che alla fine diventerà verde e il sistema DB sarà attivo e in esecuzione. Fai un po 'di tè o prendi un bicchiere d'acqua, hai fatto molto.
La comoda Cloud Shell consente di connettersi alla shell MySQL e MySQL. Si tratta di un piccolo terminale Linux integrato nel dashboard OCI (ed è adorabile). Nell'angolo in alto a destra, fare clic sull'icona del prompt di Cloud Shell e verrà aperta una riga di comando nella parte inferiore del browser. Assicurarsi di configurare l'impostazione della rete privata per la cloud shell, selezionando la VCN creata in precedenza.
La cosa interessante è che MySQL Shell è già installato!
Una volta creato il nostro sistema DB compatibile con HeatWave, ci connetteremo ad esso utilizzando la shell MySQL.
mysqlsh --host -u -p
È possibile ulteriori informazioni sulla shell MySQL.
Ulteriori informazioni sulla connessione dei sistemi di database.
Se hai scelto di importare i dati durante la creazione delle risorse utilizzando l'opzione PAR, puoi saltare questo passo. In caso contrario, puoi continuare qui per importare AirportDB (PDF).
In Cloud Shell:
wget https://downloads.mysql.com/docs/airport-db.tar.gz
tar xvzf airport-db.tar.gz
Viene creata una singola directory denominata airport-db, che contiene i file di dati.
Avviare la shell MySQL e connettersi all'endpoint del sistema DB MySQL:
mysqlsh _Username@DBSystem_IP_Address_or_host_Name
Quando richiesto, immettere la password di amministratore specificata in precedenza. Una volta connesso, si utilizzerà l'utilità di caricamento del dump per importare i dati.
MySQL>JS> util.loadDump("airport-db", {threads: 16, deferTableIndexes: "all", ignoreVersion: true})
L'importazione dovrebbe richiedere alcuni minuti, quindi sei pronto per andare avanti!
HeatWave è davvero progettato per i set di Big Data, che richiedono un'analisi rapida, quindi anche se sto importando un semplice database di esempio, puoi caricare quanto vuoi (a condizione che tu abbia allocato lo storage per esso). Inoltre, le query possono essere eseguite nel cluster senza scaricare in un database separato. La creazione del cluster potrebbe richiedere alcuni minuti.
Per iniziare, andare al sistema DB nella console OCI: Database > Sistemi DB > e fare clic sul sistema DB creato di recente.
In Risorse, verrà visualizzato HeatWave (tra gli altri elementi utili), fare clic su di esso.
Naturalmente, si desidera aggiungere il cluster HeatWave (utilizzando il pulsante a destra, a metà della pagina) oppure fare clic sul menu Altre azioni in alto e selezionare Aggiungi cluster Heatwave. Accettare le impostazioni predefinite (16 core CPU con 512 GB di RAM e 1 nodo), quindi fare clic sul pulsante Aggiungi cluster HeatWave.
Questo richiede alcuni minuti in modo da poter riscaldare la bevanda mentre il cluster gira.
Infine, la parte divertente! Una volta eseguito il 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);
Ora, vediamo quanto tempo ci vorrebbe per usare il sistema DB MySQL "plain vanilla". A tale scopo, disabilitare la variabile use_secondary_engine
Quello che abbiamo fatto finora, tutto su OCI, è impostare una rete cloud virtuale con porte per l'uso di MySQL, impostare un database MySQL e aggiungere un cluster HeatWave. Abbiamo quindi importato alcuni dati di test ed eseguito un paio di query per vedere la velocità di HeatWave rispetto al sistema DB in autonomia.
Vorresti saperne di più? Partecipa alla discussione sul nostro canale Slack pubblico.