Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Daten exportieren und importieren

Sie können den von Cloud Firestore verwalteten Export- und Importdienst verwenden, um Daten nach versehentlichem Löschen wiederherzustellen und Daten für die Offline-Verarbeitung zu exportieren. Sie können alle Dokumente oder nur bestimmte Sammlungen exportieren. Ebenso können Sie alle Daten aus einem Export importieren oder nur bestimmte Sammlungen. Daten, die aus einer Cloud Firestore-Datenbank exportiert wurden, können in eine andere Cloud Firestore-Datenbank importiert werden. Sie können auch Cloud - Firestor Exporte in BigQuery laden .

Diese Seite beschreibt , wie für den Export und Import Wolke Firestor Dokumente des verwalteten Export und Import - Service und unter Verwendung von Cloud Storage . The Cloud Firestor verwalten Export und Import - Service ist durch das verfügbare gcloud Kommandozeilen - Tool und das Cloud Firestor API ( REST , RPC ).

Bevor Sie beginnen

Bevor Sie den verwalteten Export- und Importservice verwenden können, müssen Sie die folgenden Aufgaben ausführen:

  1. Aktivieren Sie die Abrechnung für Ihr Google Cloud-Projekt. Nur Google Cloud-Projekte mit aktivierter Abrechnung können die Export- und Importfunktion verwenden.
  2. Erstellen Sie eine Cloud Storage Eimer für Ihr Projekt in einem Ort in der Nähe Ihrer Cloud - Firestore - Datenbank Lage . Sie können einen Bucket für den Anforderer zahlt nicht für Export- und Importvorgänge verwenden.
  3. Stellen Sie sicher, dass Ihr Konto über die erforderlichen Berechtigungen für Cloud Firestore und Cloud Storage verfügt. Wenn Sie der Projektinhaber sind, verfügt Ihr Konto über die erforderlichen Berechtigungen. Andernfalls gewähren die folgenden Rollen die erforderlichen Berechtigungen für Export- und Importvorgänge sowie für den Zugriff auf Cloud Storage:

    • Cloud Firestor Rollen: Owner , Cloud Datastore Owner oder Cloud Datastore Import Export Admin
    • Cloud Storage Rollen: Owner oder Storage Admin

Standardberechtigungen für Dienstkonten

Jedes Google Cloud - Projekt wird automatisch ein Standard - Dienstkonto mit dem Namen PROJECT_ID @appspot.gserviceaccount.com . Export- und Importvorgänge verwenden dieses Dienstkonto, um Cloud Storage-Vorgänge zu autorisieren.

Das Standarddienstkonto Ihres Projekts erfordert Zugriff auf den Cloud Storage-Bucket, der in einem Export- oder Importvorgang verwendet wird. Wenn Ihr Cloud Storage Eimer im selben Projekt als Cloud - Firestore - Datenbank ist, dann hat das Standard - Dienstkonto Zugriff auf den heißen Stein standardmäßig.

Wenn sich der Cloud Storage-Bucket in einem anderen Projekt befindet, müssen Sie dem Standarddienstkonto Zugriff auf den Cloud Storage-Bucket gewähren.

Das Dienstkonto muss die Storage Admin - Storage Admin Rolle für die Cloud Storage Eimer für den Export oder Import verwendet werden.

Wenn Sie Ihr App Engine-Standarddienstkonto deaktivieren oder löschen, verliert Ihre App Engine-App den Zugriff auf Ihre Cloud Firestore-Datenbank. Wenn Sie Ihre App Engine - Dienstkonto deaktiviert, können Sie es wieder aktivieren, finden Sie ermöglicht ein Dienstkonto . Wenn Sie Ihre App Engine - Dienstkonto in den letzten 30 Tagen gelöscht, können Sie Ihr Dienstkonto wiederherstellen, siehe Wiederherstellen eines Dienstkonto .

Richten Sie gcloud für Ihr Projekt

Sie können Import- und Exportvorgänge über die Google Cloud Platform - Konsole oder dem initiieren gcloud Befehlszeilentool. Um die Verwendung gcloud , setzen Sie das Kommandozeilen - Tool und eine Verbindung zu Ihrem Projekt in einem der folgenden Wege bis:

Export von Daten

Ein Exportvorgang kopiert Dokumente in Ihrer Datenbank in eine Reihe von Dateien in einem Cloud Storage-Bucket. Beachten Sie, dass ein Export kein exakter Datenbank-Snapshot ist, der zum Startzeitpunkt des Exports erstellt wurde. Ein Export kann Änderungen enthalten, die während der Ausführung des Vorgangs vorgenommen wurden.

Alle Dokumente exportieren

