Processamento em lotesBatch processing

Um cenário comum de Big Data é o processamento em lotes de dados em repouso.A common big data scenario is batch processing of data at rest. Nesse cenário, os dados de origem são carregados no armazenamento de dados, pelo próprio aplicativo 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 então processados in-loco por um trabalho paralelizado, o que também pode ser iniciado 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árias etapas iterativas antes que os resultados transformados sejam carregados em um armazenamento de dados analíticos, que pode ser consultado por componentes de relatório e análise.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 logs de um servidor Web podem ser copiados para uma pasta e então processados durante a noite para gerar relatórios diários das atividades 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 em lote

Quando usar esta soluçãoWhen to use this solution

O processamento em lotes é usado em uma variedade de cenários, de transformações de dados simples a um pipeline ETL (extração, transformação e carregamento) mais completo.Batch processing is used in a variety of scenarios, from simple data transformations to a more complete ETL (extract-transform-load) pipeline. Em um contexto de Big Data, o processamento em lotes pode operar em conjuntos grandes de dados, em que o cálculo leva um tempo significativo para ser concluído.In a big data context, batch processing may operate over very large data sets, where the computation takes significant time. (Por exemplo, veja a arquitetura Lambda.) O processamento em lote normalmente leva a uma exploração interativa adicional, fornece os dados prontos para modelagem para aprendizado de máquina ou grava os dados em um armazenamento de dados que é 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 é transformar um conjunto grande de arquivos simples, CSV ou JSON semiestruturados em um formato esquematizado e estruturado pronto para consulta posterior.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 dos formatos brutos usados para ingestão (como CSV) em formatos binários que têm um melhor desempenho para consulta, pois eles armazenam dados em um formato de coluna e, geralmente, fornecem índices e estatísticas embutidas 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 codificação.Data format and encoding. Alguns dos problemas mais difíceis de depurar ocorrem quando os arquivos usam um formato ou codificação inesperada.Some of the most difficult issues to debug happen when files use an unexpected format or encoding. Por exemplo, os arquivos de origem podem usar uma combinação da codificação UTF-16 e UTF-8, conter delimitadores inesperados (espaço versus tabulação) 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 são campos de texto que contêm guias, espaços ou vírgulas, interpretados como delimitadores.Another common example is text fields that contain tabs, spaces, or commas that are interpreted as delimiters. A lógica de carregamento e análise de dados precisa ser flexível o suficiente para detectar e resolver esses problemas.Data loading and parsing logic must be flexible enough to detect and handle these issues.

  • Orquestrando fatias de tempo.Orchestrating time slices. Em geral, os dados de origem são colocados em uma hierarquia de pastas que reflete as janelas 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 ser recebidos com atraso.In some cases, data may arrive late. Por exemplo, suponha que haja uma falha em um servidor Web e os logs de 7 de março não estejam na pasta para o 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. Eles são apenas ignorados porque foram recebidos com muito atraso?Are they just ignored because they're too late? A lógica de processamento downstream pode manipular registros fora de ordem?Can the downstream processing logic handle out-of-order records?

ArquiteturaArchitecture

Uma arquitetura de processamento em lotes tem os componentes lógicos a seguir, 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 armazenamento de arquivos distribuído que pode atuar como um repositório de amplos volumes de arquivos grandes em vários formatos.Typically a distributed file store that can serve as a repository for high volumes of large files in various formats. Genericamente, esse tipo de repositório costuma ser conhecido como um data lake.Generically, this kind of store is often referred to as a data lake.

  • Processamento em lote.Batch processing. Com frequência, a natureza de alto volume de Big Data significa que as soluções precisam processar arquivos de dados usando trabalhos em lotes de execução longa para filtrar, agregar e, de outro modo, 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, esses trabalhos envolvem ler arquivos de origem, processá-los e gravar a saída para novos arquivos.Usually these jobs involve reading source files, processing them, and writing the output to new files.

  • Armazenamento de dados analíticos.Analytical data store. Muitas soluções de Big Data foram projetadas para preparar dados para análise e então fornecer os dados processados em um 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álise e emissão de relatórios.Analysis and reporting. A meta da maioria das soluções de Big Data é gerar insights sobre os dados por meio de análise e relatórios.The goal of most big data solutions is to provide insights into the data through analysis and reporting.

  • Orquestração.Orchestration. Normalmente, com o processamento em lotes, um pouco de orquestração é necessário para migrar ou copiar os dados para o armazenamento de dados, o processamento em lotes, o armazenamento de dados analíticos e as camadas 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 tecnologias a seguir são as opções recomendadas de soluções de processamento em lotes do Azure.The following technologies are recommended choices for batch processing solutions in Azure.

