Arquitetura do Azure Synapse Analytics (anteriormente conhecido como SQL DW)Azure Synapse Analytics (formerly SQL DW) architecture

O Azure Synapse é um serviço de análise ilimitado que reúne data warehouse empresarial e análise de Big Data.Azure Synapse is a limitless analytics service that brings together enterprise data warehousing and Big Data analytics. Ele oferece a liberdade para consultar dados da forma que você quiser, usando recursos sob demanda sem servidor ou provisionados em escala.It gives you the freedom to query data on your terms, using either serverless on-demand or provisioned resources—at scale. O Azure Synapse traz esses dois mundos junto com uma experiência unificada para ingerir, preparar, gerenciar e fornecer dados para necessidades imediatas de BI e aprendizado de máquina.Azure Synapse brings these two worlds together with a unified experience to ingest, prepare, manage, and serve data for immediate BI and machine learning needs.

O Azure Synapse tem quatro componentes:Azure Synapse has four components:

  • Análise de SQL: concluir análise baseada em T-SQLSQL Analytics: Complete T-SQL based analytics
    • Pool do SQL (pague por DWU provisionado) – geralmente disponívelSQL pool (pay per DWU provisioned) – Generally Available
    • SQL sob demanda (pagamento por TB processado, versão prévia)SQL on-demand (pay per TB processed) – (Preview)
  • Spark: Apache Spark profundamente integrados (versão prévia)Spark: Deeply integrated Apache Spark (Preview)
  • Integração de dados: integração de dados híbridas (versão prévia)Data Integration: Hybrid data integration (Preview)
  • Studio: experiência do usuário unificada.Studio: unified user experience. (Visualização)(Preview)

Componentes da arquitetura do SQL Analytics MPPSQL Analytics MPP architecture components

A análise de SQL aproveita uma arquitetura de expansão para distribuir o processamento computacional de dados em vários nós.SQL Analytics leverages a scale-out architecture to distribute computational processing of data across multiple nodes. A unidade de escala é uma abstração de poder de computação que é conhecida como unidade de data warehouse.The unit of scale is an abstraction of compute power that is known as a data warehouse unit. A computação é separada do armazenamento, o que permite que você dimensione a computação independentemente dos dados em seu sistema.Compute is separate from storage, which enables you to scale compute independently of the data in your system.

Arquitetura de análise de SQL

O SQL Analytics usa uma arquitetura baseada em nó.SQL Analytics uses a node-based architecture. Os aplicativos conectam e emitem comandos T-SQL para um nó de controle, que é o único ponto de entrada para a análise de SQL.Applications connect and issue T-SQL commands to a Control node, which is the single point of entry for SQL Analytics. O nó de controle executa o mecanismo MPP, que otimiza as consultas para processamento paralelo e, em seguida, passa as operações para nós de computação para fazer seu trabalho em paralelo.The Control node runs the MPP engine, which optimizes queries for parallel processing, and then passes operations to Compute nodes to do their work in parallel.

Os nós de Computação armazenam todos os dados de usuário no Armazenamento do Azure e executam as consultas paralelas.The Compute nodes store all user data in Azure Storage and run the parallel queries. O serviço de movimentação de dados (DMS) é um serviço de nível de sistema interno que move dados entre os nós, conforme necessário para executar consultas em paralelo e retornar resultados precisos.The Data Movement Service (DMS) is a system-level internal service that moves data across the nodes as necessary to run queries in parallel and return accurate results.

Com o armazenamento e a computação separados, ao usar a análise do SQL, é possível:With decoupled storage and compute, when using SQL Analytics one can:

  • Utilize computação independentemente do tamanho de suas necessidades de armazenamento.Independently size compute power irrespective of your storage needs.
  • Aumente ou reduza a potência de computação em um pool do SQL (data warehouse), sem mover os dados.Grow or shrink compute power, within a SQL pool (data warehouse), without moving data.
  • Pause a capacidade de computação ao deixar dados intactos para que você só pague pelo armazenamento.Pause compute capacity while leaving data intact, so you only pay for storage.
  • Retomar a capacidade de computação durante horas operacionais.Resume compute capacity during operational hours.

Armazenamento do AzureAzure Storage

