Databricks: Introducción a Spark en la nube

Última actualización:

En esta entrada vamos a entender en qué consiste Databricks. Cómo nos puede ayudar esta solución cloud en nuestras necesidades de procesamiento y analítica Big Data y cuáles son sus particularidades para poder tomar decisiones con criterio.

Qué es Databricks

¿Qué es Databricks?

Databricks es el nombre de la plataforma analítica de datos basada en Apache Spark desarrollada por la compañía con el mismo nombre. La empresa se fundó en 2013 con los creadores y los desarrolladores principales de Spark. Permite hacer analítica Big Data e inteligencia artificial con Spark de una forma sencilla y colaborativa.

Esta plataforma está disponible como servicio cloud en Microsoft Azure y Amazon Web Services (AWS).

Databricks contiene muchas funcionalidades que la hacen una solución analítica bastante completa. Aun así, depende de servicios adicionales como almacenamientos externos de datos para poder convertirse en la pieza central de un sistema analítico empresarial completo como Data Warehouse o Data Lake.

Es una plataforma que permite múltiples casos de uso como procesamiento batch, streaming y machine learning.

Características

Permite auto-escalar y dimensionar entornos de Apache Spark de forma sencilla en función de las necesidades. También es posible terminar automáticamente estos clústers. De esta forma, se facilitan los despliegues y se acelera la instalación y configuración de los entornos. Con la opción serverless se puede abstraer toda la complejidad alrededor de la infraestructura y obtener directamente acceso al servicio. Así se facilita su uso por equipos independientes que necesiten recursos volátiles y despliegues ad-hoc.

Ecosistema de Databricks en Microsoft Azure
Ecosistema de Databricks en Microsoft Azure

Incluye proyectos colaborativos y espacios de trabajo interactivos llamados notebooks. Estos pueden servir para desarrollar procesos y prototipos de transformación y análisis y más adelante ponerlos en producción con el planificador. Están integrados con sistemas de control de versiones como Github y Bitbucket.

Los lenguajes de programación soportados en Databricks son Python, Scala, Java, R y SQL. Se complementan con librerías y frameworks como Tensorflow, PyTorch, GraphX, Keras y scikit-learn.

Soporta cifrados de datos con la última versión de TLS y se integra con los servicios AWS KMS (Key Management System) y Azure Key Vault. En cuanto a su seguridad, es compatible con Azure Active Directory para definir políticas de acceso, también se pueden definir los roles y SLAs.

Ecosistema de Databricks en Amazon AWS
Ecosistema de Databricks en AWS

Además, la plataforma puede realizar backups periódicos automáticos de los sistemas y sus metadatos para evitar la pérdida de información. También genera alertas y capacidad de monitorización de los procesos, generando reintentos cuando sea necesario.

¿Cómo usar Databricks?

Databricks no es responsable de la capa de persistencia de los datos. Esto quiere decir que los datos se procesan con Spark pero antes deben estar almacenados en algún componente adicional. Algunos ejemplos de estos componentes son Azure Blob Storage, Amazon S3, ADLS (Azure Data Lake Storage), Azure SQL Data Warehouse o herramientas compatibles con JDBC y ODBC.

Al evaluar Databricks como una solución Cloud, debemos prestar atención también al resto de servicios con los que se integra de forma nativa y para los que se optimiza la operativa. Tanto en AWS como en Azure existen integraciones con servicios de ingesta de datos como Azure Data Factory, de almacenamiento y de visualización como PowerBI.

Nos permite ejecutar trabajos Spark de tres formas: mediante Notebook, mediante su JAR y mediante spark-submit.

El sistema está preparado para trabajar a través de la interfaz web, desde la que se pueden ejecutar y monitorizar trabajos. Además, existe una herramienta de línea de comandos: Databricks CLI. Esta utilidad se conecta a la API REST de Databricks y, una vez autenticada, puede ejecutar ciertos comandos. Es una herramienta que aún se encuentra en desarrollo.

Databricks Community

Databricks community es la versión de Databricks gratuita. Permite usar un pequeño clúster con recursos limitados y notebooks no colaborativos. La versión de pago no tiene estas limitaciones y aumenta las capacidades.

Databricks Community Edition Dashboard
Databricks Community Edition Dashboard

Una vez hemos hecho login en la plataforma, nos permitirá hacer un tutorial rápido que nos explica la funcionalidad básica:

  • Crear un clúster de Spark
  • Asociar notebooks al clúster y ejecutar comandos
  • Crear tablas de datos
  • Hacer consultas y visualizar los datos
  • Manipular y transformar los datos

