El passat novembre Microsoft va presentar Azure Synapse. Saps què és? Ho expliquem en aquesta entrada.
El novembre de 2019 Microsoft anunciava el llançament d'Azure Synapse. En què consisteix i com es relaciona amb altres serveis d'anàlisi de dades de la companyia de Redmond?
Azure Synapse Analytics és un servei d'anàlisi il·limitat d'informació orientat a grans empreses que es va presentar com l'evolució d'Azure SQL Data Warehouse (SQL DW) i que uneix l'emmagatzematge de dades empresarials i l'anàlisi de macrodades o big data.
Synapse aporta un únic servei per a totes les càrregues de treball a l'hora de processar, administrar i servir dades per a les necessitats immediates de business intelligence i predicció de dades. Això últim és possible gràcies a la seva integració amb Power BI i Azure Machine Learning i a la capacitat de Synapse per integrar models matemàtics de machine learning mitjançant el format ONNX. Ofereix la llibertat de gestionar i consultar quantitats ingents d'informació tant a petició serverless (un tipus de desplegament que escala automàticament la potència a demanda quan es disposa de grans quantitats de dades) per a l'exploració de dades i l'anàlisi ad hoc, o amb recursos aprovisionats, a escala.
Com opera Azure Synapse Analytics?
El servei de Microsoft és un SaaS (Software as a Service) i es pot fer servir sota demanda per executar-se només quan calgui (la qual cosa té incidència en l'estalvi de costos). Té quatre components:
- SQL Analytics amb anàlisi basada en T-SQL complet: grup d'SQL (pagament per unitats de computació) i SQL a petició (pagament per TB processats).
- Apache Spark totalment integrat.
- Connectors amb múltiples fonts de dades.
Azure Synapse fa servir Azure Data Lake Storage Gen2 com a magatzem de dades i un model de dades consistent que incorpora apartats d'administració, monitorització i gestió de metadades. A l'apartat de seguretat permet protegir, supervisar i administrar les solucions de dades i anàlisi, per exemple, emprant inicis de sessió únics i la integració d'Azure Active Directory.
Pel que fa a la compatibilitat de llenguatges de programació, ofereix la possibilitat d'escollir d'entre diversos, com SQL, Python, .NET, Java, Scala i R. Això el converteix en un sistema molt adequat per a diverses càrregues de treball d'anàlisi i diversos perfils d'ingeniers.
Tot s'engloba dins del Synapse Analytics Studio que facilita integrar intel·ligència artificial, machine learning, IoT, aplicacions intel·ligents o business intelligence, dins d'una mateixa plataforma unificada.
Treballant amb T-SQL i Spark
Respecte als temps d'execució, permet tenir dos motors. Per una banda, el d'SQL tradicional (T-SQL) i per altra, el motor d'Spark. D'aquesta manera serà possible emprar T-SQL, per exemple, pel processament per lots, streaming i interactiu, o Spark quan calgui processament de big data amb Python, Scala, R o .NET.
Aquí enllaça directament amb Azure Databricks, el servei d'anàlisi de macrodades i intel·ligència artificial basat en Apache Spark que permet aplicar escalabilitat automàtica i col·laborar en projectes compartits en una àrea de treball interactiva. Azure Synapse ofereix un connector d'alt rendiment entre ambdós serveis, la qual cosa possibilita una transferència ràpida de dades. Això es tradueix en la possibilitat de continuar fent servir Azure Data Bricks (una optimització d'Apache Spark) amb una arquitectura de dades especialitzada en extreure, transformar i carregar (ETL) càrregues de treball per preparar i donar forma a les dades a escala. Per la seva banda, Azure Synapse i Azure Databricks poden executar anàlisis a les mateixes dades a Azure Data Lake Storage.
Azure Synapse i Azure Databricks posen a la nostra disposició oportunitats encara més grans per combinar solucions analítiques, de business intelligence i de data science amb un data lake compartit entre serveis.
De camí a la màxima compatibilitat i potència
En principi, el servei de Microsoft es presenta com una solució a dos problemes fonamentals als quals han de fer front les empreses. El primer és el de la compatibilitat. El sistema d'anàlisi de dades que integra té la capacitat de treballar tant amb sistemes tradicionals com amb dades no estructurades i diverses fonts de dades. D'aquesta manera és capaç d'analitzar dades emmagatzemades en sistemes com bases de dades de clients (amb noms i adreces ubicades en files i columnes ordenades tipus full de càlcul) i també amb dades emmagatzemades en un data lake en format parquet.
Tanmateix, també ofereix més versatilitat per gestionar de manera automàtica tasques amb les quals construir un sistema per analitzar dades. Aquesta potència té, com a conseqüència directa una reducció en la quantitat de feina que necessiten els programadors i, per extensió, dels temps de desenvolupament de projectes (és el primer i únic sistema d'anàlisi que ha executat totes les consultes de TPC-H a escala de petabyte).
Azure Synapse aconsegueix que projectes que requereixen diversos mesos es puguin completar en dies o que consultes a bases de dades complexes que duren minuts o hores ara triguin pocs segons.
Consultes reeixides en mil·lisegons
A més d'escalar els recursos de procés i d'emmagatzematge per separat, Azure Synapse Analytics destaca per la seva capacitat de caché de resultats (disposa d'una caché totalment administrada d'1 TB). Així, quan es fa una consulta es guarda en aquesta caché per accelerar la consulta següent que consumeixi el mateix tipus de dades.
Aquesta és una de les claus perquè sigui capaç de tornar respostes en mil·lisegons. La memòria caché sobreviu a les operacions de pausa, represa i escala (que es poden activar molt ràpidament mitjançant una arquitectura de processament massiu en paral·lel dissenyada per al núvol).
Càrregues de treball i rendiment
També cal destacar la seva compatibilitat total amb JSON, l'emmascarament de dades per garantir nivells adequats de seguretat, el suport de SSDT (SQL Server Data Tools) i especialment la gestió de la càrrega de treball (workload) i la manera en què es pot optimitzar i aïllar. Aquí múltiples càrregues de treball comparteixen recursos implementats. Això fa que sigui possible crear un workload i assignar-li la quantitat de CPU i concurrència.
En cas de disposar, per exemple, de 1000 DWU (data warehouse units), Azure Synapse facilita l'operació d'assignar un percentatge de treball a vendes i un altre a màrqueting (per exemple 60% a un i 40% a l'altre). Es tracta de facilitar l'administració i prioritzar consultes a la base de dades.
Pel que fa a la preparacó i ingesta de dades suporta streaming de manera integrada (Native SQL Streaming) per generar anàlisi, per exemple, amb integració amb Event Hub o amb un IoT Hub. Ho aconsegueix assolint un rendiment elevat de fins a 200 MB/segon, latències d'entrega en segons, escales de rendiment d'ingesta amb escala de computació i capacitats d'anàlisi amb consultes bassades en Microsoft SQL per a combinacions, agregacions, filtres...
Algunes característiques addicionals
Per últim, no podem acabar sense destacar altres aspectes interessants d'Azure Synapse que ajuden a accelerar la càrrega de dades i facilitar els processos. Entre ells hi ha:
- Per a la preparació i càrregues de dades l'ordre Copy fa que ja no calguin taules externes, perquè permet carregar taules directament dins la base de dades.
- Ofereix total compatibilitat amb CVS estàndard: salts de línia i delimitadors personalitzats i dates SQL.
- Brinda una selecció d'arxius controlada per l'usuari (suport de comodí).
- Suport per a machine learning: es poden crear models de machine learning i guardar-los en format ONNX, que es guarden dins del magatzem de dades Azure Synapse i es poden fer servir amb la instrucció nativa PREDICT.
- Integració amb el data lake: des d'Azure Synapse es llegeixen els arxius al data lake en format parquet, que assoleix un rendiment molt superior millorant l'execució de Polybase per damunt de 13x.
En definitiva, Azure Synapse és un servei que garanteix la línia de desenvolupament per assegurar als clients d'SQL DW poder seguir executant les càrregues de treball d'emmagatzematge de dades existents en producció i beneficiar-se automàticament de les noves funcionalitats.