Google Cloud-Konsole

  1. Gehen Sie auf die Wolke Firestor Import / Export - Seite in der Google Cloud Platform - Konsole.

    Gehen Sie zur Seite Importieren/Exportieren

  2. Klicken Sie auf Exportieren.

  3. Klicken Sie auf die gesamte Datenbank - Option Export.

  4. Wählen Sie unten Reiseziel, geben Sie den Namen eines Cloud Storage Eimer oder verwenden Sie die Schaltfläche Durchsuchen einen Eimer zu wählen.

  5. Klicken Sie auf Exportieren.

Die Konsole kehrt in den Import / Export - Seite. Wenn der Vorgang erfolgreich gestartet wird, fügt die Seite der Seite für die letzten Importe und Exporte einen Eintrag hinzu. Bei einem Fehler zeigt die Seite eine Fehlermeldung an.

gcloud

Verwenden Sie den firestore export Befehl , um alle Dokumente in der Datenbank zu exportieren, ersetzen [BUCKET_NAME] mit dem Namen Ihrer Cloud Storage Eimer. Fügen Sie die --async Flagge das verhindern gcloud Werkzeug vom Warten auf die Operation abgeschlossen.

gcloud firestore export gs://[BUCKET_NAME]

Sie können Ihre Exporte durch Hinzufügen eines Dateipräfix nach dem Bucket - Namen, zum Beispiel organisieren BUCKET_NAME/my-exports-folder/export-name . Wenn Sie kein Dateipräfix angeben, erstellt der verwaltete Exportdienst eines basierend auf dem aktuellen Zeitstempel.

Sobald Sie einen Exportvorgang starten, wird das Terminal schließen den Vorgang nicht abbrechen, finden Sie einen Vorgang abbrechen .

Bestimmte Sammlungen exportieren

Google Cloud-Konsole

  1. Gehen Sie auf die Wolke Firestor Import / Export - Seite in der Google Cloud Platform - Konsole.

    Gehen Sie zur Seite Importieren/Exportieren

  2. Klicken Sie auf Exportieren.

  3. Klicken Sie auf den Export eine oder mehrere Sammelgruppen - Option. Verwenden Sie das Dropdown-Menü, um eine oder mehrere Sammlungsgruppen auszuwählen.

  4. Wählen Sie unten Reiseziel, geben Sie den Namen eines Cloud Storage Eimer oder verwenden Sie die Schaltfläche Durchsuchen einen Eimer zu wählen.

  5. Klicken Sie auf Exportieren.

Die Konsole kehrt in den Import / Export - Seite. Wenn der Vorgang erfolgreich gestartet wird, fügt die Seite der Seite für die letzten Importe und Exporte einen Eintrag hinzu. Bei einem Fehler zeigt die Seite eine Fehlermeldung an.

gcloud

Um den Export bestimmten Sammelgruppen, verwenden Sie die --collection-ids Flagge. Der Vorgang exportiert nur die Sammlungsgruppen mit den angegebenen Sammlungs-IDs. Die Sammlungsgruppe umfasst alle Sammlungen und Untersammlungen (in jedem Pfad) mit der angegebenen Sammlungs-ID.

gcloud firestore export gs://[BUCKET_NAME] --collection-ids=[COLLECTION_ID_1],[COLLECTION_ID_2]

Daten importieren

Sobald Sie Dateien in Cloud Storage exportiert haben, können Sie Dokumente in diesen Dateien wieder in Ihr Projekt oder in ein anderes Projekt importieren. Beachten Sie die folgenden Punkte zu Importvorgängen:

  • Wenn Sie Daten importieren, werden die erforderlichen Indizes mit den aktuellen Indexdefinitionen Ihrer Datenbank aktualisiert. Ein Export enthält keine Indexdefinitionen.

  • Importe weisen keine neuen Dokument-IDs zu. Importe verwenden die zum Zeitpunkt des Exports erfassten IDs. Beim Importieren eines Dokuments wird seine ID reserviert, um ID-Kollisionen zu vermeiden. Existiert bereits ein Dokument mit derselben ID, überschreibt der Import das vorhandene Dokument.

  • Wenn ein Dokument in Ihrer Datenbank von einem Import nicht betroffen ist, verbleibt es nach dem Import in Ihrer Datenbank.

  • Importvorgänge lösen Cloud Functions nicht aus. Snapshot Zuhörer tun Updates zu Import - Operationen im Zusammenhang erhalten.

Alle Dokumente aus einem Export importieren

Google Cloud-Konsole

  1. Gehen Sie auf die Wolke Firestor Import / Export - Seite in der Google Cloud Platform - Konsole.

    Gehen Sie zur Seite Importieren/Exportieren

  2. Klicken Sie auf Importieren.

  3. Im Feld Dateiname Geben Sie den Dateinamen einer .overall_export_metadata Datei von einem Exportvorgang abgeschlossen. Sie können auf die Schaltfläche Durchsuchen verwenden , um die Datei zu helfen wählen.

  4. Klicken Sie auf Importieren.

