Databricks: Introducción a Spark en la nube

  • Tiempo de lectura:17 minutos de lectura
  • Autor de la entrada:
  • Última modificación de la entrada:04/04/2025

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 de Databricks

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 y es posible crear directorios separados para diferentes unidades o equipos.

Un clúster de Databricks tiene dos modos: Estándar y Alta Concurrencia. El clúster de alta concurrencia (High Concurrency) soporta los lenguajes de programación Python, R y SQL mientras que el clúster Estándar (Standard) soporta los lenguajes Scala, Java, Python, R y SQL. También 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 de datos como Power BI.

Es importante tener en cuenta herramientas como Azure Data Factory (ADF) en Azure, ya que estas pipelines de datos nos pueden ayudar a configurar y a invocar los trabajos de Databricks mediante variables. Además, de esta forma también podremos establecer dependencias entre notebooks fácilmente y nos ayudará en las tareas de debug.

¿Quieres Convertirte en experto en Ingeniería de Datos?

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.

Leer: Cómo Optimizar Clústers en Databricks

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

También 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

Databricks SQL

Databricks SQL es una herramienta que nos permite realizar análisis de datos y operar nuestra arquitectura de Data Warehouse sobre el ecosistema de Databricks. Esta herramienta es accesible desde la interfaz web de Databricks y proporciona un editor de SQL nativo para consultar datos en nuestro Data Lake y Data Warehouse o Data Lakehouse.

Delta Lake Databricks Logo

Delta Lake

proporciona capacidades adicionales sobre el formato de datos Parquet. Entre estas capacidades se encuentra el soporte a las propiedades ACID, posibilitando transacciones sobre nuestro data lake. También es posible recuperar una versión anterior de un dato o de una tabla (time travel), por lo que resulta muy útil para garantizar el cumplimiento de determinadas regulaciones.

Alternativa en Azure: 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.

Te recomiendo leer el artículo acerca de HDInsight para conocer las diferencias más destacadas.

También, puedes conocer la alternativa en AWS: Amazon EMR.

Siguientes Pasos, Formación y Curso

Aquí tienes mi propio curso para que aprendas de forma eficiente Databricks, para cualquier nivel:

Curso de Databricks

Curso de Introducción a Databricks

Este curso te preparará para comprender y sacar todo el partido posible al ecosistema de Databricks.

Explorarás conceptos fundamentales como la arquitectura de Databricks, los tipos de clústeres, Delta Lake, Unity Catalog y la integración con Azure Data Lake Storage.

En las secciones prácticas, pondrás manos a la obra utilizando la interfaz gráfica, configurando clústeres, trabajando con notebooks, gestionando costes y securizando accesos

También, tienes este libro disponible en Amazon: Beginning Apache Spark Using Azure Databricks

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

Preguntas Frecuentes – 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.

¿Qué lenguaje es recomendado para los trabajos de Spark en Databricks?

Para el clúster estándar de Databricks, Scala es el lenguaje recomendado para desarrollar trabajos de Spark. Apache Spark está desarrollado en Scala y es el núcleo de Databricks, aportando mejor rendimiento que Python y que SQL.



Esta entrada tiene un comentario

  1. Jeanett

    Hola, como puedo contratar Databricks en Mexico, conoces algun asesor, que pueda contactar?

Deja una respuesta