El primer paso es crear un nuevo clúster. Esto se puede hacer desde la pestaña clusters. Nos permite elegir el nombre y la versión del runtime. En este caso elegimos 6.5: Con Scala 2.11 y Spark 2.4.5. La versión Community crea un clúster con un driver de 15GB de RAM.

Creación de nuevo Cluster en Databricks Community
Creación de nuevo Cluster en Databricks Community

Además, es posible configurar desde aquí las variables de entorno y la configuración específica de Spark. Una vez que hemos creado el clúster, para poder usarlo debemos desplegarlo y esperar a que se encuentre en el estado “Running”.

Clusters en Databricks Community
Clusters en Databricks Community

Con Databricks Community no podemos ejecutar jobs de Spark desde ficheros JAR, solamente desde notebooks. Es posible integrar los notebooks con el sistema de control de versiones Git en Github o Bitbucket.

Integración de un notebook con Git
Integración con Git en Databricks Community

Cuando creamos y accedemos a un notebook, podemos escribir consultas, visualizar datos y realizar transformaciones. Para ejecutar cada bloque existe un icono a su derecha, pero previamente debemos asociar el notebook a un clúster en ejecución.

Ejemplo de un Notebook
Ejemplo de Notebook en Databricks Community

Databricks integra varias herramientas de logging y de monitorización. Entre ellas se encuentra la Spark UI, a la que accedemos desde dentro de una pestaña en el clúster que hemos desplegado. Aquí tenemos el detalle de los trabajos que hemos ejecutado en el clúster de Spark desde el notebook.

Spark UI en un clúster de prueba
Spark UI en Databricks Community

Delta Lake

Delta Lake es la capa de almacenamiento open source desarrollada para Apache Spark y Databricks. Esta capa se sitúa sobre el almacenamiento existente en el lago de datos, como puede ser ADLS y actúa proporcionando transacciones ACID y gestión avanzada de metadatos.

Delta Lake Databricks Logo

Además, Delta Lake incluye un motor de consultas compatible con Apache Spark que permite acelerar las operaciones del lago mediante técnicas de optimizaciones en índices y compactación, que mejoran el rendimiento de las consultas interactivas.

Todos los datos almacenados en Delta Lake usan el formato de Apache Parquet y permite especificar un esquema para los datos, estableciendo sus columnas y sus tipos. También es posible usar las tablas definidas (Delta Tables) para escribir y leer directamente los datos con Spark Streaming.

Databricks vs HDInsight

HDInsight es el servicio para analítica Big Data de Microsoft Azure con el que se pueden desplegar clústers de servicios Big Data como Hadoop, Apache Spark, Apache Hive, Apache Kafka, etc.

En HDInsight existen varios tipos de clúster predefinidos con los componentes que cubren los casos de uso más habituales como Streaming, Data Warehouse o Machine Learning.

HDInsight está integrado con otros servicios del catálogo de Microsoft Azure, y es compatible con otras soluciones como Databricks. HDInsight podría cubrir la capa de almacenamiento persistente que necesita Databricks para formar una solución Big Data completa.

Siguientes Pasos y Formación

Puedes aprender más de este ecosistema en el blog de Databricks.

Además, si estás interesado en la formación oficial de la plataforma y de Apache Spark, puedes acceder al portal de formación y de certificación de Databricks llamado Databricks Academy.

Aquí podrás aprender sobre todo el ecosistema y conseguir las certificaciones oficiales para convertirte en experto.

Preguntas Frecuentes Databricks – FAQ

¿Para qué se usa Databricks?

Databricks es una herramienta cloud usada para procesar y realizar transformaciones sobre Big Data. También permite explorar estos datos usando modelos de inteligencia artificial. Está basada en Apache Spark.

¿Databricks es gratuito?

Existe una versión gratuita llamada Databricks Community Edition que permite usar un pequeño clúster y notebooks con capacidad limitada. La versión de pago aumenta estas capacidades.

¿Qué es un notebook en Databricks?

Un notebook es una herramienta web que presenta un documento colaborativo sobre el que escribir código ejecutable y presentar visualizaciones de datos. Es la herramienta principal de trabajo en Databricks.


A continuación, el vídeo-resumen. ¡No te lo pierdas!


¡Echa un ojo a mi lista de reproducción de Big Data en Youtube!

Si te ayuda el contenido del blog, por favor considera unirte a la lista de correo para reconocer el trabajo!

Deja una respuesta