Scale-out + Data Shard (Databases Architecture)

Imaginemos la siguiente situación: somos una empresa y hemos crecido de forma orgánica, pero, se ha acumulado toda nuestra información en una “Monster Database”. ¿Qué tenemos delante nuestro? Claramente tenemos un gran problema, ya que seguramente ésta tendrá un coste (€) alto sumado a que tenemos una base de datos y un gran punto de fallo, sin entrar en detalles de escalabilidad, etc… Podríamos afrontar el problema haciendo un triple salto, aunque seguramente el resultado no sería, pada nada, el esperado (con suerte… quizás si). [Leer más]

ArangoDB multi-model NoSQL Graphs database

Tras el artículo sobre Visualizaciones de Datos hemos querido is buscando alternativas, simples y opensource. Las bases de datos de grafos eran una buena alternativa, como por ejemplo: Neo4j, GraphDB o OrientDB. Pero me habían hablado, bien, de ArangoDB como “JSON + Graph + Key Value” database y era una más que interesante propuesta. Pero veamos un poco más: ¿qué es entonces ArangoDB? ¿Qué es ArangoDB? ArangoDB es una base de datos multi-modelo que combina Clave/Valor, Documentos y Grafos, como ArangoDB Query Language (AQL). [Leer más]

El debate eterno, ¿SQL, o Mongo?

Nuestras queridas bases de datos, amadas veneradas y respetadas por todos los “Dateros” del mundo. Son, sin lugar a duda, el pozo de oro amorfo más valioso de nuestra era. Reiterados autores las describen como “los envases del recurso más preciado de que disponemos”. ¿Pero en qué quedan esas bases reducidas, si no llegan a estar bien administradas? Dentro de las grandes clasificaciones de las tipologías de bases de datos, encontramos las relacionales y las key-values. [Leer más]

Pull data from Twitter and push data to Elasticsearch using Apache NiFi

En este post vamos a realizar un Workflow de conexión a Twitter, a partir de su API, para poder guardarlos, posteriormente, en un Elasticsearch mediante Apache NiFi. La estructura del Workflow es muy simple, tendrá cuatro pasos, los siguientes: Descargar los tweets mediante la conexión a la API de Twitter. Estructurar el fichero de salida de la API a un tipo JSON. Enrutar el fichero al destino aplicando un filtro (opcional). [Leer más]

Data Transformation Pipelines (Apache Nifi, Flink, Kafka y MongoDB) (Parte 1)

Ya en anteriores artículos hemos explicado la importancia de tratar con datos organizados ya que el Big Data como tal, ¡no sirve de nada!. Para ello existen los llamados procesos de transformación (Data Transformation) que consisten, entre otros, a convertir ese Big Data en un Smart & Small Data Concept. Para ello podemos utilizar muchas tecnologías, ya anteriormente hemos hablado de FluentD o bien del Stack ELK (Elasticsearch + Logstash + Kibana) como buenas soluciones para poder crear flows de Data Transformation, mejor dicho, Flows envío y agregación de Datos. [Leer más]

Mi vida y los datos después de la calculadora del colegio

Un dato es un elemento que hace referencia o es representativo de algo. Dicho de otro modo, es la expresión de todo lo que tenemos en la realidad. Los datos son impresiones a las que nosotros les extraemos carácter e información para así entender ésa misma realidad de la que han sido extraídos. Algunos ya se habrán preguntado cosas como donde está el límite de esa definición, hasta que punto se le pueden extraer datos a cierto elementos del día a día y muchas otras. [Leer más]

Apache Zeppelin, analítica rápida y simple para nuestras aplicaciones

Apache Zeppelin es una más que buena solución para poder implimentar visualizaciones de analítica de datos como web notebook. Es decir, podremos generar a partir de su webserver un Dashboard con nuestras analíticas o, también, en formato embedded dentro de nuestras própias aplicaciones. Dichas analíticas o web notebook se crean mediante lenguajes y tecnologçias como son: Spark, SparkSQL, Hive, Elasticsearch, Python, HBase, Angular y conectores JDBC para PostgreSQL o MySQL. [Leer más]

¿Cómo migrar una Base de Datos y no morir en el intento? Migrando a AWS RDS Aurora

He tenido la suerte de poder migrar muchas bases de datos: Oracle, MySQL, MariaDB, MemSQL, Microsoft SQL Server, etc… pero nunca lo había realizado con tanta facilidad como cuando me tocó migrar, recientemente, un MemSQL de tamaño monstruoso hacia AWS RDS Aurora. Utilizando, para ello, el servicio DMS de AWS. Para explicar un poco más y centrando éste artículo solo en RDS Aurora, puedo decir que estamos hablando de una Base de Datos con base MySQL 5. [Leer más]

Moviendo datos mediante AWS Database Migration Service (DMS)

El Servicio Database Migration Service (DMS) es una gran ayuda para el movimiento de datos entre bases de datos, sean externos o internos. En caso que sean externos tendremos que tener en cuenta los costes de Data Moving que tendremos asociados. Rápidamente a partir de un Wizard podremos configurar el servicio DMS que, de entrada, lanzará una base de datos puente (Replication) la cual a partir de un buffer irá guardando de forma temporal los datos que luego, a partir de varios Shard, los guardará en la base de datos definitiva. [Leer más]

Enviando Build Logs de Jenkins a ELK (Elasticsearch + Logstash + Kibana)

Jenkins y ELK (Elasticsearch, Logstash y Kibana) son dos fantásticas herramientas para iniciarnos en DevOps. En nuestro caso usamos Jenkins como Planificador de Tareas (Scheduled Task) aunque, realmente, es casi perversión lo que se puede llegar hacer con Jenkins y todos sus plugins. En éste artículo no hablaremos de Jenkins sinó de la posibilidad de poder mandar sus Log de ejecución a ELK, otra herramienta o Suite de herramientas que ningún DevOps puede dejar en el tintero. [Leer más]