A Microsoft elevou seus serviços do Azure a patamares empresariais, integrando funcionalidades de ponta, como gestão e análise de dados.
Com a decisão de migrar para a nuvem, a Microsoft lançou o Azure SQL Data Warehouse. Este serviço, agora conhecido como Azure Synapse Dedicated SQL Pool, é um sistema de gerenciamento de banco de dados flexível que combina a escalabilidade de um data warehouse com recursos elásticos.
O que é o Azure SQL Data Warehouse?
O Azure SQL Data Warehouse, atualmente denominado Azure Synapse Dedicated SQL Pool, é um data warehouse baseado na nuvem que permite a criação e implementação de data warehouses no Microsoft Azure. Esta solução é capaz de processar grandes volumes de dados, tanto relacionais quanto não relacionais, oferecendo recursos de armazenamento de dados SQL e uma plataforma de computação em nuvem.
Ele oferece suporte nativo a servidores SQL e permite migrar servidores SQL existentes para o SQL Data Warehouse, utilizando as mesmas consultas e estruturas. Além disso, os usuários podem ajustar a capacidade de seus recursos de data warehouse instantaneamente, podendo aumentar, pausar ou reduzir a escala.
Este serviço é ideal para soluções de data warehouse completas e baseadas em SQL, de nível empresarial. Ele também pode ser utilizado em diversas aplicações:
- Migração de data warehouses existentes (locais) para a nuvem.
- Fornecimento de uma solução de data warehouse para aplicativos e serviços que requerem armazenamento e recuperação de dados em tempo real, como aplicativos web.
- Implementação de uma solução de data warehouse híbrida, conectando o Data Warehouse hospedado no Azure com o SQL Server local.
O grande diferencial do Azure SQL Data Warehouse reside em sua elasticidade, permitindo escalar e gerenciar recursos de armazenamento e computação de forma independente. Isso resulta em uma plataforma vantajosa para os usuários, que pagam apenas pelos recursos que utilizam e quando os utilizam.
A parte computacional do Azure SQL Data Warehouse é baseada na Unidade de Data Warehouse (DWU), que monitora recursos como E/S de armazenamento e memória em todos os nós de computação participantes.
O Azure SQL Data Warehouse oferece segurança de conexão, permitindo limitar o acesso a endereços IP ou faixas de IP específicas por meio de regras de firewall. A integração com o Azure Active Directory (AAD) possibilita a conexão ao Azure SQL Data Warehouse usando identidades do Azure AD.
A criptografia em várias camadas protege os dados em repouso, em trânsito e em uso, prevenindo o uso indevido. Ferramentas adicionais estão disponíveis para auditoria, monitoramento e identificação de violações de segurança.
Em conjunto com outras ferramentas da Microsoft, o Azure SQL Data Warehouse proporciona um desempenho excepcional, representando uma grande vantagem em relação a outros serviços similares no mercado.
Pool SQL Dedicado do Azure Synapse
O Azure Synapse Dedicated SQL Pool (anteriormente Azure SQL Data Warehouse) é um banco de dados de processamento paralelo massivo, semelhante a outras tecnologias de expansão baseadas em colunas, como Snowflake e Amazon Redshift. Embora se assemelhe a um SQL Server tradicional para o usuário final, ele armazena e processa dados em diferentes nós.
Essa arquitetura pode melhorar significativamente o desempenho de data warehouses maiores que alguns Terabytes, embora soluções alternativas possam ser mais adequadas para implementações menores.
A arquitetura subjacente difere consideravelmente dos SQL Servers tradicionais, o que implica em diferenças na sintaxe e métodos de desenvolvimento.
As distribuições são mapeadas para nós de computação em um pool SQL dedicado. O pool realoca essas distribuições conforme você adquire mais recursos computacionais.
Você pode importar grandes volumes de dados utilizando consultas SQL PolyBase e, em seguida, usar o mecanismo de consulta distribuída para análises de alto desempenho.
O pool SQL dedicado, anteriormente SQL DW, oferece à sua empresa uma única fonte de verdade, permitindo integrar e analisar dados mais rapidamente e obter insights mais robustos.
Qual a diferença entre os Pools SQL Dedicados do Azure Synapse e os Pools SQL Dedicados em um Espaço de Trabalho do Azure Synapse Analytics?
A documentação que distingue o “pool SQL dedicado (anteriormente SQLDW)” e os pools SQL dedicados do “Synapse Analytics” pode gerar alguma confusão, principalmente no que diz respeito ao PowerShell.
A implementação original do SQL DW usa um servidor lógico semelhante ao Azure SQL DB, compartilhando um módulo do PowerShell chamado Az.Sql.
Este módulo cria um novo pool SQL (anteriormente SQLDW) através do cmdlet New.AzSqlDatabase, que possui um parâmetro “Edition” para especificar que você deseja um DataWarehouse.
O Synapse Analytics veio com um novo módulo do PowerShell, Az.Synapse, em seu lançamento. Para criar um pool SQL dedicado em um espaço de trabalho do Synapse Analytics, usa-se o comando New-AzSynapseSqlPool.
Este módulo não exige o parâmetro “Edition”, pois ele é exclusivo para artefatos Synapse.
Um pool SQL dedicado oferece computação e armazenamento baseados em T-SQL, permitindo carregar, modelar e processar dados no Synapse para fornecer informações mais rápidas.
O Azure Synapse disponibiliza pools SQL Serverless e Apache Spark, além dos pools SQL dedicados, dando a você a flexibilidade de escolher o caminho mais adequado às suas necessidades. Um pool SQL sem servidor possibilita consultar dados armazenados em seu data lake.
O que faz o Pool SQL Dedicado do Azure Synapse?
O Pool SQL Dedicado do Azure Synapse utiliza uma arquitetura de expansão para distribuir o processamento de dados em vários nós, permitindo escalar a computação independentemente do armazenamento.
Os pools de SQL sem servidor são dimensionados automaticamente para atender aos requisitos de recursos de consulta, adaptando-se às mudanças de topologias, o que garante que as consultas tenham recursos suficientes e possam ser concluídas com sucesso.
O Synapse SQL opera com uma arquitetura baseada em nós. Os aplicativos se conectam ao nó de controle e emitem comandos T-SQL, que atuam como ponto único para o Synapse SQL.
Os nós de controle SQL do Azure Synapse usam um mecanismo de consulta distribuído que otimiza as consultas para processamento paralelo, encaminhando as operações para os nós de computação, que executam seu trabalho simultaneamente.
O nó de controle do pool SQL sem servidor utiliza o mecanismo de processamento de consulta distribuído (DQP) para otimizar e orquestrar a execução distribuída.
Isso é realizado dividindo a consulta do usuário em consultas menores, executadas nos nós de computação. Cada tarefa é uma unidade de execução distribuída, que recupera dados, agrupa arquivos e os lê do armazenamento.
Os nós de computação armazenam todos os dados do usuário e executam consultas em paralelo. O Data Movement Service (DMS), um serviço interno de nível de sistema, transfere dados entre os nós para viabilizar consultas paralelas e retornar resultados precisos.
O Synapse SQL utiliza o Armazenamento do Azure para garantir a segurança dos dados do usuário. O Armazenamento do Azure armazena e gerencia os dados, com uma taxa separada pelo uso.
Recursos dos Pools SQL Dedicados do Azure Synapse
Confira os principais recursos do pool SQL do Azure Synapse:
- Permite consultar dados em diversos formatos, como Parquet, JSON e CSV, no data lake.
- Disponibiliza uma abstração relacional para os usuários visualizarem os dados mais recentes.
- Possibilita a transformação de dados no lago de maneira simples e escalável por meio do T-SQL.
- Permite que cientistas de dados examinem rapidamente a estrutura e o conteúdo do lago usando OPENROWSET ou recursos de inferência de esquema automático.
- Permite que engenheiros de dados utilizem o pool para explorar o lago e transformar, criar ou simplificar seus pipelines de transformação de dados.
- Disponibiliza o acesso a dados e a geração de tabelas externas por meio da linguagem T-SQL e outras ferramentas familiares para analistas de dados, as quais também podem ser conectadas a um pool SQL sem servidor.
- Possibilita a geração instantânea de relatórios de BI por profissionais de inteligência de negócios em tabelas Spark ou data lake.
Pool de SQL Dedicado vs. Pool de SQL Sem Servidor
Pool de SQL Sem Servidor
Os espaços de trabalho do Azure Synapse contam com um pool SQL sem servidor, que funciona como um serviço de consulta em data lakes, dispensando configurações adicionais para acessar os dados. Ele é totalmente sem servidor, sem necessidade de infraestrutura para configurar ou manter.
O dimensionamento é automático para atender às necessidades de recursos, e o usuário paga apenas pelos dados processados, e não por recursos reservados. O pool SQL sem servidor também cria estatísticas para otimizar as execuções de consulta.
Por exemplo, se uma consulta é executada duas vezes ou duas consultas com planos de execução semelhantes são realizadas, essas estatísticas podem ser reutilizadas. Esses recursos permitem analisar grandes volumes de dados rapidamente, sem copiá-los ou carregá-los em um repositório específico.
Pool SQL Dedicado
O pool SQL dedicado do Synapse é o sucessor do Azure SQL Data Warehouse, oferecendo todos os recursos de armazenamento de dados empresariais. Diferentemente do pool SQL sem servidor, os usuários precisam criar e excluir o pool SQL dedicado do Synapse e escolher os recursos que ele utilizará.
Esses recursos são medidos por meio das unidades de armazenamento de dados (DWUs), que representam uma combinação de recursos de CPU, memória e E/S.
O número de DWUs determina o desempenho e o custo do pool. A cobrança é feita pelo tempo em que o pool estiver ativo, independentemente do trabalho realizado, e não por consulta.
Para evitar custos adicionais, os pools dedicados podem ser interrompidos e reiniciados. Para fins de teste, foi criado um pool SQL dedicado de 100 DWUs.
Após a criação do pool, os dados podem ser carregados utilizando o comando COPY, PolyBase com consultas T-SQL ou um pipeline. Esses dados são armazenados em formato colunar em tabelas relacionais.
Pool SQL Dedicado | Pool SQL Sem Servidor |
---|---|
Permite consultar o data lake e ingeri-lo. | Permite que os usuários consultem arquivos do data lake. |
Requer infraestrutura. | Não exige a criação de infraestrutura ou a manutenção de clusters. |
É necessário obter servidores dedicados antes de realizar qualquer operação. | Não requer infraestrutura para transformação ou exploração de dados. |
Os dados são armazenados em tabelas relacionais. | Os dados são armazenados no Data Lake. |
É possível gerenciar custos pausando o pool SQL e reduzindo o warehouse. | Os custos são gerenciados automaticamente e faturados de acordo com o uso. |
O custo é baseado nos recursos reservados. | O custo é baseado no processamento de dados por consulta. |
Cobrança por DWU provisionada. | Cobrança por TB processado. |
Conclusão
Este artigo abordou o Azure SQL Data Warehouse, agora denominado Azure Synapse Dedicated SQL Pool. Embora um pool SQL dedicado possa parecer um SQL Server tradicional em alguns aspectos, sua arquitetura subjacente (Processamento Massivamente Paralelo) é totalmente distinta. Isso implica que certos conceitos e técnicas são aplicáveis apenas ao Pool SQL Dedicado.
Você também pode explorar as diferenças entre Data Lake e Data Warehouse.