miércoles, 21 de abril de 2021

Procesando ficheros grandes en JAVA


Llevamos unas semanas con varias filtraciones de datos, hace unas semanas hubo una de Facebook, y hoy hemos tenido otra con datos de una empresa de telefonía...

Cuando nos enteramos de estas cosas, nos gustaría saber si se han filtrado nuestros datos, pero para eso hay que tener los datos (algo que a veces es difícil de encontrar) y después tener las herramientas para abrir esos ficheros.

En los dos casos que he comentado, los ficheros eran texto plano, en formato CSV.

El primero ocupaba 800 MB y el segundo 5,36 GB

Yo no he conseguido abrir ninguno con las herramientas habituales.

Así que he escrito un pequeño programa que lee línea a línea cualquier fichero, busca en cada línea la cadena que nos interese, y las coincidencias que encuentra las escribe en otro fichero.

Podéis acceder a ese desarrollo desde aquí: https://github.com/tecnificados/bigFileOpps

Espero que os sea útil.

Nos vemos pronto.

Muchas gracias a  Hugo y a Valandil por su ayuda consiguiendo los datos.




domingo, 18 de abril de 2021

Spring Boot: un CRUD hecho y derecho

 


Este es el quinto (y último) artículo de la serie sobre Spring Boot que comenzamos el mes de Febrero. Estos son los anteriores:

El proyecto con el que estamos trabajando esta en GitHub y esta es su URL:  https://github.com/tecnificados/boot

Hoy vamos a coger todo lo que hemos aprendido y transformar nuestras diferentes pruebas en un CRUD de Incidencias. 

Antes de nada, ¿qué es eso? CRUD es un acrónimo de CREATE, READ, UPDATE Y DELETE. Cuando alguien nos habla de este término, a lo que se refiere es a un proyecto que permite realizar estas operaciones sobre una o más entidades.

En los diferentes commits que he hecho estos dos días he ido añadiendo operación por operación los diversos cambios en un nuevo Controlador (IncidenciasController), y añadiendo las diferentes JSPs:


Creo que se pueden seguir muy fácilmente, por lo que esta vez no voy a comentar nada del código utilizado.

En el último commit, he eliminado todas las páginas y código que ya no se utilizan, son las que creamos en las primeras entregas para repasar conceptos básicos.

Aunque seguiremos basándonos en este proyecto en futuros artículos, no realizaremos cambios sobre él. Las modificaciones serán a través de forks, así siempre tendremos el ejemplo de un CRUD básico funcionando.




Si tenéis cualquier duda o problemas podéis contactar conmigo por el correo de contacto habitual: tecnifica2@gmail.com

Nos vemos pronto.