Sie können den verwalteten Export- und Importdienst von Cloud Firestore dazu verwenden, versehentlich gelöschte Daten wiederherzustellen und Daten für die Offlineverarbeitung zu exportieren. Es lassen sich alle Dokumente oder nur bestimmte Sammlungsgruppen exportieren. Ebenso können Sie alle Daten aus einem Export oder nur bestimmte Sammlungsgruppen daraus importieren. Daten, die aus einer Cloud Firestore-Datenbank exportiert wurden, können in eine andere Cloud Firestore-Datenbank importiert werden. Sie können auch Cloud Firestore-Exporte in BigQuery laden.
Auf dieser Seite wird beschrieben, wie Sie Cloud Firestore-Dokumente mit dem verwalteten Export- und Importdienst und Cloud Storage exportieren und importieren. Der verwaltete Export- und Importdienst von Cloud Firestore ist über das gcloud-Befehlszeilentool und die Cloud Firestore API (REST, RPC) verfügbar.
Hinweis
Bevor Sie den verwalteten Export- und Importdienst verwenden können, müssen Sie die folgenden Schritte ausführen:
- Aktivieren Sie die Abrechnung für Ihr Google Cloud-Projekt. Nur Google Cloud-Projekte mit aktivierter Abrechnung können die Export- und Importfunktion verwenden.
- Erstellen Sie einen Cloud Storage-Bucket für Ihr Projekt an einem Standort in der Nähe des Standorts Ihrer Cloud Firestore-Datenbank. Sie können einen Bucket mit der Funktion „Anforderer bezahlt“ oder einen Rapid-Bucket nicht für Export- und Importvorgänge verwenden.
-
Ihr Konto muss die erforderlichen Berechtigungen für Cloud Firestore und Cloud Storage haben. Wenn Sie der Projektinhaber sind, hat Ihr Konto 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 Firestore-Rollen:
Owner,Cloud Datastore OwneroderCloud Datastore Import Export Admin Cloud Storage-Rollen:
OwneroderStorage Admin
- Cloud Firestore-Rollen:
Berechtigungen des Dienst-Agents
Bei Export- und Importvorgängen wird ein Cloud Firestore-Dienst-Agent verwendet, um Cloud Storage-Vorgänge zu autorisieren. Der Dienst-Agent Cloud Firestore verwendet die folgende Namenskonvention:
- Cloud Firestore-Dienst-Agent
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com
Weitere Informationen zu Dienst-Agents finden Sie unter Dienst-Agents.
Der Dienst-Agent Cloud Firestore benötigt Zugriff auf den Bucket Cloud Storage, der für einen Export- oder Importvorgang verwendet wird. Wenn sich Ihr Cloud Storage-Bucket im selben Projekt wie Ihre Cloud Firestore-Datenbank befindet, kann der Cloud Firestore-Dienst-Agent standardmäßig auf den Bucket zugreifen.
Wenn sich der Cloud Storage-Bucket in einem anderen Projekt befindet, müssen Sie dem Cloud Firestore-Dienst-Agent Zugriff auf den Cloud Storage-Bucket gewähren.
Dem Dienst-Agent Rollen zuweisen
Sie können das gsutil-Befehlszeilentool verwenden, um eine der folgenden Rollen zuzuweisen. Führen Sie beispielsweise den folgenden Befehl aus, um dem Dienst-Agent Cloud Firestore die Rolle „Storage-Administrator“ zuzuweisen:
gsutil iam ch serviceAccount:service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com:roles/storage.admin \ gs://[BUCKET_NAME]
Ersetzen Sie PROJECT_NUMBER durch Ihre Projektnummer, die zur Benennung Ihres Cloud Firestore-Dienst-Agents verwendet wird. Informationen zum Aufrufen des Dienst-Agent-Namens finden Sie unter Dienst-Agent-Namen aufrufen.
Alternativ können Sie diese Rolle über die Google Cloud Console zuweisen.
Name des Dienst-Agents ansehen
Sie können das Konto, das Ihre Import- und Exportvorgänge zum Autorisieren von Anfragen verwenden, auf der Seite Import/Export in der Google Cloud Console aufrufen. Sie können auch sehen, ob Ihre Datenbank den Dienst-Agent Cloud Firestore oder das Legacy-Dienstkonto App Engine verwendet.
- Sehen Sie sich das Autorisierungskonto neben dem Label Import-/Exportjobs ausführen als an.
Der Dienst-Agent benötigt die Rolle Storage Admin für den Bucket Cloud Storage, der für den Export- oder Importvorgang verwendet werden soll.
gcloud für das Projekt einrichten
Sie können Import- und Exportvorgänge über die Google Cloud Console oder das gcloud-Befehlszeilentool initiieren. Richten Sie das Befehlszeilentool ein, um gcloud zu verwenden, und stellen Sie mit einer der folgenden Methoden eine Verbindung zu Ihrem Projekt her:
Greifen Sie über die Google Cloud Console mit Cloud Shell auf
gcloudzu.Achten Sie darauf, dass
gcloudfür das richtige Projekt konfiguriert ist:gcloud config set project [PROJECT_ID]
Daten exportieren
Bei einem Exportvorgang werden Dokumente in Ihrer Datenbank in eine Reihe von Dateien in einem Cloud Storage-Bucket kopiert. Beachten Sie, dass ein Export kein exakter Datenbank-Snapshot ist, der zum Startzeitpunkt des Exports aufgenommen wurde. Ein Export kann Änderungen enthalten, die während der Ausführung des Vorgangs vorgenommen wurden.
Alle Dokumente exportieren
Google Cloud Console
Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.
Wählen Sie die benötigte Datenbank aus der Liste der Datenbanken aus.
Klicken Sie im Navigationsmenü auf Importieren/Exportieren.
Klicken Sie auf Exportieren.
Klicken Sie auf die Option Gesamte Datenbank exportieren.
Geben Sie unter Ziel auswählen den Namen eines Cloud Storage-Buckets ein oder wählen Sie mit dem Button Suchen einen Bucket aus.
Klicken Sie auf Exportieren.
Die Console kehrt zur Seite Import/Export zurück. Wenn der Vorgang erfolgreich gestartet wird, wird auf der Seite ein Eintrag zur Seite mit den letzten Importen und Exporten hinzugefügt. Bei einem Fehler wird auf der Seite eine Fehlermeldung angezeigt.
gcloud
Verwenden Sie den Befehl firestore export, um alle Dokumente in Ihrer Datenbank zu exportieren. Ersetzen Sie dabei [BUCKET_NAME] durch den Namen Ihres Cloud Storage-Buckets. Fügen Sie das Flag --async hinzu, um zu verhindern, dass das Tool gcloud auf den Abschluss des Vorgangs wartet.
gcloud firestore export gs://[BUCKET_NAME] \ --database=[DATABASE]
Ersetzen Sie Folgendes:
BUCKET_NAME: Organisieren Sie Ihre Exporte, indem Sie nach dem Bucket-Namen ein Dateipräfix hinzufügen, z. B.BUCKET_NAME/my-exports-folder/export-name. Wenn Sie kein Dateipräfix angeben, erstellt der verwaltete Exportdienst eines basierend auf dem aktuellen Zeitstempel.DATABASE: Name der Datenbank, aus der Sie die Dokumente exportieren möchten. Verwenden Sie für die Standarddatenbank--database='(default)'.
Wenn Sie einen Export gestartet haben, wird der Vorgang durch Schließen des Terminals nicht abgebrochen. Siehe Vorgang abbrechen.
Bestimmte Sammlungsgruppen exportieren
Google Cloud Console
Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.
Wählen Sie die benötigte Datenbank aus der Liste der Datenbanken aus.
Klicken Sie im Navigationsmenü auf Importieren/Exportieren.
Klicken Sie auf Exportieren.
Klicken Sie auf die Option Eine oder mehrere Sammlungsgruppen exportieren. Wählen Sie im Menü eine oder mehrere Sammlungsgruppen aus.
Geben Sie unter Ziel auswählen den Namen eines Cloud Storage-Buckets ein oder wählen Sie mit dem Button Suchen einen Bucket aus.
Klicken Sie auf Exportieren.
Die Console kehrt zur Seite Import/Export zurück. Wenn der Vorgang erfolgreich gestartet wird, wird auf der Seite ein Eintrag zur Seite mit den letzten Importen und Exporten hinzugefügt. Bei einem Fehler wird auf der Seite eine Fehlermeldung angezeigt.
gcloud
Verwenden Sie das Flag --collection-ids, um bestimmte Sammlungsgruppen zu exportieren. Der Vorgang exportiert nur die Sammlungsgruppen mit den angegebenen IDs. Eine Sammlungsgruppe umfasst alle Sammlungen und untergeordneten Sammlungen, deren endgültige Sammlungs-ID die Sammlungsgruppen-ID ist.
gcloud firestore export gs://[BUCKET_NAME] \ --collection-ids=[COLLECTION_GROUP_ID_1],[COLLECTION_GROUP_ID_2] \ --database=[DATABASE]
Sie können beispielsweise eine restaurants-Sammlung in der foo-Datenbank so entwerfen, dass sie mehrere Unter-Sammlungen wie ratings, reviews oder outlets enthält. Wenn Sie die Sammlungsgruppe reviews exportieren möchten, muss sie explizit aufgeführt werden:
gcloud firestore export gs://[BUCKET_NAME] \ --collection-ids=reviews \ --database='cymbal'
Wenn stattdessen restaurants angegeben ist, werden Dokumente in der untergeordneten Sammlung reviews nicht exportiert.
Von einem PITR-Zeitstempel exportieren
Sie können Ihre Datenbank aus PITR-Daten nach Cloud Storage exportieren.
Sie können PITR-Daten exportieren, deren Zeitstempel ein Zeitstempel mit ganzen Minuten innerhalb der letzten sieben Tage ist, aber nicht vor dem earliestVersionTime. Wenn am angegebenen Zeitstempel keine Daten mehr vorhanden sind, schlägt der Exportvorgang fehl.
Der PITR-Exportvorgang unterstützt alle Filter, einschließlich des Exports aller Dokumente und des Exports bestimmter Sammlungsgruppen.
Beachten Sie vor dem Exportieren von PITR-Daten die folgenden Punkte:
- Geben Sie den Zeitstempel im RFC 3339-Format an. Beispiel:
2023-05-26T10:20:00.00Z. - Der angegebene Zeitstempel muss ein Zeitstempel mit einer ganzen Minute innerhalb der letzten sieben Tage sein, aber nicht vor dem
earliestVersionTime. Wenn am angegebenen Zeitstempel keine Daten mehr vorhanden sind, wird ein Fehler generiert. - Für einen fehlgeschlagenen PITR-Export fallen keine Kosten an.
Console
-
Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.
Zur Seite „Datenbanken“ - Wählen Sie eine Datenbank aus der Liste der Datenbanken aus.
- Klicken Sie im Navigationsmenü auf Importieren/Exportieren.
- Klicken Sie auf Exportieren.
- Konfigurieren Sie die Exportquelle so, dass entweder die gesamte Datenbank oder nur bestimmte Sammlungsgruppen exportiert werden.
Wählen Sie im Abschnitt Zustand der zu exportierenden Datenbank auswählen die Option Aus einem früheren Zeitpunkt exportieren aus.
Wählen Sie einen Snapshot-Zeitpunkt für den Export aus
- Geben Sie im Abschnitt Ziel den Namen eines Cloud Storage-Buckets ein oder wählen Sie mit dem Button Suchen einen Bucket aus.
-
Klicken Sie auf Exportieren.
Die Console kehrt zur Seite Import/Export zurück. Wenn der Vorgang erfolgreich gestartet wird, fügt die Seite der letzten Import- und Exportseite einen Eintrag hinzu. Bei einem Fehler wird auf der Seite eine Fehlermeldung angezeigt.
gcloud
Sie können Ihre Datenbank mit dem Befehl gcloud firestore export aus PITR-Daten nach Cloud Storage exportieren.
Exportieren Sie die Datenbank und geben Sie für den Parameter snapshot-time einen Wiederherstellungszeitstempel an. Führen Sie den folgenden Befehl aus, um die Datenbank in Ihren Bucket zu exportieren.
gcloud firestore export gs://[BUCKET_NAME_PATH] \ --snapshot-time=[PITR_TIMESTAMP]
Dabei ist PITR_TIMESTAMP ein PITR-Zeitstempel mit einem Detaillierungsgrad von einer Minute, z. B. 2023-05-26T10:20:00.00Z.
Fügen Sie das Flag --collection-ids hinzu, um bestimmte Sammlungsgruppen zu exportieren.
Daten importieren
Sobald Sie Exportdateien in Cloud Storage 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:
Beim Importieren von Daten werden die erforderlichen Indexe mit den aktuellen Indexdefinitionen der Datenbank aktualisiert. Ein Export enthält keine Indexdefinitionen.
Beim Importieren werden keine neuen Dokument-IDs zugewiesen. Für den Import werden die IDs verwendet, die zum Zeitpunkt des Exports erfasst wurden. Die ID eines Dokuments wird beim Import reserviert, um ID-Kollisionen zu vermeiden. Wenn ein Dokument mit derselben ID bereits vorhanden ist, wird das vorhandene Dokument durch den Import überschrieben.
Wenn ein Dokument in Ihrer Datenbank nicht von einem Import betroffen ist, bleibt es nach dem Import in Ihrer Datenbank bestehen.
Importvorgänge lösen keine Cloud Functions-Funktionen aus. Snapshot-Listener erhalten Aktualisierungen im Zusammenhang mit Importvorgängen.
Sie sollten keine neuen Cloud Firestore-Dokumente hinzufügen, die nicht in den ursprünglichen Ausgabedateien eines Exports enthalten waren, und vor dem Import keine vorhandenen Dokumente aus den GCS-Dateien entfernen. Andernfalls schlägt der Import fehl.
Der Dateiname
.overall_export_metadatamuss mit dem Namen des übergeordneten Ordners übereinstimmen:gs://BUCKET_NAME/OPTIONAL_NAMESPACE_PATH/PARENT_FOLDER_NAME/PARENT_FOLDER_NAME.overall_export_metadataWenn Sie die Ausgabedateien eines Exports verschieben oder kopieren, behalten Sie die Dateinamen PARENT_FOLDER_NAME und
.overall_export_metadatabei.
Alle Dokumente aus einem Export importieren
Google Cloud Console
Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.
Wählen Sie die benötigte Datenbank aus der Liste der Datenbanken aus.
Klicken Sie im Navigationsmenü auf Importieren/Exportieren.
Klicken Sie auf Importieren.
Geben Sie im Feld Dateiname den Dateinamen einer
.overall_export_metadata-Datei aus einem abgeschlossenen Exportvorgang ein. Sie können den Button Durchsuchen verwenden, um die Datei auszuwählen.Klicken Sie auf Importieren.
Die Console kehrt zur Seite Import/Export zurück. Wenn der Vorgang erfolgreich gestartet wird, wird auf der Seite ein Eintrag zur Seite mit den letzten Importen und Exporten hinzugefügt. Bei einem Fehler wird auf der Seite eine Fehlermeldung angezeigt.
gcloud
Verwenden Sie den Befehl firestore import, um Dokumente aus einem vorherigen Exportvorgang zu importieren.
gcloud firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/ --database=[DATABASE]
Ersetzen Sie Folgendes:
BUCKET_NAME/EXPORT_PREFIX: Speicherort Ihrer Exportdateien.DATABASE: Name der Datenbank. Verwenden Sie für die Standarddatenbank--database='(default)'.
Beispiel:
gcloud firestore import gs://my-bucket/2017-05-25T23:54:39_76544/ --database='cymbal'
Sie können den Speicherort Ihrer Exportdateien im Cloud Storage-Browser in der Google Cloud Console prüfen:
Öffnen Sie den Cloud Storage-Browser.
Wenn Sie einen Import gestartet haben, wird der Vorgang durch Schließen des Terminals nicht abgebrochen. Siehe Vorgang abbrechen.
Bestimmte Sammlungsgruppen importieren
Google Cloud Console
Sie können in der Console keine bestimmten Sammlungsgruppen auswählen. Verwenden Sie stattdessen gcloud.
gcloud
Verwenden Sie das Flag --collection-ids, um bestimmte Sammlungsgruppen aus einer Gruppe von Exportdateien zu importieren. Bei diesem Vorgang werden nur die Sammlungsgruppen mit den angegebenen IDs importiert. Eine Sammlungsgruppe umfasst alle Sammlungen und untergeordneten Sammlungen, deren endgültige Sammlungs-ID die Sammlungsgruppen-ID ist. Geben Sie den Datenbanknamen mit dem Flag --database an. Verwenden Sie für die Standarddatenbank --database='(default)'.
Nur ein Export bestimmter Sammlungsgruppen unterstützt den Import bestimmter Sammlungsgruppen. Sie können keine bestimmten Sammlungsgruppen aus einem Export aller Dokumente importieren.
gcloud firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/ \ --collection-ids=[COLLECTION_GROUP_ID_1],[COLLECTION_GROUP_ID_2] \ --database=[DATABASE]
PITR-Export importieren
Folgen Sie der Anleitung unter Alle Dokumente importieren, um die exportierte Datenbank zu importieren. Wenn ein Dokument bereits in Ihrer Datenbank vorhanden ist, wird es überschrieben.
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 mit diesem Namen den Vorgang löschen, abbrechen oder seinen Status prüfen.
Vorgangsnamen wird projects/[PROJECT_ID]/databases/(default)/operations/ vorangestellt, zum Beispiel:
projects/my-project/databases/(default)/operations/ASA1MTAwNDQxNAgadGx1YWZlZAcSeWx0aGdpbi1zYm9qLW5pbWRhEgopEg
Wenn Sie für die Befehle describe, cancel und delete einen Vorgangsnamen angeben, können Sie das Präfix weglassen.
Alle Export- und Importvorgänge auflisten
Google Cloud Console
Eine Liste der letzten Export- und Importvorgänge finden Sie in der Google Cloud Console auf der Seite Import/Export.
Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.
Wählen Sie die benötigte Datenbank aus der Liste der Datenbanken aus.
Klicken Sie im Navigationsmenü auf Importieren/Exportieren.
gcloud
Verwenden Sie den Befehl operations list, um alle laufenden und kürzlich abgeschlossenen Export- und Importvorgänge anzeigen zu lassen:
gcloud firestore operations list
Vorgangsstatus prüfen
Google Cloud Console
Sie können den Status eines kürzlichen Export- oder Importvorgangs auf der Seite Import/Export der Google Cloud Console ansehen.
Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.
Wählen Sie die benötigte Datenbank aus der Liste der Datenbanken aus.
Klicken Sie im Navigationsmenü auf Importieren/Exportieren.
gcloud
Verwenden Sie den Befehl operations describe, um den Status eines Export- oder Importvorgangs abzurufen.
gcloud firestore operations describe [OPERATION_NAME]
Fertigstellungszeit schätzen
Eine Anfrage für den Status eines Vorgangs mit langer Ausführungszeit liefert die Messwerte workEstimated und workCompleted. Beide Messwerte werden als Anzahl der Byte und als Anzahl der Entitäten zurückgegeben:
workEstimatedweist die geschätzte Gesamtzahl der Byte und Dokumente aus, die ein Vorgang verarbeitet. Cloud Firestore lässt diesen Messwert möglicherweise weg, wenn keine Schätzung möglich ist.workCompletedweist die Anzahl der bisher verarbeiteten Byte und Dokumente aus. Nachdem der Vorgang abgeschlossen ist, zeigt der Wert die Gesamtanzahl der tatsächlich verarbeiteten Byte und Dokumente an, die möglicherweise größer als der Wert vonworkEstimatedist.
Teilen Sie workCompleted durch workEstimated, um eine grobe Schätzung des Fortschritts zu erhalten. Diese Schätzung ist möglicherweise ungenau, da sie von der verzögerten Statistikerfassung abhängt.
Vorgang abbrechen
Google Cloud Console
Sie können einen laufenden Export- oder Importvorgang auf der Seite Import/Export der Google Cloud Console abbrechen.
Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.
Wählen Sie die benötigte Datenbank aus der Liste der Datenbanken aus.
Klicken Sie im Navigationsmenü auf Importieren/Exportieren. In der Tabelle Aktuelle Importe und Exporte enthalten aktuell ausgeführte Vorgänge den Button Abbrechen in der Spalte Abgeschlossen. Klicken Sie auf den Button Abbrechen, um den Vorgang zu beenden. Der Button ändert sich in eine Abbrechen- und, sobald der Vorgang komplett ist, in eine Storniert-Nachricht.