A análise de SQL aproveita o armazenamento do Azure para manter os dados do usuário seguros.SQL Analytics leverages Azure Storage to keep your user data safe. Como os dados são armazenados e gerenciados pelo armazenamento do Azure, há um encargo separado para o consumo de armazenamento.Since your data is stored and managed by Azure Storage, there is a separate charge for your storage consumption. Os dados são fragmentados em distribuições para otimizar o desempenho do sistema.The data is sharded into distributions to optimize the performance of the system. Você pode escolher qual padrão de fragmentação usar para distribuir os dados quando você define a tabela.You can choose which sharding pattern to use to distribute the data when you define the table. Esses padrões de fragmentação têm suporte:These sharding patterns are supported:

  • HashHash
  • Round RobinRound Robin
  • ReplicarReplicate

Nó de controleControl node

O nó de controle é o cérebro da arquitetura.The Control node is the brain of the architecture. É o front-end que interage com todos os aplicativos e conexões.It is the front end that interacts with all applications and connections. O mecanismo MPP é executado no nó de controle para otimizar e coordenar consultas paralelas.The MPP engine runs on the Control node to optimize and coordinate parallel queries. Quando você envia uma consulta T-SQL para a análise do SQL, o nó de controle a transforma em consultas executadas em cada distribuição em paralelo.When you submit a T-SQL query to SQL Analytics, the Control node transforms it into queries that run against each distribution in parallel.

Nós de computaçãoCompute nodes

Os nós de computação fornecem capacidade de computação.The Compute nodes provide the computational power. Distribuições são mapeados para nós de computação para processamento.Distributions map to Compute nodes for processing. À medida que você paga mais recursos de computação, a análise do SQL mapeia novamente as distribuições para os nós de computação disponíveis.As you pay for more compute resources, SQL Analytics re-maps the distributions to the available Compute nodes. O número de nós de computação varia de 1 a 60 e é determinado pelo nível de serviço para análise de SQL.The number of compute nodes ranges from 1 to 60, and is determined by the service level for SQL Analytics.

Cada nó de computação tem uma ID de nó que está visível nas exibições do sistema.Each Compute node has a node ID that is visible in system views. Você pode ver a ID do nó de Computação olhando para a coluna node_id nas exibições do sistema cujos nomes começam com sys.pdw_nodes.You can see the Compute node ID by looking for the node_id column in system views whose names begin with sys.pdw_nodes. Para obter uma lista das exibições de sistema, consulte Exibição do sistema MPP.For a list of these system views, see MPP system views.

Serviço de movimentação de dadosData Movement Service

O Serviço de movimentação de dados (DMS) é a tecnologia de transporte de dados que coordena a movimentação de dados entre os nós de computação.Data Movement Service (DMS) is the data transport technology that coordinates data movement between the Compute nodes. Algumas consultas exigem a movimentação de dados para garantir que as consultas paralelas retornem resultados precisos.Some queries require data movement to ensure the parallel queries return accurate results. Quando a movimentação de dados é necessária, DMS garante que os dados corretos cheguem ao local correto.When data movement is required, DMS ensures the right data gets to the right location.

DistribuiçõesDistributions

Uma distribuição é a unidade básica de armazenamento e processamento para consultas paralelas que são executadas em dados distribuídos.A distribution is the basic unit of storage and processing for parallel queries that run on distributed data. Quando o SQL Analytics executa uma consulta, o trabalho é dividido em 60 consultas menores que são executadas em paralelo.When SQL Analytics runs a query, the work is divided into 60 smaller queries that run in parallel.

Cada uma das 60 consultas menores é executada em uma das distribuições de dados.Each of the 60 smaller queries runs on one of the data distributions. Cada nó de computação gerencia um ou mais de 60 distribuições.Each Compute node manages one or more of the 60 distributions. Um pool SQL com recursos de computação máximo tem uma distribuição por nó de computação.A SQL pool with maximum compute resources has one distribution per Compute node. Um pool SQL com recursos de computação mínimos tem todas as distribuições em um nó de computação.A SQL pool with minimum compute resources has all the distributions on one compute node.

Tabelas distribuídas em hashHash-distributed tables

Uma tabela de hash distribuída pode fornecer o melhor desempenho de consulta para junções e agregações em tabelas grandes.A hash distributed table can deliver the highest query performance for joins and aggregations on large tables.

