Escolher uma tecnologia do Azure de processamento em lotesChoosing a batch processing technology in Azure

Soluções de macrodados, muitas vezes, utilizam trabalhos de lote de execução longa para filtrar, Agregar e prepararem os dados para análise.Big data solutions often use long-running batch jobs to filter, aggregate, and otherwise prepare the data for analysis. Normalmente, estes trabalhos envolvem ler os ficheiros de origem do armazenamento escalável (como o HDFS, o Azure Data Lake Store e o armazenamento do Azure), processá-los e escrever a saída em novos ficheiros no armazenamento escalável.Usually these jobs involve reading source files from scalable storage (like HDFS, Azure Data Lake Store, and Azure Storage), processing them, and writing the output to new files in scalable storage.

O principal requisito de tais motores de processamento em lotes é a capacidade de dimensionar os cálculos, de modo a lidar com um grande volume de dados.The key requirement of such batch processing engines is the ability to scale out computations, in order to handle a large volume of data. Ao contrário de processamento em tempo real, no entanto, processamento em lotes é esperado que tenha latências (o tempo entre a ingestão de dados e o cálculo de um resultado) que medir em minutos a horas.Unlike real-time processing, however, batch processing is expected to have latencies (the time between data ingestion and computing a result) that measure in minutes to hours.

Opções de tecnologia para processamento em lotesTechnology choices for batch processing

Azure SQL Data WarehouseAzure SQL Data Warehouse

O SQL Data Warehouse é um sistema distribuído concebido para efetuar análises em dados de grande dimensão.SQL Data Warehouse is a distributed system designed to perform analytics on large data. Ele suporta processamento paralelo em grande escala (MPP), que faz com que seja adequado para a execução de análises de elevado desempenho.It supports massive parallel processing (MPP), which makes it suitable for running high-performance analytics. Quando tiver grandes quantidades de dados (mais de 1 TB) e executem uma carga de trabalho de análise que irá se beneficiam do paralelismo, considere o SQL Data Warehouse.Consider SQL Data Warehouse when you have large amounts of data (more than 1 TB) and are running an analytics workload that will benefit from parallelism.

Azure Data Lake AnalyticsAzure Data Lake Analytics