gcloud
Verwenden Sie den Befehl operations cancel, um einen laufenden Vorgang zu beenden:
gcloud firestore operations cancel [OPERATION_NAME]
Durch das Abbrechen eines laufenden Vorgangs wird der Vorgang nicht rückgängig gemacht. Bei einem abgebrochenen Exportvorgang verbleiben bereits exportierte Dokumente in Cloud Storage. Bei einem abgebrochenen Importvorgang bleiben bereits vorgenommene Aktualisierungen in Ihrer Datenbank erhalten. Sie können einen unvollständigen Export nicht importieren.
Vorgang löschen
Verwenden Sie den Befehl gcloud firestore operations delete, um einen Vorgang aus der Liste der letzten Vorgänge zu entfernen. Mit diesem Befehl werden keine Exportdateien aus Cloud Storage gelöscht.
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.
Für Export- und Importvorgänge werden die in den Cloud Firestore-Preisen aufgeführten Preise für das Lesen und Schreiben von Dokumenten berechnet. Bei Exportvorgängen fällt ein Lesevorgang pro exportiertem Dokument an. Bei Importvorgängen fällt ein Schreibvorgang pro importiertem Dokument an.
In Cloud Storage gespeicherte Ausgabedateien werden auf Ihre Cloud Storage-Datenspeicherkosten angerechnet.
Export- oder Importvorgänge lösen erst nach Abschluss Ihre Google Cloud-Budgetbenachrichtigungen aus. Export- und Importvorgänge wirken sich nicht auf die Nutzung aus, die im Bereich „Nutzung“ der Console angezeigt wird.
Preise für Export und Import aufrufen
Bei Export- und Importvorgängen wird das goog-firestoremanaged:exportimport-Label auf in Rechnung gestellte Vorgänge angewendet. Auf der Seite der Cloud Billing-Berichte können Sie über dieses Label Kosten für Import- und Exportvorgänge aufrufen:

