Processamento em lotesBatch processing

Um cenário comum de grandes volumes de dados é o processamento de lotes de dados em repouso.A common big data scenario is batch processing of data at rest. Neste cenário, a origem de dados é carregada para o armazenamento de dados, através da própria aplicação de origem ou por um fluxo de trabalho de orquestração.In this scenario, the source data is loaded into data storage, either by the source application itself or by an orchestration workflow. Os dados são processados, em seguida, no local por uma tarefa em paralelo, que pode ser iniciada pelo fluxo de trabalho de orquestração.The data is then processed in-place by a parallelized job, which can also be initiated by the orchestration workflow. O processamento pode incluir vários passos iterativos, antes dos resultados transformados são carregados para um arquivo de dados analíticos, que pode ser consultado por análise e componentes de relatórios.The processing may include multiple iterative steps before the transformed results are loaded into an analytical data store, which can be queried by analytics and reporting components.

Por exemplo, os registos de um servidor web podem ser copiados para uma pasta e, em seguida, processados durante a noite para gerar relatórios diários de atividade da web.For example, the logs from a web server might be copied to a folder and then processed overnight to generate daily reports of web activity.

Diagrama de um pipeline de processamento de batch

Quando utilizar esta soluçãoWhen to use this solution

Processamento em lote é usado numa variedade de cenários, a partir de transformações de dados simples para um pipeline ETL (extrair-transformar-carregar) mais completa.Batch processing is used in a variety of scenarios, from simple data transformations to a more complete ETL (extract-transform-load) pipeline. Num contexto de grandes volumes de dados, processamento em lote pode operar por meio de grandes conjuntos de dados, em que a computação leva um tempo significativo.In a big data context, batch processing may operate over very large data sets, where the computation takes significant time. (Por exemplo, veja arquitetura de Lambda.) Processamento em lotes, normalmente, leva a ainda mais a exploração interativa, fornece os dados de modelagem prontos para o machine learning ou escreve os dados para um arquivo de dados otimizado para análise e visualização.(For example, see Lambda architecture.) Batch processing typically leads to further interactive exploration, provides the modeling-ready data for machine learning, or writes the data to a data store that is optimized for analytics and visualization.

Um exemplo de processamento em lotes está a transformar um grande conjunto de ficheiros CSV ou JSON fixa e semi-estruturados, para um formato de esquematizado e não estruturado, que está pronto para consultar o ainda mais.One example of batch processing is transforming a large set of flat, semi-structured CSV or JSON files into a schematized and structured format that is ready for further querying. Normalmente, os dados são convertidos de formatos raw ingestão (por exemplo, o CSV) em formatos binários que são um melhor desempenho para a consulta porque armazenar dados num formato em colunas e geralmente fornecem índices e estatísticas de inline sobre os dados.Typically the data is converted from the raw formats used for ingestion (such as CSV) into binary formats that are more performant for querying because they store data in a columnar format, and often provide indexes and inline statistics about the data.

DesafiosChallenges

  • Formato de dados e a codificação.Data format and encoding. Alguns dos problemas mais difíceis de depurar acontecer quando os arquivos usam um formato inesperado ou a codificação.Some of the most difficult issues to debug happen when files use an unexpected format or encoding. Por exemplo, ficheiros de origem podem utilizar uma combinação de UTF-16 e a codificação UTF-8, conter delimitadores inesperados (espaço em comparação com o separador) ou incluir caracteres inesperados.For example, source files might use a mix of UTF-16 and UTF-8 encoding, or contain unexpected delimiters (space versus tab), or include unexpected characters. Outro exemplo comum é campos de texto que contém separadores, espaços ou vírgulas que são interpretadas como delimitadores.Another common example is text fields that contain tabs, spaces, or commas that are interpreted as delimiters. Carregando e analisando a lógica de dados tem de ser flexíveis o bastante para detetar e lidar com esses problemas.Data loading and parsing logic must be flexible enough to detect and handle these issues.

  • Orquestração de frações de tempo.Orchestrating time slices. Muitas vezes, os dados de origem são colocados numa hierarquia de pastas que reflete o windows de processamento, organizadas por ano, mês, dia, hora e assim por diante.Often source data is placed in a folder hierarchy that reflects processing windows, organized by year, month, day, hour, and so on. Em alguns casos, os dados podem se atrasam.In some cases, data may arrive late. Por exemplo, suponha que um servidor web falha, e os registos para iniciados a 7 de Março não fim na pasta para processamento até 9 de Março.For example, suppose that a web server fails, and the logs for March 7th don't end up in the folder for processing until March 9th. São eles simplesmente ignorados porque eles são muito tarde?Are they just ignored because they're too late? A lógica de processamento a jusante pode lidar com o registos fora de ordem?Can the downstream processing logic handle out-of-order records?

ArquiteturaArchitecture

