Die Verwendung von Google Cloud SQL

Google kürzlich angekündigt Wir wollten die nächste Generation unserer verwalteten MySQL-Angebote auf Cloud SQL testen und eine SQL-Datenbank in der Cloud erstellen, die wir dann als Backend für mobile Anwendungen nutzen könnten, oder sogar für fortgeschrittene Datenanalysen direkt von unserem Desktop-Computer.

Laut Google waren die beiden Hauptziele der zweiten Generation von Cloud SQL eine bessere Leistung und Skalierbarkeit pro Dollar. Es scheint, dass sie diese Ziele erreicht haben: Die zweite Generation von Cloud SQL ist mehr als siebenmal schneller als die erste. Außerdem kann sie auf 10 TB Daten, 15.000 IOPS und 104 GB RAM pro Instanz skaliert werden – weit mehr als die erste Generation. Daher scheint sie wie ein ideales, skalierbares, cloudbasiertes Datenbank-Backend für mobile Anwendungen.

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:

Es wird dringend empfohlen, Ihr Root-Passwort zu ändern und den Zugriff auf Ihre Cloud-Instanz nur von autorisierten Netzwerken zu erlauben, die Ihre Entwicklungsumgebungen oder Ihre Backend-Server für die mobile App hosten, an der Sie arbeiten. Beispielsweise werden wir in einem zukünftigen Blogbeitrag die Entwicklung einer mobilen App unter Verwendung dieser Datenbank untersuchen, und der MobileTogether-Backend-Server, der alle Serverfunktionen und Arbeitsabläufe für unsere mobile App bereitstellen wird, muss in der Lage sein, auf diese Cloud SQL-Instanz zuzugreifen.

Um die Cloud SQL-Instanz von Ihrem Entwicklungsrechner aus nutzen zu können, müssen Sie zunächst die MySQL-Tools für Ihr System herunterladen. Diese ermöglichen Ihnen die Verwendung des mysql-Befehlszeilenwerkzeugs. Um die Cloud SQL-Datenbank von anderen Anwendungen auf Ihrem Computer aus zu nutzen, müssen Sie außerdem die entsprechenden MySQL-Konnektoren herunterladen. In diesem Blogbeitrag verwenden wir Altova DatabaseSpy, um auf die SQL-Instanz zuzugreifen, Daten hochzuladen und anschließend einige Analysen durchzuführen. Daher sollten Sie den MySQL Connector/ODBC für Windows herunterladen. Im Wesentlichen ähnelt DatabaseSpy dem Programm Toad, ermöglicht es Ihnen aber, gleichzeitig Verbindungen zu mehreren verschiedenen Datenbankinstanzen auf unterschiedlichen Datenbankservern herzustellen. So können Sie eine Verbindung zu Cloud SQL, eine Verbindung zu einem lokalen SQL Server und eine dritte Verbindung zu einer Oracle-Datenbank gleichzeitig nutzen – alles innerhalb eines einzigen Arbeitsbereichs. Das ist sehr praktisch.

Wichtig: Stellen Sie sicher, dass Sie den richtigen Connector/ODBC-Treiber herunterladen. Wenn Sie die 64-Bit-Version von DatabaseSpy verwenden, benötigen Sie auch die 64-Bit-Version des MySQL Connector/ODBC-Treibers. Oder, noch besser, Sie können sowohl die 32-Bit- als auch die 64-Bit-Version von Connector/ODBC herunterladen und beide installieren. Dann können Sie Cloud SQL sowohl von 32-Bit- als auch von 64-Bit-Software auf Ihrem Computer nutzen.

Um unsere Cloud SQL-Instanz mit nützlichen Daten für Experimente und weitere Analysen zu füllen, haben wir die hervorragende Lahman's Baseball Database heruntergeladen, die zum Glück als komprimierte MySQL-Datei verfügbar ist. Nachdem wir diese Datei auf unseren Computer heruntergeladen hatten, verfügten wir über eine vollständige Beschreibung aller SQL-Datenbanktabellen sowie alle Daten – alles in einer einzigen SQL-Datei, sodass sie problemlos in unsere Cloud SQL-Instanz hochgeladen werden kann.

Der erste Schritt besteht darin, eine neue Datenbank in Ihrer Cloud SQL-Instanz zu erstellen Dies können Sie entweder über die Kommandozeilenanwendung mysql, über die Google Developer Console oder über cURL tun – weitere Details finden Sie im Link am Anfang dieses Absatzes. Wir werden diese Datenbank einfach "lahman" nennen.

