Anteriormente denominado de Azure Data Warehouse, o Azure Synapse Analytics é uma plataforma completa para análise de ambientes de Data Warehouse e sistemas de Big Data. O Synapse Analytics reúne numa só plataforma diversas tecnologias como SQL, Spark, Pipelines de integração e ETL/ELT. Todos os componentes possuem uma forte integração com diversos outros recursos do ambiente de Azure.
Figura 1 – Antigo SQL DW X AZURE SYNAPSE ANALYTICS
O principal componente do Azure Synapse é o SQL Pool, que tem duas versões: a primeira o Dedicated SQL Pool, que corresponde ao antigo Azure SQL DW; e a segunda o Serveless SQL Pool. A principal diferença entre as duas versões reside na forma de processamento dos dados. A versão dedicada (Dedicated SQL Pool) utiliza processamento distribuído, permitindo a execução de consultas e análises com alto desempenho, já que o armazenamento dos dados ocorre em tabelas relacionais, num modelo colunar. Esta organização permite uma redução significativa dos custos de armazenamento da informação, além de melhorar o desempenho das consultas.
O SQL Pool Dedicado não é alocado de forma automática, sendo necessário realizar o seu provisionamento baseado nas regras de negócio para cada cenário. Este possui um custo associado que é definido pela quantidade de processamento que vai ser alocado para a sua execução e é cobrado enquanto o serviço permanece ativo, mesmo que não esteja em uso. O SQL Pool Dedicado possui uma arquitetura baseada em nós, divididos em dois tipos (tal como podemos ver na Figura 2 DEDICATED SQL POOL):
- Um nó master ou Control Node, responsável por interagir com as aplicações e conexões, e por distribuir as consultas a serem executadas, de forma paralela, em cada nó de computação;
- Nós de computação ou Computer Node que efetivamente realizam o processamento das consultas enviadas pelo nó master. Este podem variar entre 1 e 60 nós de computação.
Figura 2 – DEDICATED SQL POOL
O SQL Pool Serverless tem algumas funções específicas e funciona de forma diferente do SQL Pool Dedicado. O SQL Pool Serverless é uma camada de abstração que permite a consulta dos dados do Data Lake (ADLS2), utilizando a sintaxe T-SQL para a análise de dados, sem a necessidade de copiar ou carregar os dados para um ponto específico, ao contrário do SQL Pool Dedicado. O modelo Serverless é provisionado automaticamente, permitindo realizar a consulta dos dados de forma imediata. Este serviço segue o conceito de pay-as-you-go, cobrando apenas quando existem dados processados por consultas.
Figura 3 – SERVERLESS SQL POOL
Além do Dedicated SQL Pool e Serverless, o Azure Synapse Analytics conta ainda com o Apache Spark para Azure Synapse. É assim possível criar um Spark Pool, que se destaca pela sua eficiência e elevada velocidade de processamento. O processo de provisionamento é bastante simples, sendo feito utilizando Azure Synapse Studio. Para além do que já foi descrito, é ainda de destacar as diversas bibliotecas de Anaconda pré-instaladas, que incluem Machine Learning, análise de dados e visualização e outras componentes de Spark Pools, onde se incluem Spark Core, Spark SQL, Mlib e GraphX.
Figura 4 – APACHE SPARK PARA AZURE SYNAPSE
O Azure Synapse Analytics possui também recursos para a integração de dados, utilizando o Azure Data Factory como base. É possível utilizar os recursos através de três grupos de atividades:
- Movimentação de dados – Permite a cópia de dados utilizando diversos conetores para inúmeros cenários, desde ambientes Cloud a ambientes On-Premises. Como exemplo, é possível conectar ao S3 (Serviço de Storage da AWS) e copiar os dados para um Azure SQL por exemplo.
- Transformação de dados – Permite que sejam executadas diversas atividades em recursos externos ao Synapse, como por exemplo Stored Procedures em Azure SQL ou SQL Server, executar notebooks do Azure Databricks e muito mais.
- Atividades de controlo – Utilizam diversos recursos para enriquecer o desenvolvimento do pipeline como por exemplo: Filtros, For Each, Until e Pesquisa.
Adicionalmente a tudo o que já foi mencionado, a plataforma do Azure Synapse Analytics inclui inúmeros recursos de Machine Learning (ML) como uma solução integrada, já que é possível através das diversas fontes de dados e de pipelines, preparar estes mesmos dados para consumo dos modelos de ML. A juntar a isto, tal como foi mencionado anteriormente, é possível utilizar o Spark Mllib no Azure Synapse para treinar os seus modelos, bem como utilizar outras bibliotecas como o Scikit Learn.
É inegável que o Azure Synapse Analytics apresenta uma solução completa e transversal de um processo de engenharia de dados ou de ciência de dados, com diversas ferramentas que permitem um fluxo de trabalho harmonioso. No entanto, é importante compreender a real necessidade de cada uma das soluções, de forma a encontrar um ponto de equilíbrio entre a real necessidade e a facilidade de adoção de cada um dos pilares do Azure Synapse Analytics.
Referências:
Flávio Farias
Senior Consultant