Uma arquitetura de processamento em lotes tem os seguintes componentes de lógicos, mostrados no diagrama acima.A batch processing architecture has the following logical components, shown in the diagram above.

  • Armazenamento de dados.Data storage. Normalmente, um arquivo de ficheiros distribuído que pode servir como um repositório para grandes volumes de ficheiros grandes em diferentes formatos.Typically a distributed file store that can serve as a repository for high volumes of large files in various formats. Em geral, este tipo de arquivo é frequentemente referido como um data lake.Generically, this kind of store is often referred to as a data lake.

  • Processamento em lotes.Batch processing. A natureza de grande volume de dados de grandes dimensões, muitas vezes, significa que soluções têm de processar ficheiros de dados com trabalhos de lote de execução longa para filtrar, Agregar e preparar os dados para análise.The high-volume nature of big data often means that solutions must process data files using long-running batch jobs to filter, aggregate, and otherwise prepare the data for analysis. Normalmente, estes trabalhos envolvem ler os ficheiros de origem, processá-los e escrever a saída em ficheiros novos.Usually these jobs involve reading source files, processing them, and writing the output to new files.

  • Arquivo de dados analíticos.Analytical data store. Muitas soluções de macrodados foram concebidas para preparar dados para análise e, em seguida, disponibilizam os dados processados num formato estruturado que pode ser consultado com ferramentas analíticas.Many big data solutions are designed to prepare data for analysis and then serve the processed data in a structured format that can be queried using analytical tools.

  • Análises e relatórios.Analysis and reporting. O objetivo da maioria das soluções de macrodados é proporcionar informações sobre os dados através de análises e relatórios.The goal of most big data solutions is to provide insights into the data through analysis and reporting.

  • Orquestração.Orchestration. Com o processamento em lotes, normalmente alguns orquestração é necessária para migrar ou copiar os dados para o armazenamento de dados, processamento em lotes, arquivo de dados analíticos e camadas de geração de relatórios.With batch processing, typically some orchestration is required to migrate or copy the data into your data storage, batch processing, analytical data store, and reporting layers.

Opções de tecnologiaTechnology choices

As seguintes tecnologias são recomendadas as opções para soluções no Azure de processamento em lotes.The following technologies are recommended choices for batch processing solutions in Azure.

Armazenamento de dadosData storage

  • Contentores de BLOBs de armazenamento do Azure.Azure Storage Blob Containers. Muitos processos de negócio do Azure existente já utilizam o armazenamento de Blobs do Azure, impossibilitando este uma boa opção para um arquivo de macrodados.Many existing Azure business processes already use Azure blob storage, making this a good choice for a big data store.
  • Azure Data Lake Store.Azure Data Lake Store. Azure Data Lake Store oferece armazenamento praticamente ilimitada para qualquer tamanho de ficheiro e opções de segurança, tornando-o uma boa escolha para soluções de macrodados extremamente em grande escala que necessitam de um armazenamento centralizado para os dados em formatos heterogéneos.Azure Data Lake Store offers virtually unlimited storage for any size of file, and extensive security options, making it a good choice for extremely large-scale big data solutions that require a centralized store for data in heterogeneous formats.

Para obter mais informações, consulte armazenamento de dados.For more information, see Data storage.

Processamento em lotesBatch processing

  • U-SQL.U-SQL. U-SQL é o idioma utilizado pelo Azure Data Lake Analytics de processamento de consultas.U-SQL is the query processing language used by Azure Data Lake Analytics. Combina a natureza declarativa do SQL com a extensibilidade de procedimento do C#e tira partido do paralelismo para ativar o processamento eficiente de dados em grande escala.It combines the declarative nature of SQL with the procedural extensibility of C#, and takes advantage of parallelism to enable efficient processing of data at massive scale.
  • Hive.Hive. Hive é uma linguagem de tipo SQL que é suportada na maioria das distribuições de Hadoop, incluindo o HDInsight.Hive is a SQL-like language that is supported in most Hadoop distributions, including HDInsight. Ele pode ser usado para processar dados de qualquer armazenamento compatível com HDFS, incluindo o armazenamento de Blobs do Azure e Azure Data Lake Store.It can be used to process data from any HDFS-compatible store, including Azure blob storage and Azure Data Lake Store.
  • Pig.Pig. PIg é uma linguagem declarativa processamento de macrodados utilizada em muitas distribuições Hadoop, incluindo o HDInsight.Pig is a declarative big data processing language used in many Hadoop distributions, including HDInsight. É particularmente útil para processar dados não estruturados ou semi-estruturados.It is particularly useful for processing data that is unstructured or semi-structured.
  • Spark.Spark. O mecanismo de Spark oferece suporte a programas de processamento em lotes escritos em diversas linguagens, incluindo Java, Scala e Python.The Spark engine supports batch processing programs written in a range of languages, including Java, Scala, and Python. Spark utiliza uma arquitetura distribuída para processar dados em paralelo em vários nós de trabalho.Spark uses a distributed architecture to process data in parallel across multiple worker nodes.

Para obter mais informações, consulte processamento em lotes.For more information, see Batch processing.

