Ir a la consola

Importa y exporta datos

Puedes usar el servicio administrado de importación y exportación de Cloud Firestore para recuperar datos que hayas borrado de manera accidental y exportar datos a fin de realizar un procesamiento sin conexión. Puedes exportar todos los documentos o solo colecciones específicas. Asimismo, puedes importar todos los datos de una exportación o solo colecciones específicas. Los datos que se exportan desde una base de datos de Cloud Firestore se pueden importar en otra base de datos de Cloud Firestore. También puedes cargar exportaciones de Cloud Firestore en BigQuery.

En esta página, se describe cómo importar y exportar documentos de Cloud Firestore con el servicio administrado de importación y exportación, y Cloud Storage. El servicio administrado de importación y exportación de Cloud Firestore está disponible a través de la herramienta de línea de comandos de gcloud y las API (de REST y RPC) de Cloud Firestore.

Antes de comenzar

Antes de usar el servicio administrado de importación y exportación, debes completar las siguientes tareas:

  1. Habilita la facturación para tu proyecto de Google Cloud Platform. Solo los proyectos de GCP que tengan la facturación habilitada pueden usar la funcionalidad de importación y exportación.
  2. Crea un depósito de Cloud Storage en tu proyecto en una ubicación cercana a la base de datos de Cloud Firestore. No puedes usar un depósito de pagos del solicitante para las operaciones de importación y exportación.
  3. Asegúrate de que tu cuenta tenga los permisos necesarios para Cloud Firestore y Cloud Storage. Si eres el propietario del proyecto, tu cuenta ya tiene los permisos necesarios. De lo contrario, las siguientes funciones otorgan los permisos necesarios para realizar las operaciones de importación y exportación, y acceder a Cloud Storage:

Cómo configurar gcloud en tu proyecto

Configura la herramienta de línea de comandos de gcloud y conéctala a tu proyecto de una de las siguientes maneras:

Si aún no lo has instalado, agrega el componente gcloud beta que contiene los comandos de importación y exportación de Cloud Firestore:

  gcloud components install beta

Exporta datos

En una operación de exportación se copian documentos de tu base de datos a un conjunto de archivos en un depósito de Cloud Storage. Ten presente que no es una instantánea exacta de la base de datos en el momento de inicio de la operación. Es posible que incluya los cambios efectuados mientras se ejecuta la exportación.

Exporta todos los documentos

Usa el comando firestore export para exportar todos los documentos de la base de datos y reemplaza [BUCKET_NAME] por el nombre del depósito de Cloud Storage. Agrega la marca --async para evitar que la herramienta gcloud espere a que la operación finalice.

gcloud beta firestore export gs://[BUCKET_NAME]

Puedes organizar las exportaciones si agregas un prefijo de archivo después del nombre del depósito, por ejemplo, BUCKET_NAME/my-exports-folder/export-name. Si no lo agregas, el servicio administrado de exportación crea uno en función de la marca de tiempo actual.

Una vez que inicies la operación de exportación, esta no se cancela si cierras la terminal. Consulta cómo cancelar una operación.

Exporta colecciones específicas

Para exportar colecciones específicas, usa la marca --collection-ids como en este ejemplo:

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

Importa datos

Tras exportar los archivos de Cloud Storage, puedes volver a importar documentos de esos archivos a tu proyecto o a otro. Ten presente los siguientes puntos sobre las operaciones de importación:

  • Cuando importas datos, se actualizan los índices necesarios con las definiciones de índices actuales de tu base de datos. Una exportación no contiene definiciones de índices.

  • Las importaciones no asignan nuevos ID a los documentos, sino que usan los ID capturados en el momento en que se realizó la exportación. Cuando se importa un documento, se conserva su ID para evitar conflictos entre estos. Si ya existe un documento con el mismo ID, se reemplaza el documento existente durante la importación.

  • Si la importación no afecta a un documento de la base de datos, este se conservará cuando la operación finalice.

Importa todos los documentos desde una exportación

