Prácticas recomendadas para la carga masiva de datos

Solo es relevante para la edición Enterprise de Cloud Firestore.

En esta página, se describen las prácticas recomendadas para cargar datos de forma masiva en Cloud Firestore con compatibilidad con MongoDB con herramientas como mongoimport.

Cloud Firestore es un sistema altamente distribuido que ofrece ajuste de escala automático para satisfacer las necesidades de tu empresa. Cloud Firestore divide y combina tus datos de forma dinámica según la carga que recibe el sistema.

La división basada en la carga se realiza automáticamente sin necesidad de una configuración previa. El sistema de división basado en la carga Cloud Firestore tiene algunas características importantes y únicas en comparación con otras bases de datos de documentos que es importante tener en cuenta a medida que modelas tus datos.

La naturaleza distribuida de Cloud Firestore puede requerir que se cambien algunas decisiones de diseño, en especial para las cargas de trabajo que se optimizaron para bases de datos en las que la réplica principal es el cuello de botella para el rendimiento de escritura.

Prácticas recomendadas

Las cargas de trabajo que procesan grandes cantidades de datos en un cliente de un solo subproceso pueden crear un cuello de botella. Es posible que los clientes puedan usar un solo subproceso para cargar datos de forma masiva, ya que el rendimiento del cliente y del servidor coinciden de manera similar. Una base de datos Cloud Firestore puede controlar mucho más paralelismo, pero esto requiere que configures los clientes para que envíen solicitudes en paralelo.

mongoimport

Cuando se usa la herramienta mongoimport, las solicitudes se realizan de forma secuencial de forma predeterminada. Para mejorar el tiempo de carga en Cloud Firestore, establece la cantidad de trabajadores con la marca --numInsertionWorkers. Es posible que el parámetro de configuración correcto requiera ajustes según el tamaño de tu cliente, pero, en general, recomendamos comenzar con, al menos, 32.

Programación asíncrona

Cuando desarrollas tu propio software con APIs compatibles con MongoDB, puedes mejorar el paralelismo de las siguientes maneras:

  • Marcos de trabajo asíncronos: El uso de marcos de trabajo asíncronos te permite procesar solicitudes y responderlas en paralelo. No es necesario desarrollar ningún sistema complejo de agrupación o filas cuando se realizan llamadas a tu base de datos. Cada flujo de solicitudes puede usar conexiones independientes y realizar sus llamadas a la base de datos en paralelo.
  • Usa ofertas de procesamiento paralelizado: Con servicios como Cloud Run, tu sistema puede ajustar la cantidad de trabajadores de procesamiento necesarios para procesar datos.

Fallas transitorias

Cuando trabajes con un sistema distribuido grande como Cloud Firestore, es posible que experimentes fallas transitorias, como interrupciones de red o contención en un documento.

Cuando se cargan grandes cantidades de información de forma masiva, es importante mantener una estrategia de reintentos para las escrituras fallidas sin que falle la operación de carga masiva más grande.