Necesito analizar un gran archivo CSV en tiempo real, mientras está siendo modificado (adjunto) por un proceso diferente. En general, me refiero a ~ 20 GB en este punto, y de crecimiento lento. La aplicación solo necesita detectar e informar ciertas anomalías en el flujo de datos, para lo cual solo necesita almacenar información de estado pequeño (O(1)
espacio).Analizando archivos de texto grandes, modificados sobre la marcha
Estaba pensando en sondear los atributos del archivo (tamaño) cada dos segundos, abriendo un flujo de solo lectura, buscando la posición anterior, y luego continuando el análisis donde primero me detuve. Pero dado que este es un archivo de texto (CSV), obviamente necesito hacer un seguimiento de los caracteres de la nueva línea cuando continúo de alguna manera, para asegurarme de que siempre analizo una línea completa.
Si no me equivoco, esto no debería ser un problema para implementar, pero quería saber si hay una forma/biblioteca común que resuelva algunos de estos problemas.
Nota: No necesito un analizador CSV. Necesito información sobre una biblioteca que simplifica la lectura de líneas de un archivo que se modifica sobre la marcha.
¿Es posible detener el procesamiento de csv? En caso afirmativo, te sugiero que lo transfieras a RDBMS. – Oybek
@Oybek: ¿puedes aclarar eso un poco? El proceso que se agrega al archivo se está ejecutando constantemente, y necesito analizar los datos línea por línea constantemente (con varios segundos de retraso). – Groo
Supongo que no tiene control del proceso que emite el archivo? –