arrow_back

Daten in eine Firestore-Datenbank importieren

Anmelden Teilnehmen
Testen und teilen Sie Ihr Wissen mit unserer Community.
done
Sie erhalten Zugriff auf über 700 praxisorientierte Labs, Skill-Logos und Kurse

Daten in eine Firestore-Datenbank importieren

Lab 30 Minuten universal_currency_alt 1 Guthabenpunkt show_chart Einsteiger
info Dieses Lab kann KI-Tools enthalten, die den Lernprozess unterstützen.
Testen und teilen Sie Ihr Wissen mit unserer Community.
done
Sie erhalten Zugriff auf über 700 praxisorientierte Labs, Skill-Logos und Kurse

GSP642

Logo: Google Cloud-Labs zum selbstbestimmten Lernen

Banner für Pet Theory

Ü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.

Architekturdiagramm zur Migration auf eine Firestore-Datenbank

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:

Schaltfläche „Editor öffnen“

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)
Hinweis: Nutzen Sie den privaten oder Inkognitomodus, um dieses Lab durchzuführen. So wird verhindert, dass es zu Konflikten zwischen Ihrem persönlichen Konto und dem Teilnehmerkonto kommt und zusätzliche Gebühren für Ihr persönliches Konto erhoben werden.
  • Zeit für die Durchführung des Labs – denken Sie daran, dass Sie ein begonnenes Lab nicht unterbrechen können.
Hinweis: Wenn Sie über ein persönliches Google Cloud-Konto oder -Projekt verfügen, verwenden Sie es nicht für dieses Lab. So werden zusätzliche Kosten für Ihr Konto vermieden.

Lab starten und bei der Google Cloud Console anmelden

  1. 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
  2. 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.
  3. 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.

  4. Klicken Sie auf Weiter.

  5. 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.

  6. 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.
  7. 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.

Hinweis: Wenn Sie sich eine Liste der Google Cloud-Produkte und ‑Dienste ansehen möchten, klicken Sie oben links auf das Navigationsmenü. Symbol für Navigationsmenü

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.

  1. Klicken Sie oben in der Google Cloud Console auf Cloud Shell aktivieren Symbol für Cloud Shell-Aktivierung.

Wenn Sie verbunden sind, sind Sie bereits authentifiziert und das Projekt ist auf Ihre Project_ID, eingestellt. Die Ausgabe enthält eine Zeile, in der die Project_ID für diese Sitzung angegeben ist:

Ihr Cloud-Projekt in dieser Sitzung ist festgelegt als {{{project_0.project_id | "PROJECT_ID"}}}

gcloud ist das Befehlszeilentool für Google Cloud. Das Tool ist in Cloud Shell vorinstalliert und unterstützt die Tab-Vervollständigung.

  1. (Optional) Sie können den aktiven Kontonamen mit diesem Befehl auflisten:
gcloud auth list
  1. Klicken Sie auf Autorisieren.

Ausgabe:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} Um das aktive Konto festzulegen, führen Sie diesen Befehl aus: $ gcloud config set account `ACCOUNT`
  1. (Optional) Sie können die Projekt-ID mit diesem Befehl auflisten:
gcloud config list project

Ausgabe:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Hinweis: Die vollständige Dokumentation für 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

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

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.

  1. Wählen Sie in der Cloud Console im Navigationsmenü die Option Firestore aus.

  2. Klicken Sie auf +Datenbank erstellen.

  3. Wählen Sie die Option Nativer Modus aus und klicken Sie auf Weiter.

Hinweis: Beide Modi bieten hohe Leistung und strikte Konsistenz, sehen aber unterschiedlich aus und sind für verschiedene Anwendungsfälle optimiert.
  • 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.
  1. 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

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

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

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

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.

  1. Führen Sie in Cloud Shell den folgenden Befehl aus, um das Pet Theory-Repository zu klonen:
git clone https://github.com/rosera/pet-theory
  1. 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:

Schaltfläche „Editor öffnen“

  1. Wechseln Sie dann ins Arbeitsverzeichnis lab01:
cd pet-theory/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:

{ "name": "lab01", "version": "1.0.0", "description": "This is lab01 of the Pet Theory labs", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "Patrick - IT", "license": "MIT", "dependencies": { "csv-parse": "^5.5.3" } }

Nachdem Patrick seinen Quellcode importiert hat, fragt er Ruby, welche Pakete er für die Migration benötigt.

Patrick

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

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.

  1. Führen Sie hierzu den folgenden Befehl aus:
npm install @google-cloud/firestore
  1. Sie müssen ein zusätzliches Modul installieren, damit über die App Logs in Cloud Logging geschrieben werden können:
npm install @google-cloud/logging

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:

... "dependencies": { "@google-cloud/firestore": "^7.3.0", "@google-cloud/logging": "^11.0.0", "csv-parse": "^5.5.3" }

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:

const csv = require('csv-parse'); const fs = require('fs'); function writeToDatabase(records) { records.forEach((record, i) => { console.log(`ID: ${record.id} Email: ${record.email} Name: ${record.name} Phone: ${record.phone}`); }); return ; } async function importCsv(csvFilename) { const parser = csv.parse({ columns: true, delimiter: ',' }, async function (err, records) { if (e) { console.error('Error parsing CSV:', e); return; } try { console.log(`Call write to Firestore`); await writeToDatabase(records); console.log(`Wrote ${records.length} records`); } catch (e) { console.error(e); process.exit(1); } }); await fs.createReadStream(csvFilename).pipe(parser); } if (process.argv.length < 3) { console.error('Please include a path to a csv file'); process.exit(1); } importCsv(process.argv[2]).catch(e => console.error(e));

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.

  1. Ö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.

  1. Fügen Sie also die folgende Firestore-Abhängigkeit in Zeile 3 der Datei ein:
const { Firestore } = require("@google-cloud/firestore");

Der Anfang der Datei sollte so aussehen:

const csv = require('csv-parse'); const fs = require('fs'); const { Firestore } = require("@google-cloud/firestore"); // Add this

Die Integration mit der Firestore-Datenbank gelingt mit wenigen Zeilen Code. Ruby hat Ihnen und Patrick zu diesem Zweck ein Codebeispiel zukommen lassen.

  1. Fügen Sie den folgenden Code unterhalb von Zeile 34 bzw. der Bedingung if (process.argv.length < 3) ein:
async function writeToFirestore(records) { const db = new Firestore({ // projectId: projectId }); const batch = db.batch() records.forEach((record)=>{ console.log(`Write: ${record}`) const docRef = db.collection("customers").doc(record.email); batch.set(docRef, record, { merge: true }) }) batch.commit() .then(() => { console.log('Batch executed') }) .catch(err => { console.log(`Batch error: ${err}`) }) return }

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.

  1. Ändern Sie die Funktion importCsv. Fügen Sie den Funktionsaufruf writeToFirestore ein und entfernen Sie den Aufruf writeToDatabase. Das sollte so aussehen:
async function importCsv(csvFilename) { const parser = csv.parse({ columns: true, delimiter: ',' }, async function (err, records) { if (err) { console.error('Error parsing CSV:', err); return; } try { console.log(`Call write to Firestore`); await writeToFirestore(records); // await writeToDatabase(records); console.log(`Wrote ${records.length} records`); } catch (e) { console.error(e); process.exit(1); } }); await fs.createReadStream(csvFilename).pipe(parser); }
  1. 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:
const { Logging } = require('@google-cloud/logging');

Der Anfang der Datei sollte so aussehen:

const csv = require('csv-parse'); const fs = require('fs'); const { Firestore } = require("@google-cloud/firestore"); const { Logging } = require('@google-cloud/logging');
  1. Fügen Sie die folgenden konstanten Variablen unterhalb der oben genannten Zeilen hinzu (ca. Zeile 5) und initialisieren Sie den Logging-Client:
const logName = "pet-theory-logs-importTestData"; // Creates a Logging client const logging = new Logging(); const log = logging.log(logName); const resource = { type: "global", };
  1. 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:
// A text log entry success_message = `Success: importTestData - Wrote ${records.length} records`; const entry = log.entry( { resource: resource }, { message: `${success_message}` } ); log.write([entry]);

Nach diesen Anpassungen sollte der Codeblock der Funktion importCsv so aussehen:

async function importCsv(csvFilename) { const parser = csv.parse({ columns: true, delimiter: ',' }, async function (err, records) { if (err) { console.error('Error parsing CSV:', err); return; } try { console.log(`Call write to Firestore`); await writeToFirestore(records); // await writeToDatabase(records); console.log(`Wrote ${records.length} records`); // A text log entry success_message = `Success: importTestData - Wrote ${records.length} records`; const entry = log.entry( { resource: resource }, { message: `${success_message}` } ); log.write([entry]); } catch (e) { console.error(e); process.exit(1); } }); await fs.createReadStream(csvFilename).pipe(parser); }

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.

Hinweis: In einer Produktionsumgebung würden Sie Ihre eigene Version des Importskripts schreiben.

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

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

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.

  1. 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:
npm install faker@5.5.3
  1. Öffnen Sie jetzt im Code-Editor die Datei createTestData.js und sehen Sie sich den Code an. Er sollte so aussehen:
const fs = require('fs'); const faker = require('faker'); function getRandomCustomerEmail(firstName, lastName) { const provider = faker.internet.domainName(); const email = faker.internet.email(firstName, lastName, provider); return email.toLowerCase(); } async function createTestData(recordCount) { const fileName = `customers_${recordCount}.csv`; var f = fs.createWriteStream(fileName); f.write('id,name,email,phone\n') for (let i=0; i<recordCount; i++) { const id = faker.datatype.number(); const firstName = faker.name.firstName(); const lastName = faker.name.lastName(); const name = `${firstName} ${lastName}`; const email = getRandomCustomerEmail(firstName, lastName); const phone = faker.phone.phoneNumber(); f.write(`${id},${name},${email},${phone}\n`); } console.log(`Created file ${fileName} containing ${recordCount} records.`); } recordCount = parseInt(process.argv[2]); if (process.argv.length != 3 || recordCount < 1 || isNaN(recordCount)) { console.error('Include the number of test data records to create. Example:'); console.error(' node createTestData.js 100'); process.exit(1); } createTestData(recordCount);
  1. 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:
const { Logging } = require("@google-cloud/logging");

Der Anfang der Datei sollte jetzt so aussehen:

const fs = require("fs"); const faker = require("faker"); const { Logging } = require("@google-cloud/logging"); //add this
  1. Fügen Sie nun direkt unter den const-Anweisungen einige konstante Variablen hinzu und initialisieren Sie den Logging-Client:
const logName = "pet-theory-logs-createTestData"; // Creates a Logging client const logging = new Logging(); const log = logging.log(logName); const resource = { // This example targets the "global" resource for simplicity type: "global", };
  1. 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:
// A text log entry const success_message = `Success: createTestData - Created file ${fileName} containing ${recordCount} records.`; const entry = log.entry( { resource: resource }, { name: `${fileName}`, recordCount: `${recordCount}`, message: `${success_message}`, } ); log.write([entry]);
  1. Danach sollte der Codeblock der Funktion createTestData so aussehen:
async function createTestData(recordCount) { const fileName = `customers_${recordCount}.csv`; var f = fs.createWriteStream(fileName); f.write('id,name,email,phone\n') for (let i=0; i<recordCount; i++) { const id = faker.datatype.number(); const firstName = faker.name.firstName(); const lastName = faker.name.lastName(); const name = `${firstName} ${lastName}`; const email = getRandomCustomerEmail(firstName, lastName); const phone = faker.phone.phoneNumber(); f.write(`${id},${name},${email},${phone}\n`); } console.log(`Created file ${fileName} containing ${recordCount} records.`); // A text log entry const success_message = `Success: createTestData - Created file ${fileName} containing ${recordCount} records.`; const entry = log.entry( { resource: resource }, { name: `${fileName}`, recordCount: `${recordCount}`, message: `${success_message}`, } ); log.write([entry]); }
  1. Führen Sie in Cloud Shell den folgenden Befehl aus, um die Datei customers_1000.csv mit 1.000 Testdatensätzen zu erstellen:
node createTestData 1000

Die Ausgabe sollte ungefähr so aussehen:

Created file customers_1000.csv containing 1000 records.
  1. Ö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.

Testdaten für die Firestore-Datenbank erstellen

Aufgabe 4: Testdaten importieren

  1. Zum Testen der Importfunktion verwenden Sie das Importskript und die Testdaten, die Sie bereits erstellt haben:
node importTestData customers_1000.csv

Die Ausgabe sollte ungefähr so aussehen:

Writing record 500 Writing record 1000 Wrote 1000 records
  1. Es kann sein, dass Sie die folgende Fehlermeldung erhalten:
Error: Cannot find module 'csv-parse'

Führen Sie dann den folgenden Befehl aus, um das Paket csv-parse zu Ihrer Umgebung hinzuzufügen:

npm install csv-parse
  1. Führen Sie den Befehl dann noch einmal aus. Sie sollten folgende Ausgabe erhalten:
Writing record 500 Writing record 1000 Wrote 1000 records

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.

Testdaten in die Firestore-Datenbank importieren

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!

  1. Kehren Sie zum Tab „Cloud Console“ zurück. Klicken Sie im Navigationsmenü auf Firestore. Klicken Sie auf das Bleistiftsymbol.

Bleistiftsymbol

  1. Geben Sie /customers ein und drücken Sie die Eingabetaste.

  2. Aktualisieren Sie den Browser-Tab. Die folgende Liste mit erfolgreich migrierten Kunden sollte zu sehen sein:

Kundenliste

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.

Diese Inhalte sind derzeit nicht verfügbar

Bei Verfügbarkeit des Labs benachrichtigen wir Sie per E-Mail

Sehr gut!

Bei Verfügbarkeit kontaktieren wir Sie per E-Mail