Jetzt können wir uns mit dieser Datenbank über DatabaseSpy verbinden, indem wir den Befehl "Mit einer Datenbank verbinden" auswählen und die folgenden Schritte im Verbindungsassistenten durchführen. Zunächst wählen wir MySQL als Datenbanktechnologie aus:

Anschließend bestätigen wir die Verwendung des MySQL Connector/ODBC-Treibers, den wir zuvor heruntergeladen haben:

Und schließlich, aber nicht zuletzt, geben wir die IP-Adresse, den Benutzernamen und das Passwort unserer Cloud SQL-Instanz an und klicken dann auf die Schaltfläche "Testen", um die Verbindung zu überprüfen. Wenn das funktioniert, können wir nun eine Datenquelle erstellen, indem wir ihr einen Namen geben und auch die zuvor erstellte Datenbank "lahman" angeben:

Jetzt sind wir bereit, alle Daten in Tabellen in unserer neuen Datenbank zu importieren. Dazu öffnen wir einfach die SQL-Dump-Datei der Lahman Baseball Database, die wir zuvor heruntergeladen und entpackt haben. Diese sieht in DatabaseSpy wie folgt aus:

Wie Sie sehen können, enthält der SQL-Dump dieser Datenbank alle notwendigen Befehle, um alle Tabellen in unserer neuen Cloud SQL-Instanz neu zu erstellen. Wir müssen jetzt nur noch auf den "Ausführen"-Button klicken und warten. Je nach Geschwindigkeit Ihrer Internetverbindung kann dies eine Weile dauern, da Sie gerade 24 Tabellen mit sehr detaillierten Baseball-Statistiken von 1871 bis 2014 erstellen – von denen einige über 160.000 Zeilen enthalten. In meinem Fall hat es etwa 8 Minuten gedauert, bis der Vorgang abgeschlossen war.

Jetzt können Sie im Online-Datenbankbrowser von DatabaseSpy auf "Aktualisieren" klicken und anschließend alle Tabellen sowie die darin enthaltenen Daten und die Struktur der Lahman-Datenbank erkunden. Sie können diese Datenbank nutzen, um interessante historische Daten zu berechnen, statistische Analysen durchzuführen und andere Werkzeuge einzusetzen, die häufig in der Sabermetrie verwendet werden, um die Qualität der Spieler besser zu verstehen.

Als Beispiel werden wir uns die prozentuale Anzahl der Home Runs (HR), die David Ortiz im Laufe seiner gesamten Karriere pro Schlagversuch (AB) erzielt hat, ansehen und diese als Funktion seines Alters darstellen. Sie finden die Schlagleistung eines Spielers in der Tabelle "Batting" und seinen Namen, Geburtsdatum usw. in der Tabelle "Master". Das Verknüpfen der beiden Tabellen in SQL und die Auswahl der Daten für David Ortiz ist einfach. Wir können dann seine Karriere-Home-Run-Entwicklung einfach als HR/AB berechnen und diese gegen sein Alter in einem bestimmten Jahr darstellen:

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

Sobald Sie auf "Ausführen" klicken, wird diese Abfrage an die Cloud SQL-Instanz gesendet und die resultierenden Daten werden fast augenblicklich als Tabelle zurückgegeben. Sie können dann auf die Schaltfläche "Diagramm" in der Ansicht der Ergebnistabelle klicken, um die Daten grafisch darzustellen und die Karriereentwicklung im Personalwesen im Verhältnis zum Alter darzustellen

Wie Sie sehen können, ist es sehr einfach, sich mit den neuen Google Cloud SQL-Instanzen zu verbinden und diese von Altova DatabaseSpy oder, allgemeiner gesagt, von allen anderen Altova-Entwicklungstools zu nutzen, darunter XMLSpy, MapForce, MobileTogether, StyleVision und UModel. Darüber hinaus können Sie Cloud SQL-Instanzen problemlos von MapForce Server für Projekte zur Datenintegration und -konvertierung nutzen.

In einem zukünftigen Blogbeitrag werden wir uns mit dieser Cloud SQL-Instanz von einer mobilen App verbinden und untersuchen, wie einfach es ist, eine benutzerfreundliche mobile App-Schnittstelle auf Basis der Lahman-Baseball-Datenbank zu erstellen.