Die Konsole kehrt in den Import / Export - Seite. Wenn der Vorgang erfolgreich gestartet wird, fügt die Seite einen Eintrag zur Seite für die letzten Importe und Exporte hinzu. Bei einem Fehler zeigt die Seite eine Fehlermeldung an.

gcloud

Verwenden Sie das firestore import Kommando zum Importieren von Dokumenten aus einer vorherigen Exportoperation.

gcloud firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/

wo [BUCKET_NAME] und [EXPORT_PREFIX] auf den Speicherort Ihrer Exportdateien. Zum Beispiel:

gcloud firestore import gs://exports-bucket/2017-05-25T23:54:39_76544/

Sie können den Speicherort Ihrer Exportdateien im Cloud Storage-Browser in der Google Cloud Platform Console bestätigen:

Cloud Storage-Browser öffnen

Sobald Sie einen Importvorgang starten, wird das Terminal schließen den Vorgang nicht abbrechen, finden Sie einen Vorgang abbrechen .

Importieren Sie bestimmte Sammlungen

Google Cloud-Konsole

Sie können in der Konsole keine bestimmten Sammlungen auswählen. Verwenden gcloud statt.

gcloud

Zum Import bestimmter Sammelgruppen aus einer Reihe von Exportdateien, verwenden Sie die --collection-ids Flagge. Der Vorgang importiert nur die Sammlungsgruppen mit den angegebenen Sammlungs-IDs. Die Sammlungsgruppe umfasst alle Sammlungen und Untersammlungen (in jedem Pfad) mit der angegebenen Sammlungs-ID.

Nur ein Export bestimmter Sammlungsgruppen unterstützt einen Import bestimmter Sammlungsgruppen. Sie können bestimmte Sammlungen nicht aus einem Export aller Dokumente importieren.

gcloud firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/ --collection-ids=[COLLECTION_ID_1],[COLLECTION_ID_2]

Export- und Importvorgänge verwalten

Nachdem Sie einen Export- oder Importvorgang gestartet haben, weist Cloud Firestore dem Vorgang einen eindeutigen Namen zu. Sie können den Vorgangsnamen verwenden, um den Vorgang zu löschen, abzubrechen oder den Status zu überprüfen.

Operationsnamen werden mit dem Präfix projects/[PROJECT_ID]/databases/(default)/operations/ , zum Beispiel:

projects/my-project/databases/(default)/operations/ASA1MTAwNDQxNAgadGx1YWZlZAcSeWx0aGdpbi1zYm9qLW5pbWRhEgopEg

Sie können jedoch das Präfix weglassen, wenn eine Operation Namens für die describe , cancel , und delete Befehle.

Alle Export- und Importvorgänge auflisten

Google Cloud-Konsole

Sie können in der Cloud Firestor Import / Export - Seite der Google Cloud Platform - Konsole eine Liste der letzten Export- und Importoperationen anzuzeigen.

Gehen Sie zur Seite Importieren/Exportieren

gcloud

Verwenden Sie die operations list Befehl alle laufenden und kürzlich abgeschlossenen Export und Import - Operationen , um zu sehen:

gcloud firestore operations list

Betriebsstatus prüfen

Google Cloud-Konsole

Sie können in der Cloud Firestor Import / Export - Seite der Google Cloud Platform - Konsole den Status einer aktuellen Export- oder Importoperation anzuzeigen.

Gehen Sie zur Seite Importieren/Exportieren

gcloud

Verwenden Sie die operations describe Befehl den Status einer Export- oder Importoperation zu zeigen.

gcloud firestore operations describe [OPERATION_NAME]

Schätzen Sie die Fertigstellungszeit ein

Ein Antrag auf den Status einer lang andauernde Operation kehrt die Metriken workEstimated und workCompleted . Jede dieser Metriken wird sowohl in der Anzahl von Bytes als auch in der Anzahl der Entitäten zurückgegeben:

  • workEstimated zeigt die geschätzte Gesamtzahl der Bytes und Dokumente eine Operation verarbeitet.

  • workCompleted zeigt die Anzahl von Bytes und Dokumente so weit verarbeitet. Nachdem der Vorgang abgeschlossen ist , zeigt der Wert die Gesamtzahl der Bytes und Dokumente , die tatsächlich verarbeitet wurden, die als der Wert von größer sein könnte workEstimated .

Divide workCompleted von workEstimated für eine grobe Schätzung Fortschritt. Diese Schätzung kann ungenau sein, da sie von einer verzögerten Statistikerfassung abhängt.

Vorgang abbrechen

Google Cloud-Konsole

