Azure Databricks


Azure Databricks

Los sistemas de información modernos trabajan con cantidades masivas de datos, con un flujo constante que aumenta cada día a un ritmo exponencial. Este flujo proviene de diferentes fuentes, incluida la información de ventas, datos transaccionales, redes sociales y más. Las organizaciones tienen que trabajar con esta información en procesos que incluyen transformación y agregación para desarrollar aplicaciones que busquen extraer valor de estos datos.

Apache Spark fue desarrollado para procesar esta enorme cantidad de datos. Azure Databricks está construido sobre Apache Spark, abstrayendo la mayoría de las complejidades de implementarlo y con todos los beneficios que vienen con la integración con otros servicios de Azure. 



Apache Spark

Para trabajar con la enorme cantidad de información disponible para los consumidores modernos, se creó Apache Spark. Es un sistema informático distribuido basado en clústeres y un marco muy popular utilizado para big data, con capacidades que brindan velocidad y facilidad de uso, e incluye API que admiten los siguientes casos de uso:
  • Gestión sencilla de clústeres
  • Integración de datos y procedimientos ETL
  • Analítica avanzada interactiva
  • ML y aprendizaje profundo
  • Procesamiento de datos en tiempo real
Puede ejecutarse muy rápidamente en grandes conjuntos de datos gracias a su diseño de procesamiento en memoria que le permite ejecutarse con muy pocas operaciones de lectura / escritura en el disco. Tiene una interfaz similar a SQL y su diseño orientado a objetos hace que sea muy fácil de entender y escribir código para; también tiene una gran comunidad de apoyo.

A pesar de sus numerosos beneficios, Apache Spark tiene sus limitaciones. Estas limitaciones incluyen lo siguiente:
  • Los usuarios deben proporcionar una infraestructura de base de datos para almacenar la información con la que trabajar.
  • La función de procesamiento en memoria hace que su ejecución sea rápida, pero también implica que tiene altos requisitos de memoria.
  • No es adecuado para análisis en tiempo real.
  • Tiene una complejidad inherente con una curva de aprendizaje significativa.
  • Debido a su naturaleza de código abierto, carece de capacitación dedicada y soporte al cliente.


Databricks

Teniendo en cuenta estas y otras limitaciones, se diseñó Databricks. Es una plataforma basada en la nube que usa Apache Spark como backend y se basa en ella para agregar características que incluyen las siguientes:

  • Canalizaciones de datos altamente confiables
  • Ciencia de datos a escala
  • Integración simple del lago de datos
  • Seguridad incorporada
  • Gestión automática de clústeres
Construido como un esfuerzo conjunto de Microsoft y el equipo que inició Apache Spark, Azure Databricks también permite una fácil integración con otros productos de Azure, como Blob Storage y bases de datos SQL, junto con los servicios de AWS, incluidos los buckets S3. Tiene un equipo de soporte dedicado que ayuda a los clientes de la plataforma.

Databricks agiliza y simplifica la configuración y el mantenimiento de clústeres al tiempo que admite diferentes lenguajes, como Scala y Python, lo que facilita a los desarrolladores la creación de canalizaciones ETL. También permite que los equipos de datos tengan una colaboración multifuncional en tiempo real gracias a su espacio de trabajo integrado similar a una computadora portátil, mientras mantiene una cantidad significativa de servicios de backend administrados por Azure Databricks. Los notebooks se pueden usar para crear trabajos que luego se pueden programar, lo que significa que los notebooks desarrollados localmente se pueden implementar en producción fácilmente. Otras características que hacen de Azure Databricks una gran herramienta para cualquier equipo de datos son las siguientes:
  • Una conexión de alta velocidad a todos los recursos de Azure, como las cuentas de almacenamiento.
  • Los clústeres escalan y se terminan automáticamente según el uso.
  • La optimización de SQL.
  • Integración con herramientas de BI como Power BI y Tableau.




Arquitectura

Cada clúster de Databricks es una aplicación de Databricks compuesta por un conjunto de máquinas virtuales preconfiguradas que se ejecutan como recursos de Azure administrados como un solo grupo. Puede especificar la cantidad y el tipo de VM que usará mientras Databricks administra otros parámetros en el backend. El grupo de recursos administrado se implementa y se completa con una red virtual llamada VNet, un grupo de seguridad que administra los permisos de los recursos y una cuenta de almacenamiento que se utilizará, entre otras cosas, como el sistema de archivos Databricks. Una vez que todo está implementado, los usuarios pueden administrar estos clústeres a través de la interfaz de usuario de Azure Databricks. Todos los metadatos utilizados se almacenan en una base de datos de Azure replicada geográficamente y tolerante a fallos. 

El beneficio inmediato que esta arquitectura brinda a los usuarios es que existe una conexión perfecta con Azure, lo que les permite conectar fácilmente Azure Databricks a cualquier recurso dentro de la misma cuenta de Azure y tener un Databricks administrado centralmente desde el centro de control de Azure sin configuración adicional.

Como se mencionó anteriormente, Azure Databricks es una aplicación administrada en la nube de Azure que está compuesta por un plano de control y un plano de datos. El plano de control está en la nube de Azure y aloja servicios como la administración de clústeres y los servicios de trabajos. El plano de datos es un componente que incluye la VNet, NSG y la cuenta de almacenamiento antes mencionadas que se conoce como DBFS.

También puede implementar el plano de datos en una red virtual administrada por el cliente para permitir que los equipos de ingeniería de datos creen y protejan la arquitectura de red de acuerdo con las políticas de su organización. A esto se le llama inyección de VNet.
  



Comentarios

Entradas más populares de este blog

Mejores practicas para migración de datos a Salesforce

AWS Lambda

Modelado de datos en Salesforce