IBM Cloud Docs
SQL-Datenbank für Clouddaten

SQL-Datenbank für Clouddaten

Für dieses Lernprogramm können Kosten anfallen. Mit dem Kostenschätzer können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung generieren.

Dieses Lernprogramm zeigt, wie ein (relationaler) SQL-Datenbankservice bereitgestellt wird. Als Administrator erstellen Sie eine Tabelle und laden ein großes Dataset (Stadtinformationen) in die Datenbank. Anschließend stellen Sie eine Webanwendung "worldcities" in IBM Cloud® Code Enginebereit. Die App ermöglicht regulären Benutzern, Datensätze in der Clouddatenbank zu suchen. Die App wurde in Python unter Verwendung des Flask-Frameworks geschrieben.

des

Ziele

  • SQL-Datenbank bereitstellen
  • Datenbankschema (Tabelle) erstellen und Daten laden
  • Vordefinierte containerisierte App in Code Engine bereitstellen
  • App und Datenbankservice verbinden (Berechtigungsnachweise gemeinsam nutzen)
  • Überwachung, Sicherheit, Sicherung und Wiederherstellung von Clouddatenbanken

Vorbereitende Schritte

Für dieses Lernprogramm ist Folgendes erforderlich:

  • IBM Cloud-CLI mit dem Plug-in Code Engine,
  • git um das Quellcode-Repository zu klonen.

Um die Installation dieser Tools zu vermeiden, können Sie Cloud Shell von IBM Cloud verwenden.

Anweisungen zum Herunterladen und Installieren dieser Tools für Ihre Betriebsumgebung finden Sie in der Anleitung zur Einführung in die Lernprogramme.

  1. Klonen Sie das Github-Repository für dieses Lernprogramm und wechseln Sie in das zugehörige Verzeichnis. Führen Sie die folgenden Zeilen in einem Terminal aus:
    git clone https://github.com/IBM-Cloud/cloud-sql-database.git
    cd cloud-sql-database
    
  2. Rufen Sie GeoNames auf und laden Sie die Datei cities1000.zipherunter und extrahieren Sie sie. Sie enthält Informationen zu Städten, die mehr als 1000 Einwohner haben. Diese Datei wird im Folgenden als Dataset verwendet.

SQL-Datenbank bereitstellen

Erstellen Sie zunächst eine Instanz des IBM Db2 Warehouse SaaS.

  1. Besuchen Sie die Konsole IBM Cloud®. Klicken Sie in der oberen Navigationsleiste auf Katalog.
  2. Klicken Sie auf Datenbanken im linken Fensterbereich und wählen Sie Db2 Warehouse aus.
  3. Wählen Sie den Plan Flex One aus und ändern Sie den vorgeschlagenen Servicenamen in sqldatabase. (Dieser Name wird später verwendet). Wählen Sie eine Ressourcengruppe und eine Position für die Implementierung der Datenbank aus.
  4. Klicken Sie auf Erstellen. Die Bereitstellung wird gestartet.
  5. Suchen Sie in der Ressourcenliste die neue Instanz unter "Datenbanken" und warten Sie, bis sie verfügbar ist (manchmal müssen Sie die Seite aktualisieren). Klicken Sie auf den Eintrag für Ihren IBM Db2 Warehouse SaaS-Service.
  6. Klicken Sie auf Konsole öffnen, um die Datenbankkonsole zu starten.

Tabelle erstellen

Sie benötigen eine Tabelle für die Beispieldaten. Erstellen Sie diese Tabelle mithilfe der Konsole.

  1. Klicken Sie in der Konsole für IBM Db2 Warehouse SaaS auf das Menüsymbol oben links und dann in der Navigationsleiste auf "SQL ausführen ".
  2. Klicken Sie auf das Symbol + (Neues Script hinzufügen) neben der Registerkarte Unbenannt-1.
  3. Klicken Sie auf Aus Datei und wählen Sie die Datei cityschema.txt im GitHub-Repository aus, die zuvor in Ihr lokales Verzeichnis geklont wurde, und öffnen Sie sie.
  4. Klicken Sie auf Alle ausführen, um die Anweisung auszuführen. Sie sollten eine Nachricht über die erfolgreiche Ausführung erhalten.

Daten laden

