Utilizzo di Google Cloud SQL

Google recentemente annunciato Abbiamo deciso di provare la nuova generazione di servizi MySQL gestiti offerti su Cloud SQL, e volevamo creare un database SQL basato su cloud che potessimo poi utilizzare come backend per le applicazioni mobile, o addirittura per analisi avanzate dei dati direttamente dal nostro computer.

Secondo Google, i due obiettivi principali della seconda generazione di Cloud SQL erano una maggiore performance e scalabilità per ogni dollaro investito. Sembra che abbiano raggiunto questi obiettivi: la seconda generazione di Cloud SQL è più di sette volte più veloce della prima. Inoltre, può gestire fino a 10 TB di dati, 15.000 operazioni di input/output al secondo (IOPS) e 104 GB di RAM per istanza, superando di gran lunga le capacità della prima generazione. Pertanto, sembra essere la soluzione ideale, scalabile e basata su cloud, per il backend di database delle applicazioni mobile.

If you follow the instructions on the the [Google blog post](http://googlecloudplatform.blogspot.com/2015/12/the-next-generation-of-managed-MySQL-offerings-on-Cloud-SQL.html), you will first have to create a trial account for Google Cloud. Then, once you are logged into the Google Developer Console, click on the top-left menu button and select SQL under the storage section. This will enable you to create a new second generation Cloud SQL instance:

È altamente consigliabile modificare la password di root e consentire l'accesso alla vostra istanza cloud solo dalle reti autorizzate che ospiteranno i vostri ambienti di sviluppo o i server di backend per l'applicazione mobile che state sviluppando. Ad esempio, in un futuro articolo del blog, esploreremo la creazione di un'applicazione mobile basata su questo database, e il server di backend MobileTogether che fornirà tutte le funzionalità e i processi di lavoro per la nostra applicazione mobile dovrà essere in grado di accedere a questa istanza Cloud SQL.

Per utilizzare l'istanza Cloud SQL dal vostro computer da sviluppo, dovrete scaricare gli strumenti MySQL adatti al vostro sistema, che vi permetteranno di utilizzare lo strumento da riga di comando mysql. Inoltre, per utilizzare il database Cloud SQL da altre applicazioni sul vostro computer, dovrete scaricare i rispettivi connettori MySQL. In questo articolo del blog, utilizzeremo Altova DatabaseSpy per accedere all'istanza SQL, caricare alcuni dati e quindi eseguire alcune analisi, quindi dovrete scaricare il connettore MySQL/ODBC per Windows. In sostanza, DatabaseSpy è simile a Toad, ma consente di connettersi a più istanze di database diverse su server di database diversi contemporaneamente. In questo modo, potete avere una connessione aperta a Cloud SQL, una connessione a un server SQL Server locale e una terza connessione a un database Oracle, il tutto all'interno di un unico ambiente di lavoro. È davvero utile.

Un'importante precisazione: è fondamentale assicurarsi di scaricare il driver Connector/ODBC corretto. Se state utilizzando la versione a 64 bit di DatabaseSpy, dovrete anche scaricare la versione a 64 bit del driver MySQL Connector/ODBC. In alternativa, è possibile scaricare sia la versione a 32 bit che quella a 64 bit di Connector/ODBC e installarle entrambe: in questo modo, potrete utilizzare Cloud SQL sia con software a 32 bit che a 64 bit sul vostro sistema.

Per popolare la nostra istanza Cloud SQL con alcuni dati utili per la sperimentazione e l'analisi successiva, abbiamo scaricato l'ottimo Il database di baseball di Lahman, che è disponibile in modo pratico come un file MySQL compresso. Dopo averlo scaricato sul nostro computer, abbiamo ottenuto una descrizione completa delle tabelle del database SQL, insieme a tutti i dati, il tutto contenuto in un unico file SQL, il che ne facilita il caricamento nella nostra istanza Cloud SQL.

Il primo passo è creare un nuovo database all'interno della vostra istanza Cloud SQL Potete farlo utilizzando l'utility da riga di comando mysql, tramite la Google Cloud Console, oppure tramite cURL. Per maggiori dettagli, consultate il link all'inizio di questo paragrafo. Chiameremo semplicemente questo database "lahman".

Ora possiamo connetterci a questo database da DatabaseSpy selezionando il comando "Connetti a un database" e seguendo questi passaggi tramite la procedura guidata di connessione. Innanzitutto, selezioniamo MySQL come tecnologia del database:

Successivamente, verifichiamo l'utilizzo del driver MySQL Connector/ODBC che abbiamo scaricato in precedenza:

Infine, ma non meno importante, specifichiamo l'indirizzo IP, il nome utente e la password della nostra istanza Cloud SQL, quindi premiamo il pulsante "Verifica" per controllare la connessione. Se la connessione funziona, possiamo ora creare una sorgente dati, assegnandole un nome, e specificando anche il database "lahman" che abbiamo creato in precedenza

Ora siamo pronti a caricare tutti i dati nelle tabelle del nostro nuovo database. Per farlo, apriamo semplicemente il file SQL di esportazione del database Lahman Baseball che abbiamo precedentemente scaricato e decompresso, che in DatabaseSpy appare così:

Come potete vedere, il dump SQL di quel database contiene tutti i comandi necessari per ricreare tutte le tabelle sulla nostra nuova istanza Cloud SQL. Quindi, tutto ciò che dobbiamo fare ora è premere il pulsante "Esegui" e aspettare. A seconda della velocità della vostra connessione internet, questo potrebbe richiedere un po' di tempo, poiché state creando 24 tabelle contenenti statistiche dettagliate sul baseball dal 1871 al 2014, alcune delle quali contengono oltre 160.000 righe. Nel mio caso, l'operazione ha richiesto circa 8 minuti per essere completata.

Ora potete cliccare su "Aggiorna" nel browser del database online in DatabaseSpy e quindi esplorare tutte le tabelle e i dati contenuti al loro interno, nonché la struttura del database Lahman. Potete utilizzare questo database per calcolare dati storici interessanti, effettuare analisi statistiche e applicare altri strumenti spesso utilizzati nella sabermetrica per comprendere meglio la qualità dei giocatori.

Ad esempio, analizzeremo la percentuale di fuoricampo (HR) realizzati da David Ortiz per ogni presenza al battitore (AB) durante tutta la sua carriera, e rappresenteremo questo dato in funzione della sua età. Potrete trovare le statistiche di un giocatore, come il numero di presenze al battitore, nella tabella "Batting", e il suo nome, data di nascita, ecc., nella tabella "Master". È facile unire le due tabelle utilizzando SQL e selezionare i dati relativi a David Ortiz. A quel punto, possiamo calcolare la sua traiettoria di fuoricampo durante la carriera semplicemente dividendo il numero di fuoricampo per il numero di presenze al battitore (HR/AB) e rappresentare questo valore in grafico in relazione alla sua età in un determinato anno:

SELECT yearID-birthYear AS Age, HR/AB AS CareerHRTrajectory FROM Batting, `Master` 
WHERE Batting.playerID = `Master`.playerID AND nameLast='Ortiz' AND nameFirst='David'
ORDER BY Age ASC

Una volta premuto il pulsante "Esegui", questa query viene inviata all'istanza Cloud SQL e i dati risultanti vengono restituiti quasi istantaneamente sotto forma di tabella. A questo punto, è possibile premere il pulsante "Grafico" nella visualizzazione della tabella dei risultati per visualizzare i dati in forma grafica e tracciare l'andamento della carriera in termini di risorse umane in relazione all'età:

Come potete vedere, è molto semplice connettersi e utilizzare le nuove istanze di Google Cloud SQL da Altova DatabaseSpy, o, più in generale, da qualsiasi altro strumento di sviluppo Altova, tra cui XMLSpy, MapForce, MobileTogether, StyleVision e UModel. Inoltre, è possibile utilizzare facilmente le istanze di Cloud SQL da MapForce Server per progetti di integrazione e conversione dei dati.

In un futuro articolo del blog, mostreremo come connetterci a questa istanza di Cloud SQL da un'applicazione mobile e analizzeremo quanto sia semplice creare un'interfaccia utente mobile intuitiva basata sul database di baseball Lahman.