Azure Synapse Analytics - Distribución de componentes

Azure Synapse Analytics es una tecnología que suena cada día más como una opción estable de arquitectura robusta para construir una solución de medio y alto nivel de analítica o datos. Sin embargo, mucho más conocidos son los recursos individuales que provee azure como servicio y puede resultar confuso usarlo.

Este artículo nos ayudará a mapear y entender la orientación de los servicios de Synapse mapeados con algo semejante en servicios individuales de Azure y como se organizan para encontrar todos los elementos bajo los cuales se trabaja diariamente.

Luego de crear nuestro Azure Synapse, tal como vimos en el post anterior, nos dirigimos al recurso y abrimos su interfaz para encontrarnos con lo siguiente:

image

Puede que la primera vez nos pida sincronizar un repositorio para trabajarlo. En dicho caso podemos proceder a sincronizar con un repo de Azure DevOps o GitHub. No mostraremos eso en este post, sino que nos centraremos en el menú.

El menú cuenta con dos secciones, la primera en 3 ítems para construir y la segunda para configurar y monitorear. Analicemos lo que encontraremos aquí:

Menú Data

Data es el espacio donde podemos revisar el contenido de nuestro Storage. Todo lo que llevemos a nuestro Data Lake será visible desde este apartado. Ahora bien, existen distintas secciones en el almacenamiento. Las veremos en las siguientes imágenes como Workspace y Linked. Estas pestañas nos ayudarán a separar la visión de datos en distintos modos.

Linked

Comúnmente contiene dos tipos de elementos que pueden resultarnos familiares a otros productos de data en Azure. Por un lado, tenemos Integration Datasets que será algo similar a los Linked Services de Data Factory. Orígenes de datos con credenciales que luego podemos utilizar para copiar datos de un lugar a otro. Por otro lado, está literalmente los containers del Lake. Si expandemos esta opción y clickeamos nos encontraremos con algo semejante al Azure Storage Explorer.

image

Workspace 

Contiene lo que me gustaría llamar el apartado "estructurado". En esta sección contamos con dos tipos de componentes. Por un lado, el famoso LakeHouse y por otro, los Dedicated SQL Pools antes conocidos como Warehouse. Cuando trabajamos/operamos con archivos al Lake podemos crear Bases de datos y tablas para orientar nuestros archivos en un esquema más estructurado. Estas bases internas al lake tambien se las conoce como LakeHouse. El otro tipo de componente lo podemos hacer aparecer creando el recurso de SQL Dedicated Pool en el portal de azure dentro del recurso de Azure. Al hacerlo aparecerá la sección de Base de datos SQL. El funcionamiento del Pool o la base es la clásica tecnología de Warehouse que existió por mucho tiempo en Azure. Aquella con orientación a almacenamiento columnar y gran velocidad de respuesta a consultas analíticas.

image

Menú Develop

En este apartado aparece la magia analítica. Contiene tres elementos de los cuales dos nos ayudarán a consultar y/o construir las transformaciones y limpiezas complejas de datos.

image

SQL Scripts

Para generar SQL Scripts podemos simplemente explorar los archivos del lake y cuando veamos uno que nos gustaría consultar darle click derecho como muestra la imagen:

image

Esto nos genera el formato de código que SQL Serverless para consultar el Data Lake (Algo semejante a Athena de otro vendor). Nos encontraremos con un SQL Standard que nos permite realizar consultas sintiéndonos como si estuviéramos tratando con una base de datos tradicional con la diferencia que hay cierto código que aclarar contra los archivos. Les indique ese método para fácilmente revisarlo y familiarizarse. Creando uno en blanco tal vez no sabríamos llegar allí.

Todo lo que escribamos aquí puede ser guardado como un procedimiento o script que podemos llamar desde un pipeline.

Notebooks

Ya muchos estamos familiarizados con este apartado. Sobre todo, los data engineers gracias a la tecnología de Jupyter y DataBricks. Aquí nos encontraremos con exactamente eso. Tendremos notebooks disponibles para utilizar los lenguajes más comunes con librería Spark. Se puede crear o utilizar por celda PySpark, Scala, .NET Spark, Spark SQL y SparkR.

Al igual que DataBricks los notebooks necesitarán un motor para funcionar. En esa tecnología llamados Cluster y en Synapse llamados Apache Spark Pools.

Power Bi

De momento la opción más limitada. Nos permite sincronizar a un Power Bi Workspace V2. A partir de ese momento podemos explorar conjuntos de datos publicados en esa Área, visualizar los informes desde esa y editarlos. Estimo que más adelante darán más valor a esta sección que por ahora parece muy poco útil.

Menú Integrate

El último apartado es quien contiene los Pipelines de datos. Fanáticos de Azure Data Factory van a sentirse cómodos en esté menú puesto que podemos crear pipelines con sus elementos varios como el proceso estrella "Copy Data". Está claro que no será idéntico a ADF. Tiene algunas semejanzas y unas pocas diferencias.

Menú Restante

Al final dispondremos de un aparatado de Monitoreo que nos permite visualizar todos los procesos antes mencionados que corren en Synapse. Manage será el dueño de las configuraciones. Aqui podemos visualizar delimitaciones de paquetes, repositorios, pools, etc.

Así concluimos nuestro paseo por Azure Synapse para sentirnos más familiarizados cuando comencemos a utilizarlo luego de crearlo. Ya verán que a medida que más lo probamos se siente bastante cómodo tener todo a mano en una misma interfaz. Espero que esto los ayude.