Para fragmentar dados em uma tabela distribuída por hash, a análise do SQL usa uma função de hash para atribuir de forma determinística cada linha a uma distribuição.To shard data into a hash-distributed table, SQL Analytics uses a hash function to deterministically assign each row to one distribution. Na definição de tabela, uma das colunas é designada como a coluna de distribuição.In the table definition, one of the columns is designated as the distribution column. A função de hash usa valores na coluna de distribuição para atribuir cada linha a uma distribuição.The hash function uses the values in the distribution column to assign each row to a distribution.

O diagrama a seguir ilustra como uma (tabela não distribuída) completa é armazenada como uma tabela distribuída em hash.The following diagram illustrates how a full (non-distributed table) gets stored as a hash-distributed table.

Tabela distribuídaDistributed table

  • Cada linha pertence a uma distribuição.Each row belongs to one distribution.
  • Um algoritmo de hash determinístico atribui cada linha a uma distribuição.A deterministic hash algorithm assigns each row to one distribution.
  • O número de linhas de tabela por distribuição varia conforme mostrado pelos diferentes tamanhos de tabelas.The number of table rows per distribution varies as shown by the different sizes of tables.

Há considerações de desempenho para a seleção de uma coluna de distribuição, como distinção, distorção de dados e tipos de consultas executadas no sistema.There are performance considerations for the selection of a distribution column, such as distinctness, data skew, and the types of queries that run on the system.

Tabelas distribuídas round robinRound-robin distributed tables

Uma tabela de round-robin é a tabela mais simples para criar e oferece um desempenho rápido quando usada como uma tabela de preparo para cargas.A round-robin table is the simplest table to create and delivers fast performance when used as a staging table for loads.

Uma tabela distribuída round-robin distribui dados uniformemente entre a tabela, mas sem qualquer otimização adicional.A round-robin distributed table distributes data evenly across the table but without any further optimization. Uma distribuição é escolhida primeiramente de forma aleatória e, em seguida, buffers de linhas são atribuídos a distribuições em sequência.A distribution is first chosen at random and then buffers of rows are assigned to distributions sequentially. É rápido carregar dados em uma tabela de round-robin, mas o desempenho da consulta geralmente pode ser melhor com tabelas de hash distribuídas.It is quick to load data into a round-robin table, but query performance can often be better with hash distributed tables. As junções em tabelas Round Robin exigem dados embaralhando, o que leva mais tempo.Joins on round-robin tables require reshuffling data, which takes additional time.

Tabelas replicadasReplicated Tables

Uma tabela replicada fornece o melhor desempenho de consulta para tabelas pequenas.A replicated table provides the fastest query performance for small tables.

Uma tabela replicada faz cache de uma cópia completa da tabela em cada nó de computação.A table that is replicated caches a full copy of the table on each compute node. Consequentemente, replicar uma tabela elimina a necessidade de transferir dados entre nós de Computação antes de uma junção ou agregação.Consequently, replicating a table removes the need to transfer data among compute nodes before a join or aggregation. Tabelas replicadas são melhor usadas com tabelas pequenas.Replicated tables are best utilized with small tables. O armazenamento extra é necessário e há uma sobrecarga adicional incorrida ao gravar dados, o que torna as tabelas grandes impraticável.Extra storage is required and there is additional overhead that is incurred when writing data, which make large tables impractical.

O diagrama a seguir mostra uma tabela replicada que é armazenada em cache na primeira distribuição em cada nó de computação.The diagram below shows a replicated table that is cached on the first distribution on each compute node.

Tabela replicadaReplicated table

{1>{2>Próximas etapas<2}<1}Next steps

Agora que você já sabe um pouco sobre o Azure Synapse, saiba como criar rapidamente um pool do SQL e carregar dados de exemplo.Now that you know a bit about Azure Synapse, learn how to quickly create a SQL pool and load sample data. Se você for novo no Azure, você pode encontrar o Glossário do Azure úteis à medida que encontrar nova terminologia.If you are new to Azure, you may find the Azure glossary helpful as you encounter new terminology. Ou então, veja alguns desses outros recursos do Azure Synapse.Or look at some of these other Azure Synapse Resources.