Sie können eine laufende Export- oder Importoperation in der Cloud Firestor Import / Export - Seite der Google Cloud Platform - Konsole gelöscht werden .

Gehen Sie zur Seite Importieren/Exportieren

In der jüngsten Importe und Exporte Tabelle derzeit laufenden Betrieb gehören eine Schaltfläche Abbrechen in der Spalte abgeschlossen. Klicken Sie auf Abbrechen , um den Vorgang zu stoppen. Die Schaltfläche ändert sich auf eine Bestätigungsmeldung und dann abgebrochen , wenn der Betrieb vollständig stoppt.

gcloud

Verwenden die operations cancel Befehl eine Operation im Gange zu stoppen:

gcloud firestore operations cancel [OPERATION_NAME]

Das Abbrechen eines laufenden Vorgangs macht den Vorgang nicht rückgängig. Bei einem abgebrochenen Exportvorgang bleiben Dokumente bereits in Cloud Storage exportiert, und bei einem abgebrochenen Importvorgang bleiben die bereits an Ihrer Datenbank vorgenommenen Aktualisierungen erhalten. Einen teilweise abgeschlossenen Export können Sie nicht importieren.

Vorgang löschen

Verwenden Sie die gcloud firestore operations delete Befehl eine Operation aus der Liste der letzten Operationen zu entfernen. Dieser Befehl löscht keine Exportdateien aus Cloud Storage.

gcloud firestore operations delete [OPERATION_NAME]

Abrechnung und Preise für Export- und Importvorgänge

Sie müssen die Abrechnung für Ihr Google Cloud-Projekt aktivieren, bevor Sie den verwalteten Export- und Importdienst verwenden können. Export und Import - Operationen berechnet werden für Dokument liest und schreibt an den in aufgeführten Preisen Wolke Firestor Preis .

Die Kosten für die Export- und Importoperationen zählen nicht für Ihre Ausgaben begrenzen . Export oder Import - Operationen auslösen werden Ihre Google Cloud Budget Warnungen , bis nach der Fertigstellung. In ähnlicher Weise liest und schreibt während einer Export- oder Importoperation durchgeführt werden , um Ihre Anwendung tägliche Quote nach der Operation abgeschlossen ist. Export- und Importvorgänge wirken sich nicht auf die Nutzung aus, die im Nutzungsbereich der Konsole angezeigt wird.

Export- und Importkosten anzeigen

Export und Import - Operationen gelten die goog-firestoremanaged:exportimport Label in Rechnung gestellt Operationen. In der Cloud - Billing - Berichte Seite , können Sie dieses Label Ansicht Kosten verwenden im Zusammenhang mit Import- und Exportvorgänge:

Greifen Sie über das Filtermenü auf das Label goog-firestoremanaged zu.

Nach BigQuery exportieren

Sie können Daten aus einer Wolke Firestore Export in BigQuery laden, aber nur , wenn Sie eine bestimmte collection-ids - Filter. Siehe Laden von Daten aus Cloud - Firestor Exporten .

Limit für BigQuery-Spalten

BigQuery legt ein Limit von 10.000 Spalten pro Tabelle fest. Cloud Firestore-Exportvorgänge generieren ein BigQuery-Tabellenschema für jede Sammlungsgruppe. In diesem Schema wird jeder eindeutige Feldname innerhalb einer Sammlungsgruppe zu einer Schemaspalte.

Wenn das BigQuery-Schema einer Sammlungsgruppe 10.000 Spalten überschreitet, versucht der Cloud Firestore-Exportvorgang, unter dem Spaltenlimit zu bleiben, indem Kartenfelder als Byte behandelt werden. Wenn diese Konvertierung die Anzahl der Spalten unter 10.000 sinkt, können Sie die Daten in BigQuery laden, aber Sie können die Unterfelder in den Kartenfeldern nicht abfragen. Wenn die Anzahl der Spalten immer noch 10.000 überschreitet, generiert der Exportvorgang kein BigQuery-Schema für die Sammlungsgruppe und Sie können deren Daten nicht in BigQuery laden.

Format- und Metadatendateien exportieren

Der Ausgang eines verwalteten Export verwendet das LevelDB Protokollformat .

Metadatendateien

Ein Exportvorgang erstellt eine Metadatendatei für jede von Ihnen angegebene Sammlungsgruppe. Metadaten - Dateien sind in der Regel genannt ALL_NAMESPACES_KIND_[COLLECTION_GROUP_ID].export_metadata .

Die Metadatendateien sind Protokollpuffer und Sie können sie mit dem dekodieren protoc Protokoll Compiler . Sie können beispielsweise eine Metadatendatei decodieren, um die Sammlungsgruppen zu bestimmen, die die Exportdateien enthalten:

protoc --decode_raw < export0.export_metadata