Escolha uma tecnologia de processamento de lote em Azure

As grandes soluções de dados usam frequentemente trabalhos de lote de longa duração para filtrar, agregar e preparar os dados para análise. Normalmente, estes trabalhos envolvem a leitura de ficheiros de origem de armazenamento escalável (como HDFS, Azure Data Lake Store e Azure Armazenamento), processando-os e escrevendo a saída para novos ficheiros em armazenamento escalável.

O requisito-chave destes motores de processamento de lote é a capacidade de reduzir os cálculos, de modo a lidar com um grande volume de dados. No entanto, ao contrário do processamento em tempo real, espera-se que o processamento de lotes tenha latências (o tempo entre a ingestão de dados e a computação de um resultado) que medem em minutos a horas.

Escolhas tecnológicas para processamento de lotes

Azure Synapse Analytics

Azure Synapse é um sistema distribuído projetado para executar análises em dados grandes. Suporta um processamento paralelo maciço (MPP), o que o torna adequado para a análise de alto desempenho. Considere Azure Synapse quando tiver grandes quantidades de dados (mais de 1 TB) e estiver a executar uma carga de trabalho analítica que beneficiará do paralelismo.

Azure Data Lake Analytics

Data Lake Analytics é um serviço de trabalho de análise a pedido. Está otimizado para o processamento distribuído de conjuntos de dados muito grandes armazenados na Azure Data Lake Store.

  • Línguas: U-SQL (incluindo extensões Python, R e C#).
  • Integra-se com a Azure Data Lake Store, Azure Armazenamento blobs, Base de Dados SQL do Azure e Azure Synapse.
  • O modelo de preços é por trabalho.

HDInsight

HDInsight é um serviço Hadoop gerido. Use-o implementar e gerir os clusters Hadoop em Azure. Para o processamento de lotes, pode utilizar Spark,Hive,Hive LLAP,MapReduce.

  • Línguas: R, Python, Java, Scala, SQL
  • Autenticação Kerberos com Ative Directory, Controlo de acesso baseado em Apache Ranger
  • Dá-lhe o controlo total do aglomerado hadoop

Azure Databricks

Azure Databricks é uma plataforma de análise baseada em Apache Spark. Pode pensar nisso como "Faísca como um serviço". É a maneira mais fácil de usar o Spark na plataforma Azure.

  • Línguas: R, Python, Java, Scala, Spark SQL
  • Tempos de início rápidos do cluster, autoterminação, autoscaling.
  • Gere o aglomerado de faíscas para si.
  • Integração incorporada com Azure Blob Armazenamento, Azure Data Lake Armazenamento (ADLS), Azure Synapse, e outros serviços. Ver Fontes de Dados.
  • Autenticação do utilizador com Azure Ative Directory.
  • Cadernos baseados na Web para colaboração e exploração de dados.
  • Suporta clusters ativados pela GPU

Kit de Ferramentas de Engenharia de Dados Distribuídos Azure

O Kit de Ferramentas de Engenharia de Dados Distribuídos (AZTK) é uma ferramenta para o fornecimento de spark on-demand em clusters Docker em Azure.

A AZTK não é um serviço Azure. Em vez disso, é uma ferramenta do lado do cliente com uma interface CLI e Python SDK, que é construída em Azure Batch. Esta opção dá-lhe mais controlo sobre a infraestrutura ao implementar um cluster Spark.

  • Traz a tua própria imagem do Docker.
  • Utilize VMs de baixa prioridade para um desconto de 80%.
  • Clusters de modo misto que usam VMs de baixa prioridade e dedicados.
  • Construído em suporte para a ligação Azure Blob Armazenamento e Azure Data Lake.

Critérios-chave de seleção

Para reduzir as escolhas, comece por responder a estas perguntas:

  • Deseja um serviço gerido em vez de gerir os seus próprios servidores?

  • Deseja autor de uma lógica de processamento de lote declarativamente ou imperativamente?

  • Irá efetuar o processamento do lote em rajadas? Se sim, considere opções que lhe permitam encerrar automaticamente o cluster ou cujo modelo de preços é por trabalho de lote.

  • Precisa de consultar as lojas de dados relacionais juntamente com o processamento do seu lote, por exemplo, para procurar dados de referência? Se sim, considere as opções que permitem a consulta de lojas relacionais externas.

Matriz de capacidade

As tabelas seguintes resumem as principais diferenças de capacidades.

Capacidades gerais

Funcionalidade Azure Data Lake Analytics Azure Synapse HDInsight Azure Databricks
É gerido serviço Yes Yes Sim 1 Sim
Loja de dados relacional Yes Yes No No
Modelo preços Por trabalho de lote Por hora de cluster Por hora de cluster Databricks Unidade2 + hora de cluster

[1] Com configuração manual.

[2] Uma Unidade de Dados (DBU) é uma unidade de capacidade de processamento por hora.

Capacidades

Funcionalidade Azure Data Lake Analytics Azure Synapse HDInsight com Faísca HDInsight com Colmeia HDInsight com Hive LLAP Azure Databricks
Dimensionamento automático No No Yes Yes Yes Yes
Granularidade de escala Por trabalho Por aglomerado Por aglomerado Por aglomerado Por aglomerado Por aglomerado
Caching in-memory de dados No Yes Yes No Yes Yes
Consulta de lojas relacionais externas Yes No Yes No No Yes
Autenticação Azure AD SQL / AD AZure No Azure AD1 Azure AD1 Azure AD
Auditoria Yes Yes Não Sim 1 Sim 1 Yes
Segurança ao nível da linha No Sim2 Não Sim 1 Sim 1 No
Suporta firewalls Yes Yes Yes Sim 3 Sim 3 Não
Máscara de dados dinâmica No Yes Não Sim 1 Sim 1 No

[1] Requer a utilização de um cluster HDInsight de domínio.

[2] Filtrar apenas predicados. Ver Segurança de nível de linha

[3] Suportado quando utilizado numa Rede Virtual Azure.

Passos seguintes