Nach BigQuery exportieren
Sie können Daten aus einem Cloud Firestore-Export in BigQuery laden, aber nur, wenn Sie einen collection-ids-Filter angegeben haben. Weitere Informationen finden Sie unter Daten aus Cloud Firestore-Exporten laden.
Spaltenlimit: BigQuery
BigQuery legt ein Limit von 10.000 Spalten pro Tabelle fest. Cloud Firestore-Exportvorgänge generieren für jede Sammlungsgruppe ein BigQuery-Tabellenschema. In diesem Schema dient jeder eindeutige Feldname innerhalb einer Sammlungsgruppe als Schemaspalte. Wenn das BigQuery-Schema einer Sammlungsgruppe 10.000 Spalten überschreitet, versucht der Cloud Firestore-Exportvorgang, die Spaltenbeschränkung einzuhalten, indem Kartenfelder als Byte behandelt werden. Wenn die Anzahl der Spalten durch diese Konvertierung unter 10.000 sinkt, können Sie die Daten in BigQuery laden, aber die Unterfelder in den Kartenfeldern nicht abfragen. Wenn die Anzahl der Spalten immer noch 10.000 überschreitet, wird beim Exportvorgang kein BigQuery-Schema für die Sammlungsgruppe generiert und Sie können die Daten nicht in BigQuery laden.
Exportformat und Metadatendateien
Die Ausgabe eines verwalteten Exports verwendet das LevelDB-Logformat.
Metadatendateien
Beim Exportvorgang wird für jede von Ihnen angegebene Sammlungsgruppe eine Metadatendatei erstellt. Metadatendateien heißen in der Regel ALL_NAMESPACES_KIND_[COLLECTION_GROUP_ID].export_metadata.
Die Metadatendateien sind Protokollzwischenspeicher und können mit dem protoc-Protokollcompiler decodiert werden.
Sie können beispielsweise eine Metadatendatei decodieren, um die Sammlungsgruppen zu bestimmen, die die Exportdateien enthalten:
protoc --decode_raw < export0.export_metadata
Migration von Dienst-Agents
Cloud Firestore verwendet einen Cloud Firestore-Dienst-Agent, um Import- und Exportvorgänge zu autorisieren, anstatt das Dienstkonto App Engine zu verwenden. Für den Dienst-Agent und das Dienstkonto gelten die folgenden Namenskonventionen:
- Cloud Firestore-Dienst-Agent
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com
Cloud Firestore hat zuvor das Standarddienstkonto App Engine anstelle des Dienst-Agents Cloud Firestore verwendet. Wenn Ihre Datenbank immer noch das Dienstkonto App Engine zum Importieren oder Exportieren von Daten verwendet, empfehlen wir, der Anleitung in diesem Abschnitt zu folgen, um zur Verwendung des Dienst-Agents Cloud Firestore zu migrieren.
- App Engine-Dienstkonto
PROJECT_ID@appspot.gserviceaccount.com
Der Dienst-Agent Cloud Firestore ist vorzuziehen, da er spezifisch für Cloud Firestore ist. Das Dienstkonto App Engine wird von mehreren Diensten gemeinsam genutzt.
Autorisierungskonto ansehen
In der Google Cloud Console können Sie auf der Seite Import/Export sehen, welches Konto für die Autorisierung von Anfragen für Ihre Import- und Exportvorgänge verwendet wird. Sie können auch prüfen, ob Ihre Datenbank bereits den Dienst-Agenten Cloud Firestore verwendet.
-
Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.
- Wählen Sie die benötigte Datenbank aus der Liste der Datenbanken aus.
-
Klicken Sie im Navigationsmenü auf Importieren/Exportieren.
- Sehen Sie sich das Autorisierungskonto neben dem Label Import-/Exportjobs ausführen als an.
Wenn Ihr Projekt den Dienst-Agenten Cloud Firestore nicht verwendet, können Sie mit einer der folgenden Methoden zum Dienst-Agenten Cloud Firestore migrieren:
- Projekt migrieren, indem Sie die Cloud Storage-Bucket-Berechtigungen prüfen und aktualisieren (empfohlen).
- Fügen Sie eine organisationsweite Richtlinieneinschränkung hinzu, die sich auf alle Projekte in der Organisation auswirkt.
Die erste dieser Techniken ist vorzuziehen, da sie den Umfang der Auswirkungen auf ein einzelnes Cloud Firestore-Projekt beschränkt. Die zweite Methode wird nicht bevorzugt, da vorhandene Cloud Storage-Bucket-Berechtigungen nicht migriert werden. Es bietet jedoch Sicherheits-Compliance auf Organisationsebene.
Migration durch Prüfen und Aktualisieren der Cloud Storage-Bucket-Berechtigungen
Die Migration erfolgt in zwei Schritten:
- Aktualisieren Sie die Berechtigungen für den Bucket Cloud Storage. Weitere Informationen finden Sie im folgenden Abschnitt.
- Bestätigen Sie die Migration zum Dienst-Agent Cloud Firestore.
Bucket-Berechtigungen für Dienst-Agents
Für alle Export- oder Importvorgänge, die einen Cloud Storage-Bucket in einem anderen Projekt verwenden, müssen Sie dem Cloud Firestore-Dienst-Agent Berechtigungen für diesen Bucket gewähren. Beispielsweise müssen Vorgänge, bei denen Daten in ein anderes Projekt verschoben werden, auf einen Bucket in diesem anderen Projekt zugreifen. Andernfalls schlagen diese Vorgänge nach der Migration zum Dienst-Agenten Cloud Firestore fehl.
Für Import- und Export-Workflows, die innerhalb desselben Projekts bleiben, sind keine Änderungen an den Berechtigungen erforderlich. Der Dienst-Agent Cloud Firestore kann standardmäßig auf Buckets im selben Projekt zugreifen.
Aktualisieren Sie die Berechtigungen für Cloud Storage-Buckets aus anderen Projekten, um dem Dienst-Agent service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com Zugriff zu gewähren. Weisen Sie dem Dienst-Agent die Rolle Firestore Service Agent zu.
Die Rolle Firestore Service Agent gewährt Lese- und Schreibberechtigungen für einen Cloud Storage-Bucket. Wenn Sie nur Lese- oder nur Schreibberechtigungen gewähren müssen, verwenden Sie eine benutzerdefinierte Rolle.
Der im folgenden Abschnitt beschriebene Migrationsprozess hilft Ihnen, Cloud Storage-Buckets zu identifizieren, für die möglicherweise Berechtigungsaktualisierungen erforderlich sind.
Projekt zum Firestore-Dienst-Agent migrieren
Führen Sie die folgenden Schritte aus, um vom Dienstkonto App Engine zum Dienst-Agenten Cloud Firestore zu migrieren. Wenn die Migration abgeschlossen ist, kann sie nicht mehr rückgängig gemacht werden.
-
Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.
- Wählen Sie die benötigte Datenbank aus der Liste der Datenbanken aus.
-
Klicken Sie im Navigationsmenü auf Importieren/Exportieren.
-
Wenn Ihr Projekt noch nicht zum Dienst-Agenten Cloud Firestore migriert wurde, wird ein Banner mit einer Beschreibung der Migration und der Schaltfläche Bucket-Status prüfen angezeigt. Im nächsten Schritt können Sie potenzielle Berechtigungsfehler identifizieren und beheben.
Klicken Sie auf Bucket-Status prüfen.
Ein Menü mit der Option zum Abschließen der Migration und einer Liste von Cloud Storage-Buckets wird angezeigt. Es kann einige Minuten dauern, bis die Liste vollständig geladen ist.
Diese Liste enthält Buckets, die vor Kurzem für Import- und Exportvorgänge verwendet wurden, aber derzeit keine Lese- und Schreibberechtigungen für den Dienst-Agent Cloud Firestore haben.
- Notieren Sie sich den Hauptkontonamen des Cloud Firestore-Dienst-Agents Ihres Projekts. Der Name des Dienst-Agents wird unter dem Label Dienst-Agent, dem Zugriff gewährt werden soll angezeigt.
-
Führen Sie für jeden Bucket in der Liste, den Sie für zukünftige Import- oder Exportvorgänge verwenden möchten, die folgenden Schritte aus:
-
Klicken Sie in der Tabellenzeile dieses Buckets auf Korrigieren. Dadurch wird die Berechtigungsseite dieses Buckets in einem neuen Tab geöffnet.
- Klicken Sie auf Hinzufügen.
- Geben Sie im Feld Neue Hauptkonten den Namen Ihres Cloud Firestore-Dienst-Agents ein.
- Wählen Sie im Feld Rolle auswählen die Option Dienst-Agents > Firestore-Dienst-Agent aus.
- Klicken Sie auf Speichern.
- Kehren Sie zum Tab mit der Seite „Cloud Firestore Import/Export“ zurück.
- Wiederholen Sie diese Schritte für andere Buckets in der Liste. Sehen Sie sich alle Seiten der Liste an.
-
-
Klicken Sie auf Zu Firestore-Dienst-Agent migrieren. Wenn Sie noch Buckets mit fehlgeschlagenen Berechtigungsprüfungen haben, müssen Sie die Migration bestätigen, indem Sie auf Migrieren klicken.
Sie werden benachrichtigt, wenn die Migration abgeschlossen ist. Die Migration kann nicht rückgängig gemacht werden.
Status der Migration abrufen
So prüfen Sie den Migrationsstatus Ihres Projekts:
-
Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.
- Wählen Sie die benötigte Datenbank aus der Liste der Datenbanken aus.
-
Klicken Sie im Navigationsmenü auf Importieren/Exportieren.
-
Suchen Sie nach dem Hauptkonto neben dem Label Import-/Exportjobs ausführen als.
Wenn das Hauptkonto
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.comist, wurde Ihr Projekt bereits zum Dienst-Agenten Cloud Firestore migriert. Die Migration kann nicht rückgängig gemacht werden.Wenn das Projekt nicht migriert wurde, wird oben auf der Seite ein Banner mit dem Button Bucket-Status prüfen angezeigt. Informationen zum Abschließen der Migration finden Sie unter Zum Firestore-Dienst-Agent migrieren.
Organisationsweite Richtlinieneinschränkung hinzufügen
-
Legen Sie die folgende Einschränkung in der Richtlinie Ihrer Organisation fest:
Firestore-Dienst-Agent für Import/Export erforderlich (
firestore.requireP4SAforImportExport).Diese Einschränkung erfordert, dass Import- und Exportvorgänge den Dienst-Agent Cloud Firestore verwenden, um Anfragen zu autorisieren. Informationen zum Festlegen dieser Einschränkung finden Sie unter Organisationsrichtlinien erstellen und verwalten .
Durch die Anwendung dieser Einschränkung für die Organisationsrichtlinie werden dem Cloud Firestore-Dienst-Agent nicht automatisch die entsprechenden Cloud Storage-Bucket-Berechtigungen gewährt.
Wenn die Einschränkung Berechtigungsfehler für Import- oder Exportworkflows verursacht, können Sie sie deaktivieren, um wieder das Standarddienstkonto zu verwenden. Nachdem Sie die Berechtigungen für den Bucket Cloud Storage geprüft und aktualisiert haben, können Sie die Einschränkung wieder aktivieren.