Recientemente, implementamos un nuevo "lago de datos" en la plataforma Azure. El proceso de toma de decisiones había sido complicado y no puedo evitar la sensación de que hemos comprado una base de datos costosa y difícil de manejar cuando teníamos opciones mucho mejores y más baratas.
Nuestros requisitos son bastante básicos: tenemos alrededor de 7 GB de datos, la mayoría proviene de un volcado diario de la base de datos (CSV).
Los datos se usan para generar informes (actualmente, los resultados de las consultas se exportan a Excel, en el futuro se usará algo como PowerBi) y análisis. Con la cantidad de datos que tenemos actualmente, creo que una solución completa de Big Data como Cloudera o MapR es innecesaria (pero tal vez me equivoque).
En nuestra solución actual, el proceso ETL que lee el volcado CSV y la base de datos son administrados por un tercero. Usando MSSQL Management Studio o SquirrelSQL, podemos ejecutar consultas y exportar los resultados. Tenemos acceso de escritura a parte de la base de datos y necesito poder diseñar procesos ETL para complementar los datos que ya existen.
Esta es la primera falla: no he podido leer automáticamente/programadamente un archivo plano en la base de datos. Además, la base de datos no es particularmente rápida y estamos teniendo problemas para implementar el seguimiento de registro/auditoría.
En mi experiencia, Postgres en CentOS es rápido y registra el acceso a la base de datos prácticamente de forma inmediata. Automatizar la importación de archivos planos tampoco es un problema.
¿Cuáles son mejores soluciones que nuestra configuración actual de Azure?
Si su archivo plano es CSV, mysql tiene una herramienta de importación incorporada, ya que estoy seguro de que otros productos tienen una característica similar.
Por supuesto, se puede configurar el registro.
Ahora, con este pequeño conjunto de datos, tiene muchas opciones si se trata de hardware local.
Dado que está utilizando la nube, la velocidad de su Internet podría obstaculizarlo.
Además, tener una base de datos diseñada correctamente también afecta la velocidad. Saber cuándo y cómo crear índices para acelerar el acceso a los datos. Se pueden hacer muchas cosas para optimizar las consultas por parte de alguien capacitado en SQL.
izzy