Het gebruik van Google Cloud SQL

Google recentelijk aangekondigd We wilden graag de volgende generatie beheerde MySQL-oplossingen op Cloud SQL uitproberen en een SQL-database in de cloud creëren, die we vervolgens konden gebruiken als de backend voor mobiele apps, of zelfs voor geavanceerde data-analyse vanaf onze desktop.

Volgens Google waren de twee belangrijkste doelen van de tweede generatie Cloud SQL betere prestaties en schaalbaarheid per euro. Het lijkt erop dat ze deze doelen hebben bereikt: de tweede generatie Cloud SQL is meer dan zeven keer sneller dan de eerste. En het kan worden opgeschaald tot 10 TB aan data, 15.000 IOPS en 104 GB aan RAM per instance – aanzienlijk meer dan de eerste generatie. Het lijkt dus een ideale, schaalbare cloud-gebaseerde databasebackend voor mobiele apps.

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:

Het wordt ten zeerste aanbevolen om uw root-wachtwoord te wijzigen en om alleen toegang tot uw cloud-instantie toe te staan vanaf geautoriseerde netwerken die uw ontwikkelmachines of uw backend-servers voor de mobiele app die u ontwikkelt, hosten. Zo zullen we in een toekomstige blogpost bijvoorbeeld kijken naar het bouwen van een mobiele app bovenop deze database, en de MobileTogether backend-server die alle serverfunctionaliteit en workflows voor onze mobiele app zal leveren, toegang moeten hebben tot deze Cloud SQL-instantie.

Om de Cloud SQL-instantie vanaf uw ontwikkelmachine te gebruiken, moet u de MySQL-tools voor uw machine downloaden. Dit stelt u in staat om de mysql-opdrachtregeltool te gebruiken. Om de Cloud SQL-database vanuit andere applicaties op uw computer te gebruiken, moet u ook de bijbehorende MySQL-connectoren downloaden. In dit blogbericht gebruiken we Altova DatabaseSpy om toegang te krijgen tot de SQL-instantie, gegevens te uploaden en vervolgens analyses uit te voeren. Daarom wilt u de MySQL Connector/ODBC voor Windows downloaden. Kort gezegd is DatabaseSpy vergelijkbaar met Toad, maar het stelt u in staat om tegelijkertijd verbinding te maken met meerdere verschillende database-instanties op verschillende databaseservers. U kunt dus één verbinding open hebben naar Cloud SQL, een verbinding naar een lokale SQL Server en een derde verbinding naar een Oracle-database, allemaal binnen dezelfde werkomgeving. Erg handig.

Let op: zorg ervoor dat u de juiste Connector/ODBC-driver downloadt. Als u de 64-bits versie van DatabaseSpy gebruikt, heeft u ook de 64-bits versie van de MySQL Connector/ODBC-driver nodig. Of, nog beter, u kunt zowel de 32-bits als de 64-bits versies van Connector/ODBC downloaden en beide installeren. Op die manier kunt u Cloud SQL gebruiken vanaf zowel 32-bits als 64-bits software op uw computer.

Om onze Cloud SQL-instantie te voorzien van nuttige gegevens voor experimenten en verdere analyses, hebben we de uitstekende Lahman's Baseball Database gedownload. Deze database is handig beschikbaar als een gecomprimeerd MySQL-dumpbestand. Nadat we dit op onze computer hadden gedownload, hadden we een complete beschrijving van de SQL-databasetabellen, plus alle gegevens – allemaal in één SQL-bestand, waardoor het gemakkelijk kan worden geüpload naar onze Cloud SQL-instantie.

De eerste stap is om een nieuwe database aan te maken in uw Cloud SQL-instantie U kunt dit doen via de opdrachtregeltool mysql, via de Google Developer Console, of via cURL. Zie de link aan het begin van dit paragraaf voor meer details. We noemen deze database eenvoudigweg "lahman".