Usa el comando firestore import para importar documentos de una operación de exportación anterior.

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

donde [BUCKET_NAME] y [EXPORT_PREFIX] apuntan a la ubicación de los archivos de exportación. Por ejemplo:

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

Puedes confirmar la ubicación de los archivos de exportación en el navegador de Cloud Storage de Google Cloud Platform Console:

Abrir el navegador de Cloud Storage

Una vez que inicies la operación de importación, esta no se cancelará si cierras la terminal. Consulta cómo cancelar una operación.

Importa colecciones específicas

Para importar colecciones específicas a partir de un conjunto de archivos de exportación, usa la marca --collection-ids. Solo puedes importar colecciones específicas a partir de una exportación de colecciones específicas. No puedes importar colecciones específicas a partir de una exportación de todos los documentos.

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

Administra las operaciones de importación y exportación

Cloud Firestore le asigna un nombre único a la operación de importación o exportación cuando la inicias. Puedes usar este nombre para borrar, cancelar o verificar el estado de la operación.

Los nombres de las operaciones incluyen el prefijo projects/[PROJECT_ID]/databases/(default)/operations/. Por ejemplo:

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

Sin embargo, puedes omitir el prefijo cuando especifiques el nombre de una operación para los comandos describe, cancel y delete.

Genera una lista de todas las operaciones de importación y exportación

Para ver todas las operaciones de importación y exportación que se ejecutan o que se completaron recientemente, usa el comando operations list:

gcloud beta firestore operations list

Verifica el estado de la operación

Usa el comando operations describe para que aparezca el estado de una operación de importación o exportación.

gcloud beta firestore operations describe [OPERATION_NAME]

Calcula el tiempo de finalización

La solicitud de verificación del estado de una operación prolongada muestra las métricas workEstimated y workCompleted. Cada una de estas métricas se muestra en cantidad de bytes y de entidades:

  • workEstimated muestra la cantidad total estimada de bytes y documentos que se procesarán en una operación.

  • workCompleted muestra la cantidad de bytes y documentos que se procesaron hasta el momento. Cuando la operación se completa, el valor muestra la cantidad total real de bytes y documentos que se procesaron. Es posible que sea mayor que la del valor de workEstimated.

Para obtener una estimación del progreso, divide workCompleted por workEstimated. Es posible que esta estimación sea inexacta, ya que depende de la demora en la recopilación de estadísticas.

Cancela una operación

Para detener una operación en curso, usa el comando operations cancel:

gcloud beta firestore operations cancel [OPERATION_NAME]

Cancelar una operación en curso no deshace su progreso. Cuando se cancela una operación de exportación, los documentos que ya se exportaron se conservan en Cloud Storage y, cuando se cancela una operación de importación, se conservan las actualizaciones que ya se le efectuaron a la base de datos. No se pueden importar documentos desde una exportación que se completó en forma parcial.

Borra una operación

Usa el comando operations delete para quitar una operación del resultado de operations list. Con este comando, no se borrarán los archivos de exportación de Cloud Storage.

gcloud beta firestore operations delete [OPERATION_NAME]

Facturación y precio de las operaciones de importación y exportación

Es obligatorio que habilites la facturación de tu proyecto de Google Cloud Platform antes de usar el servicio administrado de importación y exportación. Las operaciones de importación y exportación se cobran por lectura y escritura de documentos según las tarifas que se muestran en Precios de Cloud Firestore.

El límite de gasto no considera los costos de las operaciones de importación y exportación. Las operaciones de importación y exportación no activarán las alertas de presupuesto en Google Cloud Platform hasta que se completen. Asimismo, las lecturas y escrituras que se realicen durante una operación de importación o exportación se aplican a la cuota diaria cuando esta se completa.

Exporta a BigQuery

Puedes cargar datos desde una exportación de Cloud Firestore a BigQuery, pero solo si especificaste un filtro collection-ids. Consulta Carga datos de exportaciones de Cloud Firestore.