Armazenamento de dadosData storage

  • Contêineres do Azure Storage Blob.Azure Storage Blob Containers. Muitos processos de negócios existentes do Azure já usam o armazenamento blob do Azure, tornando esta uma boa escolha para um armazenamento de big data.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. O Azure Data Lake Store oferece armazenamento praticamente ilimitado para qualquer tamanho de arquivo, bem como opções de segurança extensiva, tornando-o uma boa escolha para soluções de Big Data de escala extremamente grande que exigem um repositório centralizado de 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. O U-SQL é a linguagem de processamento de consulta usada pelo Azure Data Lake Analytics.U-SQL is the query processing language used by Azure Data Lake Analytics. Ele combina a natureza declarativa do SQL com a extensibilidade de procedimentos do C# e aproveita o paralelismo para permitir 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. O Hive é uma linguagem semelhante ao SQL que é compatível com a maioria das distribuições do Hadoop, incluindo 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 repositório compatível com o HDFS, incluindo o armazenamento de blobs do Azure e o 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. O Pig é uma linguagem de processamento de Big Data declarativa usada em muitas distribuições do Hadoop, incluindo HDInsight.Pig is a declarative big data processing language used in many Hadoop distributions, including HDInsight. É particularmente útil para o processamento de dados não estruturados ou semiestruturados.It is particularly useful for processing data that is unstructured or semi-structured.
  • Faísca.Spark. O mecanismo do Spark dá suporte a programas de processamento em lotes escritos em uma variedade de linguagens, incluindo Java, Scala e Python.The Spark engine supports batch processing programs written in a range of languages, including Java, Scala, and Python. O Spark usa 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.

Armazenamento de dados analíticosAnalytical data store

  • Azure Synapse Analytics.Azure Synapse Analytics. O Azure Synapse é um serviço gerenciado com base nas tecnologias de banco de dados SQL Server e otimizado para suportar cargas de trabalho de armazenamento de dados em larga escala.Azure Synapse is a managed service based on SQL Server database technologies and optimized to support large-scale data warehousing workloads.
  • Spark SQL.Spark SQL. O Spark SQL é uma API baseada no Spark que dá suporte à criação de dataframes e tabelas que podem ser consultados com a 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. O HBase é um repositório NoSQL de baixa latência que oferece uma opção de alto desempenho e flexível para consulta de 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 o processamento em lotes, o Hive oferece uma arquitetura de banco de dados que é conceitualmente semelhante a um RDBMS típico.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. As melhorias no desempenho de consulta do Hive por meio de inovações como o mecanismo Tez e a iniciativa Stinger significam que as tabelas do Hive podem ser usadas efetivamente como fontes para consultas analíticas 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 Armazenamentos de dados analíticos.For more information, see Analytical data stores.

Análise e relatóriosAnalytics and reporting

  • Serviços de Análise Azure.Azure Analysis Services. Muitas soluções de big data emulam arquiteturas tradicionais de business intelligence corporativo, incluindo um modelo de dados centralizado de processamento analítico on-line (OLAP) (muitas vezes referido como um cubo) no qual relatórios, dashboards e análises interativas de "fatia e dados" podem ser baseados.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 dá suporte à 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. O Power BI permite aos analistas de dados criar visualizações interativas de dados com base em modelos de dados em um modelo OLAP ou diretamente em um armazenamento 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. O Microsoft Excel é um dos aplicativos de software mais amplamente usados no mundo e oferece uma variedade de funcionalidades 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. Os analistas de dados podem usar o Excel para criar modelos de dados de documentos com base em armazenamentos de dados analíticos ou recuperar dados de modelos de dados OLAP em Tabelas Dinâmicas e gráficos interativos.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álise e relatórios.For more information, see Analytics and reporting.

OrquestraçãoOrchestration

  • Fábrica de Dados Azure.Azure Data Factory. Os pipelines do Azure Data Factory podem ser usados para definir uma sequência de atividades, agendada para janelas temporais recorrentes.Azure Data Factory pipelines can be used to define a sequence of activities, scheduled for recurring temporal windows. Essas atividades podem iniciar operações de cópia de dados, bem como trabalhos de Hive, Pig, MapReduce ou Spark em clusters HDInsight sob demanda; Empregos u-SQL no Azure Date Lake Analytics; e procedimentos armazenados no Banco de Dados Azure Synapse ou Azure SQL.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 Synapse or Azure SQL Database.
  • Oozie e Sqoop.Oozie and Sqoop. O Oozie é um mecanismo de automação de trabalhos para o ecossistema do Apache Hadoop e pode ser usado para iniciar operações de cópia de dados, bem como trabalhos do Hive, Pig e MapReduce para processar dados e trabalhos do Sqoop para copiar dados entre bancos de dados HDFS e 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 de pipelineFor more information, see Pipeline orchestration