O Data Lake Analytics é uma análise a pedido de serviço de tarefa.Data Lake Analytics is an on-demand analytics job service. Está otimizado para processamento distribuído de grandes conjuntos de dados armazenados no Azure Data Lake Store.It is optimized for distributed processing of very large data sets stored in Azure Data Lake Store.

  • Idiomas: U-SQL (incluindo o Python, R, e C# extensões).Languages: U-SQL (including Python, R, and C# extensions).
  • Integra-se com o Azure Data Lake Store, blobs de armazenamento do Azure, base de dados do Azure SQL e SQL Data Warehouse.Integrates with Azure Data Lake Store, Azure Storage blobs, Azure SQL Database, and SQL Data Warehouse.
  • Modelo de preços é por tarefa.Pricing model is per-job.

HDInsightHDInsight

HDInsight é um serviço gerido do Hadoop.HDInsight is a managed Hadoop service. Utilize-lo a implementar e gerir clusters do Hadoop no Azure.Use it deploy and manage Hadoop clusters in Azure. Para processamento em lotes, pode usar Spark, Hive, LLAP do Hive, MapReduce.For batch processing, you can use Spark, Hive, Hive LLAP, MapReduce.

  • Idiomas: R, Python, Java, Scala, SQLLanguages: R, Python, Java, Scala, SQL
  • Autenticação Kerberos com o Active Directory, o controlo de acesso do Apache Ranger com base emKerberos authentication with Active Directory, Apache Ranger based access control
  • Dá-lhe controlo total sobre o cluster do HadoopGives you full control of the Hadoop cluster

Azure DatabricksAzure Databricks

O Azure Databricks é uma plataforma de análise baseada no Apache Spark.Azure Databricks is an Apache Spark-based analytics platform. Pode considerá-lo como "Spark como um serviço".You can think of it as "Spark as a service." É a maneira mais fácil de utilizar o Spark na plataforma do Azure.It's the easiest way to use Spark on the Azure platform.

  • Idiomas: R, Python, Java, Scala, do Spark SQLLanguages: R, Python, Java, Scala, Spark SQL
  • Horas de início rápido do cluster, cessação automática, dimensionamento automático.Fast cluster start times, auto-termination, auto-scaling.
  • Gere o cluster do Spark para si.Manages the Spark cluster for you.
  • Integração incorporada com o armazenamento de Blobs do Azure, Azure Data Lake Storage (ADLS), Azure SQL Data Warehouse (SQL DW) e outros serviços.Built-in integration with Azure Blob Storage, Azure Data Lake Storage (ADLS), Azure SQL Data Warehouse (SQL DW), and other services. Ver origens de dados.See Data Sources.
  • Autenticação de utilizador com o Azure Active Directory.User authentication with Azure Active Directory.
  • Baseado na Web blocos de notas para colaboração e exploração de dados.Web-based notebooks for collaboration and data exploration.
  • Suporta clusters com GPU ativadaSupports GPU-enabled clusters

Kit de ferramentas de engenharia de dados distribuída do AzureAzure Distributed Data Engineering Toolkit

O Toolkit de engenharia de dados distribuída (AZTK) é uma ferramenta para provisionamento sob demanda Spark em clusters de Docker no Azure.The Distributed Data Engineering Toolkit (AZTK) is a tool for provisioning on-demand Spark on Docker clusters in Azure.

AZTK não é um serviço do Azure.AZTK is not an Azure service. Em vez disso, é uma ferramenta de cliente com uma interface da CLI e SDK de Python, que está incorporada no Azure Batch.Rather, it's a client-side tool with a CLI and Python SDK interface, that's built on Azure Batch. Esta opção dá mais controle sobre a infra-estrutura quando implementar um cluster do Spark.This option gives you the most control over the infrastructure when deploying a Spark cluster.

  • Traga a sua própria imagem do Docker.Bring your own Docker image.
  • Utilize VMs de baixa prioridade para um desconto de 80%.Use low-priority VMs for an 80% discount.
  • Clusters de modo misto que utilizam VMs de baixa prioridade e dedicadas.Mixed mode clusters that use both low-priority and dedicated VMs.
  • Suporte interno para ligação de armazenamento de Blobs do Azure e Azure Data Lake.Built in support for Azure Blob Storage and Azure Data Lake connection.

Principais critérios de seleçãoKey selection criteria

Para limitar as opções, comece por resposta a estas perguntas:To narrow the choices, start by answering these questions:

  • Pretende que um serviço gerido, em vez de gerir os seus próprios servidores?Do you want a managed service rather than managing your own servers?

  • Deseja criar batch lógica de processamento, de maneira declarativa ou imperativa?Do you want to author batch processing logic declaratively or imperatively?

  • Irá efetuar o processamento em lotes em picos?Will you perform batch processing in bursts? Em caso afirmativo, considere as opções que lhe permite terminar automaticamente o cluster ou cujo modelo de preços é por tarefa do batch.If yes, consider options that let you auto-terminate the cluster or whose pricing model is per batch job.

  • Precisa consultar armazenamentos de dados relacional, juntamente com o seu processamento em lotes, por exemplo, para procurar dados de referência?Do you need to query relational data stores along with your batch processing, for example to look up reference data? Em caso afirmativo, considere as opções que permitem a consulta dos repositórios relacionais externos.If yes, consider the options that enable querying of external relational stores.

Matriz de capacidadeCapability matrix

As tabelas seguintes resumem as principais diferenças nos recursos.The following tables summarize the key differences in capabilities.

Capacidades geraisGeneral capabilities

Azure Data Lake AnalyticsAzure Data Lake Analytics Azure SQL Data WarehouseAzure SQL Data Warehouse HDInsightHDInsight Azure DatabricksAzure Databricks
É serviço geridoIs managed service SimYes SimYes Sim 1Yes 1 SimYes
Arquivo de dados relacionaisRelational data store SimYes SimYes NãoNo NãoNo
Modelo preçosPricing model Por tarefa do batchPer batch job Por hora de clusterBy cluster hour Por hora de clusterBy cluster hour Unidade do Databricks2 + hora de clusterDatabricks Unit2 + cluster hour

[1] com a configuração manual e dimensionamento.[1] With manual configuration and scaling.

[2] uma unidade do Databricks (DBU) é uma unidade de capacidade por hora de processamento.[2] A Databricks Unit (DBU) is a unit of processing capability per hour.

CapacidadesCapabilities

Azure Data Lake AnalyticsAzure Data Lake Analytics SQL Data WarehouseSQL Data Warehouse HDInsight com o SparkHDInsight with Spark HDInsight com o HiveHDInsight with Hive HDInsight com o LLAP do HiveHDInsight with Hive LLAP Azure DatabricksAzure Databricks
Dimensionamento automáticoAutoscaling NãoNo NãoNo NãoNo NãoNo NãoNo SimYes
Granularidade de escalamento horizontalScale-out granularity Por tarefaPer job Por clusterPer cluster Por clusterPer cluster Por clusterPer cluster Por clusterPer cluster Por clusterPer cluster
Dentro da memória cache de dadosIn-memory caching of data NãoNo SimYes SimYes NãoNo SimYes SimYes
Uma consulta em repositórios relacionais externosQuery from external relational stores SimYes NãoNo SimYes NãoNo NãoNo SimYes
AutenticaçãoAuthentication Azure ADAzure AD SQL / Azure ADSQL / Azure AD NãoNo Azure AD1Azure AD1 Azure AD1Azure AD1 Azure ADAzure AD
AuditoriaAuditing SimYes SimYes NãoNo Sim 1Yes 1 Sim 1Yes 1 SimYes
Segurança ao Nível da LinhaRow-level security NãoNo NãoNo NãoNo Sim 1Yes 1 Sim 1Yes 1 NãoNo
Oferece suporte a firewallsSupports firewalls SimYes SimYes SimYes Sim 2Yes 2 Sim 2Yes 2 NãoNo
Máscara de dados dinâmicaDynamic data masking NãoNo NãoNo NãoNo Sim 1Yes 1 Sim 1Yes 1 NãoNo

[1] requer a utilização de um cluster de HDInsight associado a um domínio.[1] Requires using a domain-joined HDInsight cluster.

[2] suportada quando utilizado dentro de uma rede Virtual do Azure.[2] Supported when used within an Azure Virtual Network.