Als Nächstes laden Sie Daten in die neu erstellte Tabelle 'cities'. Dies kann auf verschiedene Weise erfolgen, z. B. von Ihrem lokalen Gerät oder von einem Cloud-Objektspeicher (COS) oder Amazon S3 Schnittstelle. Im vorliegenden Lernprogramm laden Sie Daten aus Ihrer Maschine hoch. Während dieses Vorgangs passen Sie die Tabellenstruktur und das Datenformat an den Inhalt der Datei an.

  1. Klicken Sie in der Konsole für IBM Db2 Warehouse SaaS auf das Menüsymbol oben links und anschließend in der Navigationsleiste auf Daten.

  2. Behalten Sie als Quelle die Auswahl unter Arbeitsplatz bei.

  3. Klicken Sie unter "Dateiauswahl" auf "Datei hierher ziehen" oder "Dateien durchsuchen ", um die Datei cities1000.txt zu suchen und auszuwählen, die Sie im ersten Abschnitt dieses Leitfadens heruntergeladen haben.

  4. Klicken Sie auf Weiter, um zur Übersicht Ziel mit einem Schema zu gelangen. Wählen Sie das Schema BLUADMIN und dann die Tabelle CITIES. Klicken Sie erneut auf Weiter.

    Da die Tabelle leer ist, spielt es keine Rolle, ob neue Daten angehängt oder vorhandene Daten überschrieben werden.

  5. Passen Sie nun an, wie die Daten aus der Datei 'cities1000.txt' beim Ladeprozess interpretiert werden. Inaktivieren Sie zuerst Header in first row (Header in erster Zeile), da die Datei nur Daten enthält.

  6. Geben Sie anschließend 0x09 als Separator ein. Dies bedeutet, dass Werte in der Datei durch Tabulatorzeichen begrenzt werden.

  7. Wählen Sie schließlich 'JJJJ-MM-TT' als Datumsformat aus. Jetzt sollte alles so aussehen wie in diesem Screenshot.

    Screenshot mit den Stichprobendaten
    Screenshot mit den Stichprobendaten

  8. Klicken Sie auf Weiter. Daraufhin wird angeboten, die Ladeeinstellungen zu überprüfen. Stimmen Sie zu und klicken Sie auf Begin Load (Laden starten), um mit dem Laden der Daten in die Tabelle CITIES (STÄDTE) zu beginnen. Der Fortschritt des Ladevorgangs wird angezeigt. Nach dem Hochladen der Daten müssten schon nach wenigen Sekunden verschiedene Statistiken angezeigt werden.

  9. Klicken Sie auf Tabelle anzeigen, um die Daten anzuzeigen. Sie können nach unten blättern oder auf die Spaltennamen klicken, um die Sortierreihenfolge zu ändern.

Geladene Daten mit SQL überprüfen

Die Daten wurden in die relationale Datenbank geladen. Obwohl keine Fehler gemeldet wurden, sollten Sie einige Schnelltests durchführen. Geben Sie im integrierten SQL-Editor verschiedene SQL-Anweisungen ein und führen Sie diese aus.

  1. Klicken Sie in der linken Navigation auf "SQL ausführen ", um zum SQL-Editor zurückzukehren. Klicken Sie auf das Pluszeichen + (Neues Script hinzufügen) und auf Neu erstellen, um eine neue Editorregisterkarte zu erstellen.

    Anstelle des integrierten SQL-Editors können Sie cloudbasierte und konventionelle SQL-Tools auf Ihrem Desktop oder Ihrer Servermaschine mit IBM Db2 Warehouse SaaS verwenden. Die Verbindungsinformationen finden Sie im Menü Administration im linken Navigationsbereich.

  2. Geben Sie im Editor die folgende Abfrage ein oder kopieren Sie die Abfrage in den Editor:

    select count(*) from cities;
    

    Wählen Sie den Text der Abfrage und anschließend in der Dropdown-Liste neben Alle ausführen die Option Ausgewählte ausführen aus. Im Abschnitt mit den Ergebnissen sollte die gleiche Anzahl an Zeilen angezeigt werden, wie vom Ladevorgang gemeldet.

  3. Geben Sie im SQL-Editor die folgende Anweisung in eine neue Zeile ein:

    select countrycode, count(name) from cities
    group by countrycode
    order by 2 desc;
    

    Markieren Sie den Text der obigen Anweisung und klicken Sie auf die Schaltfläche Ausgewählte ausführen. Nur diese Anweisung wird ausgeführt und gibt im Ergebnisbereich einige Statistiken nach Ländern zurück.

  4. Führen Sie schließlich die folgende Anweisung ähnlich aus, um Details zu San Francisco in Kalifornien abzurufen:

    select * from cities
    where name='San Francisco'
    and countrycode='US';
    

Anwendungscode bereitstellen

