Consulta sobre colecciones #492
-
Hola comunidad, leyendo el TP me surgieron las siguientes dudas sobre la colección y cómo crearla. 1_Que las fuentes estáticas, para la primera entrega, son datasets formados por un lote de hechos en archivos .csv. 2_Que, como requerimiento implícito, el tratamiento de los archivos .csv debe ser de solo lectura y no se puede guardar el lote en memoria. 3_Que para la lectura de los archivos .csv se pueden usar bibliotecas externas. 4_Que para crear una colección necesito que los hechos cumplan con un criterio de pertenencia. Mis dudas son las siguientes: Cuando se lee un archivo .csv, utilizando o no una biblioteca, ¿puedo aplicarle ese criterio de pertenencia a todo el lote y, a aquellos hechos que lo cumplan, crearles un objeto y luego agregarlos a la colección? De esta manera, ¿estarían en memoria solo los hechos que cumplen el criterio de pertenencia? ¿Es válido este planteo para la creación de colecciones? ¿Cumple con la limitación de que el lote no esté en memoria? ¡Saludos! |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
Hola @AaronUtn Primero que nada, me parece excelente que hayas anotado tus supuestos. Yendo a la pregunta:
La respuesta rápida es: no. Volvamos al origen del requerimiento (yo no diría implícito, porque está explicitado en el enunciado; en todo caso diría que es un requerimiento no funcional): no queremos cargar todos los hechos en memoria a largo plazo porque (sobre todo cuando en próximas entregas introduzcamos agregadores) podrían agotarla. Ahora bien, si cada vez que creás una colección cargás sus hechos en memoria como resultado de la consulta de la fuente, ¿que pasará cuando crees dos colecciones que apunten a la misma fuente, pero con distintos criterios de pertenencia? De minima, si los criterios no se solapan, podrías de igual forma tendiendo a cargar todo en memoria. Y, en el peor de los casos, si los criterios se solapan, podrías terminar cargando múltiples copias del mismo hecho varias veces, lo cual es aún peor. Por último, un problema adicional: las fuentes estáticas normalmente no cambian: no lo hacen con frecuencia, pero podrían publicarse ocasionalmente nuevas versiones del archivo. ¿Ingresarían estos hechos nuevos o actualizados a la colección? Voy más allá: las fuentes dinámicas (no incluidas en la entrega, pero expresadas en el contexto y planificadas para las siguientes entregas) sí van a cambiar con frecuencia. ¿Que sucedería con estos hechos dinámicos ante tu propuesta? Saludos |
Beta Was this translation helpful? Give feedback.
Hola @AaronUtn
Primero que nada, me parece excelente que hayas anotado tus supuestos.
Yendo a la pregunta:
La respuesta rápida es: no. Volvamos al origen del requerimiento (yo no diría implícito, porque está explicitado en el enunciado; en todo caso diría que es un requerimiento no funcional): no queremos cargar todos los hechos en memoria a largo plazo porque (sobre todo cuando en próximas entregas introduzcamos agregadores) podrían agotarla.
Ahora bien, si cada vez que creás un…