Cloud Computing

Databricks: Qué es y características

¿Quieres saber más sobre Databricks? En este post explicamos qué es, sus características, componentes, beneficios y sus diferencias con Azure Data Factory.

Publicado el 01 de Agosto de 2022
Compartir

Qué es Databricks

Databricks consiste en una plataforma interactiva y colaborativa en la nube basada Apache Spark que se emplea para el proceso, análisis y transformación de datos, facilitando el diseño de modelos de aprendizaje automático complejos (Machine Learning).

Su creación y desarrollo estuvo a cargo de los fundadores de Apache Spark.

Consta de una arquitectura Data Lakehouse basada en la combinación de los componentes principales de los data warehouses y los data lakes.

La ventaja de esta arquitectura es que ofrece los beneficios de las transacciones ACID (atomicidad, consistencia, aislamiento y durabilidad) con la flexibilidad de almacenar e integrar toda clase de información (datos estructurados, semi estructurados, no estructurados) de forma rentable.

Además, al momento de desarrollar modelos de aprendizaje automático, diseñar informes avanzados (Business Intelligence) o soportar la incorporación de plataformas analíticas de código abierto en la nube no presenta tantas dificultades porque el almacenamiento de los datos es escalable y tiene estándares de datos de código abierto.

Componentes principales de Databricks

  1. Clúster. En Databricks encontraremos 2 tipos:

    • El clúster interactivo, con el cual los usuarios pueden explorar los datos

    • El clúster de trabajo, con el que se ejecutan los trabajos necesarios

    Un clúster a su vez cuenta con dos tipos de nodos, el nodo controlador que se encarga de coordinar y distribuir tareas, y los nodos trabajadores que ejecutan las tareas de procesamiento. Para un procesamiento más rápido, se recomienda tener varios nodos trabajadores.

  2. Databases / tables. Una base de datos de Databricks consiste en una colección de tablas. Para crearla, debe haber un clúster en ejecución. Las tablas son una colección de datos estructurados. Se generan utilizando el archivo presente en el almacenamiento. Encontraremos dos tipos de tablas:

    • Globales: que pueden ser consultas a través de cualquier clúster

    • Locales: que solo están disponible para el clúster donde se crearon

  3. Notebook (Cuaderno). En este componente se escribe el código de la lógica de transformación de los datos (comandos, visualizaciones, texto narrativo). Admite diferentes lenguajes de programación compatibles con Spark, tales como SQL, Scala, R, Python o Java. Los usuarios pueden ejecutar el código del notebook mediante un clúster interactivo, y extraer los datos usando Scala, Python, etc.

  4. Libraries (bibliotecas). Las bibliotecas son paquetes de comandos predefinidos para realizar alguna tarea que se incluye en el Notebook. Databricks proporciona muchas bibliotecas, pero permite instalar bibliotecas de terceros en el clúster de Spark y el alcance de estas puede definirse a nivel del clúster o a nivel del Notebook.

  5. Jobs (trabajos). Los Jobs automatizados ayudan a la ejecución del código de un Notebook de forma programada o inmediata. Los trabajos se pueden configurar de manera diferente acorde al clúster donde se ejecute, y en caso de algún error durante la configuración se pueden volver a ejecutar individualmente o en grupos.
    Lo anterior será posible si se monitorea la ejecución del job y se programan notificaciones.

  6. WorkSpace (Espacio de trabajo). Un WorkSpace es un área donde se administran y acceden todos los datos, componentes (Notebooks, Libraries, dashboards, etc.) u otros objetos de Databricks organizados en formato de carpeta. El acceso a estos recursos puede detallarse mediante un control de acceso que posibilite a diferentes usuarios trabajar sobre un mismo WorkSpace utilizando solo aquellos recursos donde se le otorgue accesos.

Características de Databricks

  1. Automatización de tareas. La automatización de tareas reduce el número de errores y el tiempo de implementación. En Databricks, la ejecución automatizada de las tareas se logra a través de:

    • Workflows (flujos de trabajos con jobs)
    • Delta Live Tables

    Con esta última, se simplifica la ejecución de las tareas, el monitoreo de los clústeres y de la calidad de los datos.

  2. Colaboración. La arquitectura de Databricks facilita una colaboración entre diversos equipos multifuncionales (científicos de datos y analistas empresariales) de forma segura, gracias a que Databricks dispone de un plano de control y un plano de datos para su operación, así administra los servicios en backend y procesa los datos respectivamente. De este modo, los usuarios acceden a un entorno de trabajo donde compartir conjuntos de datos, explorar la información, modelar datos, integrar nuevo código fuente, crear visualizaciones o aplicaciones de aprendizaje automático de manera efectiva.

  3. Seguridad integrada. Databricks cuenta con un Centro de seguridad y confianza que contempla una serie de capas de seguridad para abarcar las necesidades del gobierno de datos. Entre estas, se encuentran:

    • Unity Catalog. Desde aquí se gestionan las reglas de gobierno de datos para otorgar, de forma selectiva, los accesos a los espacios de trabajo, los metadatos y al almacenamiento mediante las identidades a nivel de cuenta.

    • Delta Sharing. Que trata del protocolo de seguridad desarrollado por Databricks para compartir datos con otras organizaciones.

    • Consola de administración o API de control de acceso a tablas. Útil para habilitar el acceso a los conjuntos de datos.

    • Credenciales de IAM (Identity and Access Management). Facilita la autenticación de los usuarios al iniciar sesión en Databricks utilizando credenciales de rol de IAM para acceder a los almacenes de datos automáticamente.

    Por otra parte, incluye:

    • Políticas de configuración del clúster. Que sirven para controlar el acceso a los mismos.

    • Registros de auditoría. Necesarios para tener transparencia de los accesos, acciones y operaciones de los usuarios dentro del área de trabajo.