Wechseln Sie zurück zum Terminal. Jetzt werden Sie den Anwendungscode mit einem vordefinierten Container-Image bereitstellen. Sie können den Anwendungscode ändern und das Container-Image selbst erstellen. Weitere Informationen finden Sie in den Anweisungen im GitHub-Repository.

  1. Wenn Sie nicht angemeldet sind, verwenden Sie ibmcloud login oder ibmcloud login --sso, um sich interaktiv anzumelden. Legen Sie die Region und die Ressourcengruppe fest, in der die Datenbank bereitgestellt wurde. Ersetzen Sie RESOURCE_GROUP und REGION entsprechend.

    ibmcloud target -g RESOURCE_GROUP -r REGION
    
  2. Erstellen Sie ein neues Code Engine-Projekt mit dem Namen sqldatabase:

    ibmcloud ce project create --name sqldatabase
    

    Wählen Sie das neue Projekt als aktives Projekt aus:

    ibmcloud ce project select --name sqldatabase
    
  3. Dann stellen Sie die App bereit und nennen Sie sie "Worldcities ".

    ibmcloud ce app create --name worldcities --image icr.io/solution-tutorials/tutorial-cloud-sql-database:latest --min-scale 1
    
  4. Zuletzt erstellen Sie eine Servicebindung zwischen der vorhandenen IBM Db2 Warehouse SaaS-Datenbank und der App:

    ibmcloud ce application bind --name worldcities --service-instance sqldatabase
    

    Nach der Erstellung der Bindung wird eine neue App-Revision gestartet.

  5. Jetzt können Sie die App-Details auf ihren Status überprüfen und ihre URL abrufen:

    ibmcloud ce app get --name worldcities
    

    Suchen Sie in der Ausgabe nach der Zeile, die mit URL beginnt. Die angezeigte URL sollte ein Muster wie https://worldcities.unique-subdomain.region.codeengine.appdomain.cloud haben. Klicken Sie auf den Link, um auf die App zuzugreifen. Eine weitere Möglichkeit, App-Details abzurufen, ist der Besuch Code Engine.

Sicherheit, Backup & Wiederherstellung, Monitoring

IBM Db2 Warehouse SaaS ist ein verwalteter Service. IBM ist für den Schutz der Umgebung sowie für tägliche Backups und die Systemüberwachung zuständig. Wenn Sie einen der Unternehmenspläne verwenden, gibt es mehrere Optionen für die Zugriffsverwaltung und für die Konfiguration der erweiterten Datenverschlüsselung.

Zusätzlich zu den traditionellen Verwaltungsoptionen bietet der Service IBM Db2 Warehouse SaaS auch eine REST-API für Überwachung, Benutzerverwaltung, Dienstprogramme, Laden, Speicherzugriff und mehr.

App testen

Die App zum Anzeigen von Städteinformationen aus dem geladenen Dataset ist auf ein Minimum reduziert. Sie bietet ein Suchformular zur Angabe eines Städtenamens - bei Namen muss die Groß-/Kleinschreibung beachtet werden - und einige vorkonfigurierte Städte. Diese Werte werden entweder in /search?name=cityname (Suchformular) oder in /city/cityname (direkt angegebene Städte) umgesetzt. Beide Anforderungen werden aus denselben Codezeilen im Hintergrund bedient. Die cityname wird aus Sicherheitsgründen als Wert an eine vorbereitete SQL-Anweisung übergeben, wobei ein Parametermarker verwendet wird. Die Zeilen werden aus der Datenbank abgerufen und zum Darstellen an eine HTML-Vorlage übergeben.

Bereinigung

Führen Sie die folgenden Schritte aus, um die im Lernprogramm verwendeten Ressourcen zu bereinigen:

  1. Rufen Sie die IBM Cloud®-Ressourcenlisteauf.
  2. Suchen Sie im Abschnitt Code Engine das Projekt sqldatabase. Klicken Sie auf die drei Punkte und wählen Sie Löschen aus, um das Projekt und seine App zu löschen.
  3. Suchen Sie die Datenbank sqldatabase unter Datenbanken. Klicken Sie erneut auf die drei Punkte und wählen Sie Löschen aus, damit die Datenbank gelöscht wird.

Je nach Ressource wird diese möglicherweise nicht sofort gelöscht, sondern (standardmäßig für 7 Tage) aufbewahrt. Sie können die Ressource zurückfordern, indem Sie sie permanent löschen oder innerhalb des Aufbewahrungszeitraums wiederherstellen. In diesem Dokument erfahren Sie mehr zur Verwendung der Ressourcenrückforderung.

Lernprogramm erweitern

Sie möchten diese App erweitern? Hier einige Vorschläge:

  1. Bieten Sie eine Platzhaltersuche nach alternativen Namen an.
  2. Suchen Sie nach Städten in einem bestimmten Land und mit bestimmten Einwohnerzahlen.
  3. Ändern Sie das Seitenlayout, indem Sie die CSS-Stile ersetzen und die Vorlagen erweitern.
  4. Ermöglichen Sie die formularbasierte Erstellung neuer Stadtinformationen oder die Aktualisierung vorhandener Daten, z. B. der Einwohnerzahl.

Zugehörige Inhalte