Nu kunnen we verbinding maken met deze database via DatabaseSpy. Selecteer hiervoor het commando "Verbinding maken met een database" en volg de stappen in de verbindingswizard. Allereerst selecteren we MySQL als het databasetype:

Vervolgens bevestigen we het gebruik van de MySQL Connector/ODBC-driver die we eerder hebben gedownload:

En als laatste, maar zeker niet minder belangrijk, specificeren we het IP-adres, de gebruikersnaam en het wachtwoord van onze Cloud SQL-instantie, en drukken we vervolgens op de knop "Testen" om de verbinding te controleren. Als dat goed werkt, kunnen we nu een databron aanmaken door deze een naam te geven, en ook de database "lahman" specificeren die we eerder hebben aangemaakt:

Nu zijn we klaar om alle gegevens in tabellen in onze nieuwe database te importeren. Daarvoor openen we eenvoudigweg het SQL-dumpbestand van de Lahman Baseball Database, dat we eerder hebben gedownload en uitgepakt. Dit ziet er in DatabaseSpy als volgt uit:

Zoals u kunt zien, bevat de SQL-dump van die database alle benodigde commando's om alle tabellen op onze nieuwe Cloud SQL-instantie opnieuw te creëren. Dus alles wat we nu hoeven te doen is op de knop "Uitvoeren" te klikken en af te wachten. Afhankelijk van de snelheid van uw internetverbinding, kan dit even duren, omdat u nu 24 tabellen aanmaakt met zeer gedetailleerde honkbalstatistieken van 1871 tot 2014 – waarvan sommige meer dan 160.000 rijen bevatten. In mijn geval duurde het ongeveer 8 minuten om het proces te voltooien.

Nu kunt u op "Vernieuwen" klikken in uw online databasebrowser in DatabaseSpy en vervolgens alle tabellen en de daarin opgenomen gegevens verkennen, evenals de structuur van de Lahman-database. U kunt deze database gebruiken om interessante historische gegevens te berekenen, statistische analyses uit te voeren en andere tools toe te passen die vaak worden gebruikt in Sabermetrics om de kwaliteit van spelers beter te begrijpen.

Als voorbeeld bekijken we het percentage homeruns (HR) dat David Ortiz heeft geslagen per slagbeurt (AB) gedurende zijn hele carrière, en we zullen dit grafisch weergeven als een functie van zijn leeftijd. U kunt de prestaties van een speler op het gebied van slaan vinden in de tabel "Batting" en zijn naam, geboortedatum, enz., in de tabel "Master". Het koppelen van de twee tabellen in SQL en het selecteren van de gegevens voor David Ortiz is eenvoudig, en we kunnen vervolgens zijn carrière-homerun-trend berekenen als HR/AB en dit grafisch weergeven in relatie tot zijn leeftijd in een bepaald jaar:

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

Zodra u op "Uitvoeren" klikt, wordt deze query naar de Cloud SQL-instantie verzonden en de resulterende gegevens worden vrijwel onmiddellijk als een tabel geretourneerd. Vervolgens kunt u op de knop "Grafiek" in de weergave van de resultaatstabel klikken om de gegevens grafisch weer te geven en de carrièreontwikkeling in relatie tot de leeftijd weer te geven

Zoals u kunt zien, is het zeer eenvoudig om verbinding te maken met en gebruik te maken van de nieuwe Google Cloud SQL-instanties vanuit Altova DatabaseSpy, of, om precies te zijn, vanuit elk van de andere Altova-ontwikkelaarstools, waaronder XMLSpy, MapForce, MobileTogether, StyleVision en UModel. Bovendien kunt u eenvoudig Cloud SQL-instanties vanuit MapForce Server gebruiken voor projecten op het gebied van data-integratie en -conversie.

In een toekomstige blogpost zullen we verbinding maken met deze Cloud SQL-instantie vanuit een mobiele app en onderzoeken hoe eenvoudig het is om een gebruiksvriendelijke mobiele app-interface te bouwen bovenop de Lahman-honkbaldatabase.