Imagen 0 en Databricks: Qué es y características

Beneficios de Databricks

Entre los beneficios a destacar de Databricks se pueden mencionar los siguientes:

  • Adaptabilidad: Databricks puede interactuar con los lenguajes de programación soportados por Apache Spark, pero además en el backend tiene un Language API para incrementar la adaptabilidad con otras aplicaciones de Big Data.

  • Escalabilidad: Al tratarse de una plataforma totalmente administrada y sencilla de configurar con unos pocos clics permite optimizar el entorno para escalar automáticamente según la demanda.

  • Integración: Al ser una plataforma en la nube, Databricks se integra rápidamente a otras soluciones de Big Data disponibles en múltiples proveedores como AWS, Google Cloud o Microsoft Azure. Por ejemplo, en aplicaciones de Machine Learning los resultados se pueden extraer en dashboards de Power BI utilizando un conector Databricks.

Dentro de la nube de Microsoft se ofrece Azure Databricks como un servicio optimizado para entornos de SQL, desarrollar aplicaciones con un alto consumo de datos, crear múltiples consultas SQL en Data Lakes, diseñar dashboards para visualizar y analizar los resultados. Esto es dado que, se integra con varias fuentes de datos tales como Azure Data Lake storage, Blog storage, Azure Cosmos DB, etc.

En Azure Databricks, encontramos funcionalidades del clúster de Apache Spark que incluye los siguientes componentes:

  • GraphX. Para ayudar a la exploración de datos, los cálculos de grafos, los análisis cognitivos, entre otros.
  • MLlib. Para incluir algoritmos y utilidades comunes de Machine learning como la agrupación y clasificación en clústeres, la reducción de dimensionalidad y la regresión.
  • Spark Core API. Para facilitar la compatibilidad con múltiples lenguajes de programación (R, Scala, SQL, Python, etc.).
  • Spark SQL y Dataframes. Para procesar los datos estructurados de forma similar a una tabla en una base de datos relacional o un Dataframe de R o Python que organiza de datos en columnas con nombre.
  • Streaming. Para agilizar el procesamiento en tiempo real de las aplicaciones analíticas.

Databricks versus Azure Data Factory

En el artículo Azure Data Factory: Qué es y características, explico que consiste en un servicio de integración de datos y ETL basado en la nube que le permite crear flujos de trabajo orientados a datos a fin de coordinar el movimiento y la transformación de datos a escala.

Azure Data Factory y Databricks son plataformas con características similares, sin embargo, podemos mencionar algunas diferencias en cuanto a:

  1. Propósito. En Databricks el propósito es facilitar la colaboración entre los ingenieros y científicos de datos para ejecutar tareas de ETL y crear modelos de ML, mientras que en Azure Data Factory el propósito principal es la integración de los datos para movilizar datos a escala y realizar procesos ETL.

  2. Facilidad de uso. En Azure Data Factory ofrece en la interfaz gráfica de usuario la función para arrastrar y soltar objetos para generar los pipelines visualmente. Por su parte, Databricks en los Notebooks se escribe el código fuente a ejecutar de los pipelines.

  3. Flexibilidad en la codificación. Para ajustar el rendimiento de los pipelines, Databricks ofrece gran flexibilidad para actualizar el código backend. Por el contrario, en Azure Data Factory hay menos flexibilidad para modificar el código.

  4. Procesamiento de datos. Azure Data Factory permiten la transmisión por lotes de un gran volumen de datos, pero no admite el procesamiento masivo de datos en tiempo real). Por otro lado, Databricks admite ambas opciones de transmisión a través de Spark API.

Como vemos, la decisión por optar por alguna de estas dos plataformas se limita a unas pocas diferencias entre estas. Es por ello, y por el gran número de aplicaciones de Big Data Analytics en la nube, que las empresas se enfrentan a un dilema al momento de apostar por una solución que satisfaga sus necesidades y les permita aprovechar nuevas oportunidades.

En conclusión, Databricks es una de las plataformas colaborativas de análisis mejor posicionadas en el ecosistema de Big data y BI.


Compartir este post

También te puede interesar...

Tecnología

Qué es Business Intelligence y cuáles son sus beneficios

30 Noviembre 2020 Ariel Iván Cipolla
Tecnología

Procesos ETL: Qué son, fases, beneficios y herramientas

15 Noviembre 2021 Felipe Schneider
Artículos
Ver todos