Partilhar via


Arquitetura de pool dedicado de SQL (anteriormente SQL DW) no Azure Synapse Analytics

O Azure Synapse Analytics é um serviço de análise que reúne armazenamento de dados corporativos e análise de Big Data. Dá-lhe a liberdade de consultar dados nos seus termos.

Nota

Para saber mais sobre o Azure Synapse Analytics, assista a este vídeo explicando os aprimoramentos de movimentação de dados.

Componentes da arquitetura Synapse SQL

O pool SQL dedicado (anteriormente SQL DW) aproveita uma arquitetura de expansão para distribuir o processamento computacional de dados entre vários nós. A unidade de escala é uma abstração do poder de computação que é conhecida como uma unidade de armazém de dados. A computação é separada do armazenamento, o que permite dimensioná-la independentemente dos dados no sistema.

Arquitetura de pool SQL dedicado (anteriormente SQL DW)

O pool SQL dedicado (anteriormente SQL DW) usa uma arquitetura baseada em nós. As aplicações conectam-se e emitem comandos T-SQL para um nodo de controlo. O nó de controlo acomoda o mecanismo de consulta distribuído, que otimiza as consultas para processamento paralelo, e, em seguida, passa as operações aos nós de computação para que realizem o seu trabalho em paralelo.

Os nós de computação armazenam todos os dados de utilizador no Armazenamento do Microsoft Azure e executam as consultas paralelas. O Serviço de Movimento de Dados (DMS – Data Movement Service) é um serviço interno ao nível do sistema que move os dados em todos os nós, conforme necessário, para executar consultas em paralelo e devolver resultados precisos.

Com armazenamento e computação dissociados, ao usar um pool SQL dedicado (anteriormente SQL DW) pode-se:

  • Dimensione o poder de computação de forma independente, independentemente das suas necessidades de armazenamento.
  • Aumente ou diminua o poder de computação, dentro de um pool SQL dedicado (anteriormente SQL DW), sem mover dados.
  • Colocar a capacidade de computação em pausa, mantendo os dados intactos, o que significa que só paga pelo armazenamento.
  • Retomar a capacidade de computação durante as horas de funcionamento.

Armazenamento do Azure

O SQL pool dedicado (anteriormente SQL DW) aproveita o Armazenamento do Azure para manter seus dados de usuário seguros. Como seus dados são armazenados e gerenciados pelo Armazenamento do Azure, há uma cobrança separada para seu consumo de armazenamento. Os dados são fragmentados em distribuições para otimizar o desempenho do sistema. Pode escolher o padrão de fragmentação que será utilizado para distribuir os dados, ao definir a tabela. Estes padrões de fragmentação são suportados:

  • Hash
  • Robin redondo
  • Replicar

Nó de controlo

O nó de Controlo é o cérebro da arquitetura. É o front-end que interage com todas as ligações e aplicações. O mecanismo de consulta distribuído é executado no nó Controle para otimizar e coordenar consultas paralelas. Quando você envia uma consulta T-SQL, o nó Control a transforma em consultas que são executadas em cada distribuição em paralelo.

Nós de computação

Os nós de Computação conferem capacidade de computação. As distribuições são mapeadas para nós de computação para processamento. À medida que se paga por mais recursos computacionais, as distribuições são remapeadas para nós de computação disponíveis. O número de nós de computação varia de 1 a 60 e é determinado pelo nível de serviço do Synapse SQL.

Cada nó de computação tem um ID de nó que é visível nas exibições do sistema. Você pode ver a ID do nó de computação procurando a coluna node_id nas visualizações do sistema cujos nomes começam com sys.pdw_nodes. Para obter uma lista dessas exibições do sistema, consulte Exibições do sistema Synapse SQL.

Serviço de Movimento de Dados

O Data Movement Service (DMS) é a tecnologia de transporte de dados que coordena a movimentação de dados entre os nós de computação. Algumas consultas exigem movimentação de dados para garantir que as consultas paralelas retornem resultados precisos. Quando a movimentação de dados é necessária, o DMS garante que os dados certos cheguem ao local certo.

Distribuições

As distribuições são as unidades básicas de armazenamento e processamento de consultas paralelas que são executadas em dados distribuídos. Quando o Synapse SQL executa uma consulta, o trabalho é dividido em 60 consultas menores que são executadas em paralelo.

Cada uma das 60 consultas menores é executada em uma das distribuições de dados. Cada nó de computação gerencia uma ou mais das 60 distribuições. Um pool SQL dedicado (anteriormente SQL DW) com recursos de computação máximos disponibiliza uma distribuição por cada nó de computação. Um pool SQL dedicado (anteriormente SQL DW) com recursos mínimos de computação tem todas as distribuições em um nó de computação.

Nota

Para obter recomendações sobre a melhor estratégia de distribuição de tabela a ser usada com base em suas cargas de trabalho, consulte o Azure Synapse SQL Distribution Advisor.

Tabelas distribuídas com hash

Uma tabela distribuída com hash pode proporcionar o mais elevado desempenho de consulta para associações e agregações em tabelas grandes.

Para fragmentar os dados numa tabela distribuída por hash, é utilizada uma função hash para atribuir determinadamente cada linha a uma distribuição. Na definição da tabela, uma das colunas será a coluna de distribuição. A função hash utiliza os valores da coluna de distribuição para atribuir cada linha a uma distribuição.

O diagrama a seguir ilustra como uma tabela completa (não distribuída) é armazenada como uma tabela distribuída por hash.

Tabela distribuída

  • Cada linha pertence a uma distribuição.
  • Um algoritmo hash determinista atribui cada linha a uma distribuição.
  • O número de linhas da tabela por distribuição varia conforme mostrado pelos diferentes tamanhos das tabelas.

Há considerações de desempenho para a seleção de uma coluna de distribuição, como distinção, distorção de dados e os tipos de consultas que são executadas no sistema.

Tabelas distribuídas por round robin

Uma tabela round-robin é a mais simples de criar e oferece um desempenho rápido quando usada como tabela de staging para cargas.

As tabelas distribuídas em round robin distribuem uniformemente os dados por uma tabela, mas sem qualquer otimização adicional. Primeiro, escolhe-se aleatoriamente uma distribuição e, em seguida, atribuem-se sequencialmente buffers de linhas a distribuições. O carregamento de dados para tabelas round robin é rápido, mas o desempenho das consultas é, muitas vezes, superior em tabelas distribuídas por hash. As junções em tabelas round-robin exigem a reorganização dos dados, o que demora mais tempo.

Tabelas replicadas

As tabelas replicadas proporcionam o desempenho de consulta mais rápido para tabelas pequenas.

Uma tabela replicada armazena em cache uma cópia completa da tabela em cada nó de computação. Por conseguinte, a replicação de uma tabela elimina a necessidade de transferir dados entre nós de computação antes de se proceder a uma associação ou agregação. Idealmente, as tabelas replicadas devem ser utilizadas com tabelas pequenas. É necessário armazenamento extra e há sobrecarga adicional incorrida ao gravar dados, o que torna as tabelas grandes impraticáveis.

O diagrama abaixo mostra uma tabela replicada que é armazenada em cache na primeira distribuição em cada nó de computação.

Tabela replicada

Agora que você sabe um pouco sobre o Azure Synapse, saiba como criar rapidamente um pool SQL dedicado (anteriormente SQL DW) e carregar dados de exemplo. Se você é novo no Azure, pode achar os conceitos fundamentais do Azure úteis à medida que encontrar uma nova terminologia. Ou veja alguns desses outros Recursos do Azure Synapse.