Voy a recibir un gran grupo de archivos CSV todos los días. Además, tengo mil millones de registros de datos (de esos archivos CSV), pero no es un número fijo (1b registros diarios). Van a estar creciendo y necesito almacenarlos en una base de datos. También hay algunos puntos extra:
Tenía un banco entre MySQL InnoDB y MyISAM. MyISAM fue mejor que InnoDB (porque no tengo normalización), pero MySQL no es un buen enfoque porque no tengo ninguna relación.
También revisé MongoDB, pero con 50 GB de datos CSV, ¡usaba 150 Gb de almacenamiento!
Sé que puedo usar archivos CSV pero necesito un enfoque de base de datos. Una base de datos tiene muchas herramientas (como consultas GROUP BY simples) y ventajas como actualizaciones, correcciones de errores, cosas de seguridad, rendimiento de lectura y escritura, replicación, etc.
Así que creo que necesito una base de datos NoSQL que pueda hacer escritura distribuida y soporte por encima de los puntos adicionales. Pero no sé cuál de los NoSQL es mejor para mí.
Estoy usando Linux (CentOS).
Solía manejar información como esta.
Usé PostgreSQL, donde tienes la ventaja de una base de datos relacional y Nosql.
Puede almacenar en un solo registro, datos normalizados, como datos de importación, una identificación, etc. y una matriz, o un json, o incluso un Hstore.
Además: tiene compresión nativa.
Sugeriría usar Pandas con la información .csv convertida al formato HDF5 probablemente por Pandas. HDF5 es generalmente más rápido que el esquema de estrella SQL.
No es una base de datos en sí misma. Pandas incluye búsquedas rápidas, selección, remodelación, agrupación, etc. y puede interactuar con una gran cantidad de bases de datos.
Pandas es gratuito, gratuito y de código abierto, y se mantiene activamente. Interactúa con herramientas como ipython, jupyter, matplotlib, etc., para una mejor manipulación y visualización de los datos.
usuario416
usuario416
Espadaña
ario
Espadaña
ario