Arquivo de dados analíticosAnalytical data store

  • O SQL Data Warehouse.SQL Data Warehouse. O Azure SQL Data Warehouse é um serviço gerido com base nas tecnologias de banco de dados do SQL Server e otimizado para suportar cargas de trabalho do armazém de dados em grande escala.Azure SQL Data Warehouse is a managed service based on SQL Server database technologies and optimized to support large-scale data warehousing workloads.
  • Spark SQL.Spark SQL. Spark SQL é uma API criada no Spark, que suporta a criação de pacotes e tabelas que podem ser consultadas com sintaxe SQL.Spark SQL is an API built on Spark that supports the creation of dataframes and tables that can be queried using SQL syntax.
  • HBase.HBase. HBase é um arquivo de NoSQL de baixa latência que oferece uma opção de alto desempenho e flexível para consultar dados estruturados e semiestruturados.HBase is a low-latency NoSQL store that offers a high-performance, flexible option for querying structured and semi-structured data.
  • Hive.Hive. Além de ser útil para processamento em lotes, o ramo de registo oferece uma arquitetura de base de dados que é um conceito semelhante à de um sistema de gerenciamento de banco de dados relacional típica.In addition to being useful for batch processing, Hive offers a database architecture that is conceptually similar to that of a typical relational database management system. Melhorias no desempenho de consulta do Hive através de inovações, como o mecanismo de Tez e a média de iniciativa Stinger que tabelas do Hive podem ser utilizadas eficazmente como fontes em consultas de análise em alguns cenários.Improvements in Hive query performance through innovations like the Tez engine and Stinger initiative mean that Hive tables can be used effectively as sources for analytical queries in some scenarios.

Para obter mais informações, consulte arquivos de dados analíticos.For more information, see Analytical data stores.

Análises e relatóriosAnalytics and reporting

  • Azure Analysis Services.Azure Analysis Services. Muitas soluções de macrodados emulam arquiteturas de inteligência de negócios empresariais tradicionais, incluindo um modelo de dados centralizado de processamento analítico online (OLAP) (muitas vezes referido como um cubo) no qual relatórios, dashboards e interativo "segmentação e decomposição de" Pode basear-Analysis.Many big data solutions emulate traditional enterprise business intelligence architectures by including a centralized online analytical processing (OLAP) data model (often referred to as a cube) on which reports, dashboards, and interactive "slice and dice" analysis can be based. O Azure Analysis Services suporta a criação de modelos de tabela para atender a essa necessidade.Azure Analysis Services supports the creation of tabular models to meet this need.
  • Power BI.Power BI. Power BI permite que os analistas de dados criar visualizações de dados interativos com base nos modelos de dados num modelo OLAP ou diretamente a partir de um arquivo de dados analíticos.Power BI enables data analysts to create interactive data visualizations based on data models in an OLAP model or directly from an analytical data store.
  • Microsoft Excel.Microsoft Excel. Microsoft Excel é um dos aplicativos de software mais amplamente utilizadas no mundo e oferece uma infinidade de recursos de análise e visualização de dados.Microsoft Excel is one of the most widely used software applications in the world, and offers a wealth of data analysis and visualization capabilities. Analistas de dados podem utilizar o Excel para criar modelos de dados de documento de arquivos de dados analíticos ou para recuperar dados de modelos de dados do OLAP para gráficos e tabelas dinâmicas interativas.Data analysts can use Excel to build document data models from analytical data stores, or to retrieve data from OLAP data models into interactive PivotTables and charts.

Para obter mais informações, consulte análises e relatórios.For more information, see Analytics and reporting.

OrquestraçãoOrchestration

  • Azure Data Factory.Azure Data Factory. Pipelines da fábrica de dados do Azure podem ser usados para definir uma sequência de atividades, agendadas para períodos de temporais recorrentes.Azure Data Factory pipelines can be used to define a sequence of activities, scheduled for recurring temporal windows. Essas atividades podem iniciar as operações de cópia de dados, bem como as tarefas do Hive, Pig, MapReduce ou Spark em clusters do HDInsight a pedido; Tarefas de U-SQL no Azure data Lake Analytics; e os procedimentos armazenados no Azure SQL Data Warehouse ou SQL Database do Azure.These activities can initiate data copy operations as well as Hive, Pig, MapReduce, or Spark jobs in on-demand HDInsight clusters; U-SQL jobs in Azure Date Lake Analytics; and stored procedures in Azure SQL Data Warehouse or Azure SQL Database.
  • Oozie e Sqoop.Oozie and Sqoop. Oozie é um motor de automatização de tarefas para o ecossistema do Apache Hadoop e pode ser utilizado para iniciar as operações de cópia de dados, bem como as tarefas do Hive, Pig e MapReduce para processar dados e as tarefas de Sqoop para copiar dados entre bases de dados do HDFS e o SQL.Oozie is a job automation engine for the Apache Hadoop ecosystem and can be used to initiate data copy operations as well as Hive, Pig, and MapReduce jobs to process data and Sqoop jobs to copy data between HDFS and SQL databases.

Para obter mais informações, consulte orquestração do PipelineFor more information, see Pipeline orchestration