¿Cuál es la mejor manera posible de leer y procesar archivos grandes (tamaño de GB y TB)?

Permítanme responder esto desde dos perspectivas: el analista y el gerente .

El analista : en mi carrera profesional de investigación, lo que aprendí sobre Analytics es que el aspecto cualitativo del análisis no depende del tamaño del archivo de datos o del número de puntos de datos. Depende de la cantidad de variables que tenga y cuáles piensa analizar.

El análisis típico funciona en algunas variables (generalmente de una a cinco) a la vez. Por ejemplo, necesita una variable para hacer una ejecución de frecuencia, dos variables para hacer una correlación y al menos tres variables para hacer una tabla cruzada. La forma más sencilla de reducir el tamaño del archivo es mantener solo las variables que desea analizar y eliminar todas las demás. Esto mejorará drásticamente la velocidad de ejecución de su programa. ( Recuerde hacer esto en una copia del archivo original, de lo contrario, incluso las compañías de seguros no lo ayudarán ) .

El gerente : ¿Qué tipo de computadora tienes? ( Por favor, no diga una rosa 🙂 ) ¿Tiene acceso a una computadora central o solo a una PC o computadora portátil?

Analizar archivos tan grandes de manera eficiente y rápida (en segundos, no en horas o días) requiere una enorme capacidad computacional: procesadores paralelos, software de servidor, alguna capacidad de secuencias de comandos de su parte para dividir su análisis en partes y alimentarlo a diferentes procesadores, etc. Si no tiene todo eso y solo tiene una computadora portátil o una PC a su disposición, la mejor manera de analizar un archivo grande es dividir el archivo en partes, analizar cada parte por separado y luego combinar sus conocimientos durante la síntesis.

¿Qué quieres decir con procesamiento? Simplemente multar / contar o reemplazar texto en esos archivos o extraer un trabajo en variables, agrupar, agregar y aplicar reglas sobre datos.

De cualquier manera, primero debe leer los archivos, si se trata de unidades de disco giratorias normales, hay poco que pueda hacer para aumentar la E / S. SSD le dará una velocidad mucho mejor y también puede usar hilos con compensaciones.

Si quieres hacer un análisis, Vamshi Krishna lo ha explicado amablemente. Una vez que haya extraído sus datos, puede definir modelos de datos y usar bases de datos NoSQL como cassandera y MongoDB o simplemente indexar y buscar usando SOLR (bueno para buscar no solo la recuperación de datos, ya que sufre un problema de paginación profunda).

Saludos
Jai