Prüfpunkte
Create test data for the Firestore Database
/ 50
Import test data into the Firestore Database
/ 50
Daten in eine Firestore-Datenbank importieren
GSP642
Übersicht
Vor zwölf Jahren gründete Lily die Tierklinikkette „Pet Theory“, die in den letzten Jahren stark gewachsen ist. Das alte Terminplanungssystem kann die gestiegene Arbeitslast jedoch nicht mehr verarbeiten, weshalb Lily Sie bittet, ein cloudbasiertes System zu entwickeln, das besser skalierbar ist als die bisherige Lösung.
Das Ops-„Team" von Pet Theory besteht nur aus Patrick. Deshalb ist es wichtig, dass die Lösung möglichst wenig Wartung erfordert. Das Unternehmen entschied sich daher für eine serverlose Technologie.
Ruby wurde als Beraterin engagiert, um Pet Theory beim Wechsel auf eine serverlose Architektur zu unterstützen. Nach einem Vergleich verschiedener serverloser Datenbanken hat sich das Team für Cloud Firestore entschieden. Firestore arbeitet serverlos. Kapazität muss daher nicht im Voraus bereitgestellt werden und es besteht nicht die Gefahr, an Speicher- oder Leistungsgrenzen zu stoßen. Firestore verwendet Echtzeit-Listener für die Datensynchronisierung zwischen Client-Apps und ist auf Mobilgeräten und im Web offline nutzbar, sodass sich eine reaktionsfähige App entwickeln lässt, die unabhängig von Netzwerklatenz und Internetverbindung funktioniert.
In diesem Lab helfen Sie Patrick dabei, die aktuellen Datenbestände von Pet Theory in eine Cloud Firestore-Datenbank hochzuladen. Ruby ist ebenfalls am Projekt beteiligt.
Architektur
Dieses Diagramm gibt Ihnen einen Überblick über die zu verwendenden Dienste und darüber, wie sie miteinander verbunden sind.
Lernziele
Aufgaben in diesem Lab:
- Firestore in Google Cloud einrichten
- Code für den Import in die Datenbank schreiben
- Kundendaten für Testzwecke generieren
- Testkundendaten in Firestore importieren
Vorbereitung
Dies ist ein Einführungs-Lab. Es setzt Vertrautheit mit der Cloud Console und Shell-Umgebungen voraus. Erfahrung mit Firebase ist hilfreich, aber nicht zwingend erforderlich.
Sie sollten Dateien bearbeiten können. Sie können dafür einen beliebigen Texteditor verwenden (z. B. nano
oder vi
) oder den Code-Editor von Cloud Shell nutzen. Dieser wird in der oberen Funktionsleiste aufgerufen:
Sobald Sie bereit sind, können Sie nach unten scrollen und die dort aufgeführten Schritte zur Einrichtung Ihrer Lab-Umgebung befolgen.
Einrichtung und Anforderungen
Vor dem Klick auf „Start Lab“ (Lab starten)
Lesen Sie diese Anleitung. Labs sind zeitlich begrenzt und können nicht pausiert werden. Der Timer beginnt zu laufen, wenn Sie auf Lab starten klicken, und zeigt Ihnen, wie lange die Ressourcen für das Lab verfügbar sind.
In diesem praxisorientierten Lab können Sie die Lab-Aktivitäten in einer echten Cloud-Umgebung selbst durchführen – nicht in einer Simulations- oder Demo-Umgebung. Dazu erhalten Sie neue, temporäre Anmeldedaten, mit denen Sie für die Dauer des Labs auf Google Cloud zugreifen können.
Für dieses Lab benötigen Sie Folgendes:
- Einen Standardbrowser (empfohlen wird Chrome)
- Zeit für die Durchführung des Labs – denken Sie daran, dass Sie ein begonnenes Lab nicht unterbrechen können.
Lab starten und bei der Google Cloud Console anmelden
-
Klicken Sie auf Lab starten. Wenn Sie für das Lab bezahlen müssen, wird ein Pop-up-Fenster geöffnet, in dem Sie Ihre Zahlungsmethode auswählen können. Auf der linken Seite befindet sich der Bereich Details zum Lab mit diesen Informationen:
- Schaltfläche Google Cloud Console öffnen
- Restzeit
- Temporäre Anmeldedaten für das Lab
- Ggf. weitere Informationen für dieses Lab
-
Klicken Sie auf Google Cloud Console öffnen (oder klicken Sie mit der rechten Maustaste und wählen Sie Link in Inkognitofenster öffnen aus, wenn Sie Chrome verwenden).
Im Lab werden Ressourcen aktiviert. Anschließend wird ein weiterer Tab mit der Seite Anmelden geöffnet.
Tipp: Ordnen Sie die Tabs nebeneinander in separaten Fenstern an.
Hinweis: Wird das Dialogfeld Konto auswählen angezeigt, klicken Sie auf Anderes Konto verwenden. -
Kopieren Sie bei Bedarf den folgenden Nutzernamen und fügen Sie ihn in das Dialogfeld Anmelden ein.
{{{user_0.username | "Username"}}} Sie finden den Nutzernamen auch im Bereich Details zum Lab.
-
Klicken Sie auf Weiter.
-
Kopieren Sie das folgende Passwort und fügen Sie es in das Dialogfeld Willkommen ein.
{{{user_0.password | "Password"}}} Sie finden das Passwort auch im Bereich Details zum Lab.
-
Klicken Sie auf Weiter.
Wichtig: Sie müssen die für das Lab bereitgestellten Anmeldedaten verwenden. Nutzen Sie nicht die Anmeldedaten Ihres Google Cloud-Kontos. Hinweis: Wenn Sie Ihr eigenes Google Cloud-Konto für dieses Lab nutzen, können zusätzliche Kosten anfallen. -
Klicken Sie sich durch die nachfolgenden Seiten:
- Akzeptieren Sie die Nutzungsbedingungen.
- Fügen Sie keine Wiederherstellungsoptionen oder Zwei-Faktor-Authentifizierung hinzu (da dies nur ein temporäres Konto ist).
- Melden Sie sich nicht für kostenlose Testversionen an.
Nach wenigen Augenblicken wird die Google Cloud Console in diesem Tab geöffnet.
Cloud Shell aktivieren
Cloud Shell ist eine virtuelle Maschine, auf der Entwicklertools installiert sind. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft auf Google Cloud. Mit Cloud Shell erhalten Sie Befehlszeilenzugriff auf Ihre Google Cloud-Ressourcen.
- Klicken Sie oben in der Google Cloud Console auf Cloud Shell aktivieren .
Wenn Sie verbunden sind, sind Sie bereits authentifiziert und das Projekt ist auf Ihre Project_ID,
gcloud
ist das Befehlszeilentool für Google Cloud. Das Tool ist in Cloud Shell vorinstalliert und unterstützt die Tab-Vervollständigung.
- (Optional) Sie können den aktiven Kontonamen mit diesem Befehl auflisten:
- Klicken Sie auf Autorisieren.
Ausgabe:
- (Optional) Sie können die Projekt-ID mit diesem Befehl auflisten:
Ausgabe:
gcloud
finden Sie in Google Cloud in der Übersicht zur gcloud CLI.
Aufgabe 1: Firestore in Google Cloud einrichten
Patrick soll die aktuellen Datenbestände von Pet Theory in eine Cloud Firestore-Datenbank hochladen. Dabei wird er eng mit Ruby zusammenarbeiten. Ruby erhält eine Nachricht von Patrick aus der IT-Abteilung…
Patrick, IT-Administrator |
Hallo Ruby, für unsere serverlose Lösung müssen wir zuerst mit Google Cloud eine Firestore-Datenbank erstellen. Kannst du mir helfen? Ich weiß nicht so genau, wie ich sie einrichten soll. Patrick |
Ruby, Softwareberaterin |
Hallo Patrick, na klar, ich bin dir gerne behilflich. Für den Anfang sende ich dir ein paar Informationen. Melde dich wieder, sobald du die Datenbank erstellt hast. Ruby |
Richten Sie mit Patrick über die Cloud Console eine Firestore-Datenbank ein.
-
Wählen Sie in der Cloud Console im Navigationsmenü die Option Firestore aus.
-
Klicken Sie auf +Datenbank erstellen.
-
Wählen Sie die Option Nativer Modus aus und klicken Sie auf Weiter.
- Der native Modus ist gut geeignet, wenn viele Nutzer gleichzeitig auf dieselben Daten zugreifen. Außerdem bietet er Funktionen wie Echtzeit-Updates und die direkte Verbindung zwischen der Datenbank und einem Web-/Mobilgeräte-Client.
- Der Datenspeichermodus hingegen ist für hohen Durchsatz (viele Lese- und Schreibvorgänge) optimiert.
- Wählen Sie im Drop-down-Menü Region die Region
aus und klicken Sie dann auf Datenbank erstellen.
Nach Abschluss des Vorgangs erhält Patrick eine E-Mail von Ruby…
Ruby, Softwareberaterin |
Hallo Patrick, bisher lief ja alles prima! Zur Verwaltung des Datenbankzugriffs verwenden wir ein Dienstkonto, das automatisch erstellt und mit den erforderlichen Berechtigungen ausgestattet wurde. Jetzt ist alles bereit, um die alte Datenbank auf Firestone zu migrieren. Ruby |
Patrick, IT-Administrator |
Hallo Ruby, vielen Dank für deine Hilfe. Die Firestore-Datenbank einzurichten war wirklich nicht schwer. Ich hoffe, der Datenbankimport lässt sich einfacher bewerkstelligen als bei der alten Datenbank. Da war er ziemlich aufwendig und langwierig. Patrick |
Aufgabe 2: Code für den Import in die Datenbank schreiben
Die neue Cloud Firestore-Datenbank ist erstellt, muss aber noch gefüllt werden. Die Kundendaten von Pet Theory befinden sich nach wie vor nur in der alten Datenbank.
Patrick sendet eine Nachricht an Ruby…
Patrick, IT-Administrator |
Hallo Ruby, mein Manager würde gerne die Kundendaten in die neue Firestore-Datenbank migrieren. Ich habe die alte Datenbank als CSV-Datei exportiert, bin aber unsicher, wie ich die Daten jetzt in die Firestore-Datenbank bekommen soll. Hast du einen Tipp für mich? Patrick |
Ruby, Softwareberaterin |
Hallo Patrick, na klar, lass uns einen Termin vereinbaren. Dann können wir alles Nötige besprechen. Ruby |
Wie Patrick bereits erwähnt hat, liegen die Kundendaten als CSV-Datei vor. Patrick benötigt nun eine App, die die Kundendatensätze aus einer CSV-Datei auslesen und in Firestore schreiben kann. Da Patrick sich mit JavaScript auskennt, erstellen Sie diese Anwendung mit der JavaScript-Laufzeit Node.js.
- Führen Sie in Cloud Shell den folgenden Befehl aus, um das Pet Theory-Repository zu klonen:
- Sie können die Dateien im Code-Editor von Cloud Shell oder in einem anderen Editor bearbeiten. Klicken Sie in der oberen Leiste in der Cloud Shell-Sitzung auf Editor öffnen. Daraufhin wird ein neuer Tab geöffnet. Falls Sie dazu aufgefordert werden, klicken Sie auf In neuem Fenster öffnen, um den Code-Editor zu starten:
- Wechseln Sie dann ins Arbeitsverzeichnis
lab01
:
Das Verzeichnis enthält Patricks Datei package.json
. In dieser Datei sind die von Ihrem Node.js-Projekt benötigten Pakete aufgelistet, sodass Ihr Build reproduzierbar bleibt und sich einfacher mit anderen teilen lässt.
Hier sehen Sie ein Beispiel einer solchen Datei:
Nachdem Patrick seinen Quellcode importiert hat, fragt er Ruby, welche Pakete er für die Migration benötigt.
Patrick, IT-Administrator |
Hallo Ruby, mein Code für die alte Datenbank erstellt einfach nur eine CSV-Datei, die für den Import verwendet werden kann. Muss ich sonst noch etwas herunterladen, bevor ich loslegen kann? Patrick |
Ruby, Softwareberaterin |
Hallo Patrick, ich schlage vor, du verwendest eines der vielen @google-cloud-Node-Pakete für die Interaktion mit Firestore. Dann brauchst du nur noch ein paar Kleinigkeiten anzupassen, weil der Großteil des Codes schon steht. Ruby |
Damit Patricks Code in die Firestore-Datenbank schreiben kann, müssen Sie einige zusätzliche Peer-Abhängigkeiten installieren.
- Führen Sie hierzu den folgenden Befehl aus:
- Sie müssen ein zusätzliches Modul installieren, damit über die App Logs in Cloud Logging geschrieben werden können:
Nachdem der Befehl erfolgreich ausgeführt wurde, wird die Datei package.json
automatisch um die neuen Peer-Abhängigkeiten ergänzt und sieht dann so aus:
Als Nächstes sehen wir uns das Skript an, mit dem die CSV-Datei ausgelesen und für jede Zeile in der CSV-Datei ein Datensatz in Firestore geschrieben wird. Patricks ursprüngliche Anwendung sehen Sie hier:
Mit dem Code werden Daten aus einer verarbeiteten CSV-Datei in die alte Datenbank importiert. Sie müssen den Code also nun so ändern, dass die Daten in die Firestore-Datenbank geschrieben werden.
- Öffnen Sie die Datei
pet-theory/lab01/importTestData.js
.
Um in der Anwendung auf die Firestore API zu verweisen, fügen Sie der vorhandenen Codebasis die Peer-Abhängigkeit hinzu.
- Fügen Sie also die folgende Firestore-Abhängigkeit in Zeile 3 der Datei ein:
Der Anfang der Datei sollte so aussehen:
Die Integration mit der Firestore-Datenbank gelingt mit wenigen Zeilen Code. Ruby hat Ihnen und Patrick zu diesem Zweck ein Codebeispiel zukommen lassen.
- Fügen Sie den folgenden Code unterhalb von Zeile 34 bzw. der Bedingung
if (process.argv.length < 3)
ein:
Das oben gezeigte Code-Snippet deklariert ein neues Datenbankobjekt, das auf die Datenbank verweist, die zuvor in diesem Lab erstellt wurde. Die Funktion verwendet einen Batchprozess, der jeden Datensatz einzeln verarbeitet und basierend auf der hinzugefügten Kennung einen Dokumentverweis festlegt. Am Ende der Funktion wird für den Batchinhalt ein Commit durchgeführt, d. h. der Inhalt wird in die Datenbank geschrieben.
- Ändern Sie die Funktion
importCsv
. Fügen Sie den Funktionsaufruf writeToFirestore ein und entfernen Sie den Aufruf writeToDatabase. Das sollte so aussehen:
- Fügen Sie eine Logging-Funktion zur Anwendung hinzu. Um in der Anwendung die Logging API zu referenzieren, weisen Sie der vorhandenen Codebasis die Peer-Abhängigkeit zu. Fügen Sie ganz oben in der Datei unterhalb der anderen „require“-Anweisungen folgende Zeile ein:
Der Anfang der Datei sollte so aussehen:
- Fügen Sie die folgenden konstanten Variablen unterhalb der oben genannten Zeilen hinzu (ca. Zeile 5) und initialisieren Sie den Logging-Client:
- Fügen Sie in der Funktion
importCsv
direkt unter der Zeile „console.log(Wrote ${records.length} records
);“ Code für das Schreiben der Logs ein:
Nach diesen Anpassungen sollte der Codeblock der Funktion importCsv
so aussehen:
Wird der Anwendungscode jetzt ausgeführt, wird die Firestore-Datenbank mit den Daten aus der CSV-Datei aktualisiert. Die Funktion importCsv
orientiert sich am Dateinamen und verarbeitet den Dateiinhalt zeilenweise. Jede verarbeitete Zeile wird an die Firestore-Funktion writeToFirestore
gesendet, die neue Datensätze in die Kundendatenbank schreibt.
Aufgabe 3: Testdaten erstellen
Jetzt geht es an den Datenimport! Patrick schreibt Ruby, weil er Bedenken hat, für den Testlauf tatsächliche Kundendaten zu verwenden…
Patrick, IT-Administrator |
Hallo Ruby, ich glaube es wäre besser, für Tests keine Kundendaten zu verwenden. Einerseits müssen wir prüfen, ob unser Skript für den Datenimport funktioniert, andererseits soll natürlich der Datenschutz für den Kunden gewährleistet sein. Fällt dir eine andere Möglichkeit für einen Test ein? Patrick |
Ruby, Softwareberaterin |
Hallo Patrick, du hast natürlich völlig recht. Ein schwieriges Thema, weil die Kundendaten personenidentifizierbare Informationen enthalten könnten, auch PII genannt. Ich kann dir Code zur Verfügung stellen, mit dem sich Pseudo-Kundendaten erzeugen lassen. Mit denen können wir dann das Importskript testen. Ruby |
Helfen Sie Patrick dabei, diesen Pseudo-Zufallsdatengenerator zum Laufen zu bringen.
- Installieren Sie zuerst die Bibliothek "faker", die von dem Skript verwendet wird, das die falschen Kundendaten erzeugt. Aktualisieren Sie mit dem folgenden Befehl die Abhängigkeit in
package.json
:
- Öffnen Sie jetzt im Code-Editor die Datei createTestData.js und sehen Sie sich den Code an. Er sollte so aussehen:
- Fügen Sie Logging für die Codebasis hinzu. Fügen Sie in Zeile 3 die folgende Referenz für das Logging API-Modul aus dem Anwendungscode hinzu:
Der Anfang der Datei sollte jetzt so aussehen:
- Fügen Sie nun direkt unter den
const
-Anweisungen einige konstante Variablen hinzu und initialisieren Sie den Logging-Client:
- Fügen Sie in der Funktion createTestData unterhalb der Zeile „console.log(
Created file ${fileName} containing ${recordCount} records.
);“ Code ein, mit dem die Logs geschrieben werden:
- Danach sollte der Codeblock der Funktion
createTestData
so aussehen:
- Führen Sie in Cloud Shell den folgenden Befehl aus, um die Datei
customers_1000.csv
mit 1.000 Testdatensätzen zu erstellen:
Die Ausgabe sollte ungefähr so aussehen:
- Öffnen Sie die Datei
customers_1000.csv
und prüfen Sie, ob die Testdaten erzeugt wurden.
Abgeschlossene Aufgabe testen
Klicken Sie auf Fortschritt prüfen. Wenn die Testdaten für die Firestore-Datenbank erstellt wurden, erhalten Sie ein Testergebnis.
Aufgabe 4: Testdaten importieren
- Zum Testen der Importfunktion verwenden Sie das Importskript und die Testdaten, die Sie bereits erstellt haben:
Die Ausgabe sollte ungefähr so aussehen:
- Es kann sein, dass Sie die folgende Fehlermeldung erhalten:
Führen Sie dann den folgenden Befehl aus, um das Paket csv-parse
zu Ihrer Umgebung hinzuzufügen:
- Führen Sie den Befehl dann noch einmal aus. Sie sollten folgende Ausgabe erhalten:
In den letzten Abschnitten haben Sie gemeinsam mit Patrick und Ruby Testdaten erzeugt und ein Skript für den Import dieser Daten in Firestore geschrieben. Patrick ist jetzt zuversichtlich, dass er mit dem Laden der Kundendaten in die Firestore-Datenbank gut zurechtkommt.
Abgeschlossene Aufgabe testen
Klicken Sie auf Fortschritt prüfen. Wenn Sie die Testdaten erfolgreich in die Firestore-Datenbank importiert haben, erhalten Sie ein Testergebnis.
Aufgabe 5: Daten in Firestore überprüfen
Dank Ihrer Unterstützung und mit Tipps von Ruby konnte Patrick die Testdaten in die Firestore-Datenbank migrieren. Öffnen Sie Firestore und sehen Sie sich das Ergebnis an!
- Kehren Sie zum Tab „Cloud Console“ zurück. Klicken Sie im Navigationsmenü auf Firestore. Klicken Sie auf das Bleistiftsymbol.
-
Geben Sie
/customers
ein und drücken Sie die Eingabetaste. -
Aktualisieren Sie den Browser-Tab. Die folgende Liste mit erfolgreich migrierten Kunden sollte zu sehen sein:
Glückwunsch!
Im Verlauf dieses Labs konnten Sie praktische Erfahrungen mit Firestore sammeln. Sie haben Pseudo-Kundendaten für Testzwecke generiert und dann ein Skript ausgeführt, mit dem sie in Firestore importiert wurden. Anschließend haben Sie die Daten in Firestore über die Cloud Console bearbeitet.
Google Cloud-Schulungen und -Zertifizierungen
In unseren Schulungen erfahren Sie alles zum optimalen Einsatz unserer Google Cloud-Technologien und können sich entsprechend zertifizieren lassen. Unsere Kurse vermitteln technische Fähigkeiten und Best Practices, damit Sie möglichst schnell mit Google Cloud loslegen und Ihr Wissen fortlaufend erweitern können. Wir bieten On-Demand-, Präsenz- und virtuelle Schulungen für Anfänger wie Fortgeschrittene an, die Sie individuell in Ihrem eigenen Zeitplan absolvieren können. Mit unseren Zertifizierungen weisen Sie nach, dass Sie Experte im Bereich Google Cloud-Technologien sind.
Anleitung zuletzt am 28. Februar 2024 aktualisiert
Lab zuletzt am 28. Februar 2024 getestet
© 2024 Google LLC. Alle Rechte vorbehalten. Google und das Google-Logo sind Marken von Google LLC. Alle anderen Unternehmens- und Produktnamen können Marken der jeweils mit ihnen verbundenen Unternehmen sein.