Baixe o app para aproveitar ainda mais
Prévia do material em texto
20/03/2023, 23:05 Descomplica | Fundamentos De Big Data https://aulas.descomplica.com.br/pos/pos-graduacao-em-analise-de-dados/turma/fundamentos-de-big-data-cdc4a8/aula/processamento-dos-da… 1/17 E Considerações Sobre Performance mbora o Hive seja desenvolvido para lidar com o processamento de big data, ainda não podemos ignorar a importância do desempenho. Na maioria das vezes, uma consulta melhor pode contar com o otimizador de consulta inteligente para encontrar a melhor estratégia de execução, bem como as configurações padrão e as práticas recomendadas. No entanto, usuários experientes devem aprender mais sobre a teoria e a prática do ajuste de desempenho, especialmente ao trabalhar em um projeto ou ambiente sensível ao desempenho. 20/03/2023, 23:05 Descomplica | Fundamentos De Big Data https://aulas.descomplica.com.br/pos/pos-graduacao-em-analise-de-dados/turma/fundamentos-de-big-data-cdc4a8/aula/processamento-dos-da… 2/17 Utilitários de desempenho O HQL fornece as instruções EXPLAIN e ANALYZE, que podem ser usadas como utilitários para verificar e identificar o desempenho das consultas. Além disso, os logs do Hive contêm informações detalhadas suficientes para investigação e solução de problemas de desempenho. EXPLAIN – Instrução fornecida para retornar um plano de execução da consulta sem executar a consulta. Podemos usá-lo para analisar consultas se tivermos preocupações sobre o desempenho delas. A instrução EXPLAIN nos ajuda a ver a diferença entre duas ou mais consultas para a mesma finalidade. A sintaxe é a seguinte: 20/03/2023, 23:05 Descomplica | Fundamentos De Big Data https://aulas.descomplica.com.br/pos/pos-graduacao-em-analise-de-dados/turma/fundamentos-de-big-data-cdc4a8/aula/processamento-dos-da… 3/17 EXPLAIN [FORMATTED | EXTENDED | DEPENDENCY | AUTHORIZATHION ] hql_query As seguintes palavras-chave podem ser usadas: • FORMATTED: Fornece uma versão JSON formatada do plano de consulta. • EXTENDED: fornece informações adicionais para os operadores do plano, como nome do caminho do arquivo. • DEPENDENCY: fornece uma saída no formato JSON que contém uma lista de tabelas e partições das quais a consulta depende. Está disponível desde o Hive v0.10.0 20/03/2023, 23:05 Descomplica | Fundamentos De Big Data https://aulas.descomplica.com.br/pos/pos-graduacao-em-analise-de-dados/turma/fundamentos-de-big-data-cdc4a8/aula/processamento-dos-da… 4/17 • AUTHORIZATHION: lista todas as entidades que precisam ser autorizadas, incluindo entradas e saída para executar a consulta e falha na autorização, se houver. Tem sido disponível desde o Hive v0.14.0. Um plano de consulta típico contém as três seções a seguir: • Árvore de sintaxe abstrata (AST): O Hive usa um gerador de analisador chamado ANTLR (consulte http://www.antlr.org/) para gerar automaticamente uma sintaxe de árvore • Dependências de estágio do HQL: lista todas as dependências e o número de estágios usados 20/03/2023, 23:05 Descomplica | Fundamentos De Big Data https://aulas.descomplica.com.br/pos/pos-graduacao-em-analise-de-dados/turma/fundamentos-de-big-data-cdc4a8/aula/processamento-dos-da… 5/17 para executar a consulta • Planos de estágio: contém informações importantes, como operadores e ordens de classificação, para executar a tarefa Declaração ANALYZE As estatísticas do Hive são uma coleção de dados que descreve mais detalhes, como o número de linhas, o número de arquivos e o tamanho dos dados brutos dos objetos no banco de dados. As estatísticas são as metadados de dados, coletados e armazenados no banco de dados do metastore. O Hive suporta estatísticas no nível da tabela, partição e coluna. Essas estatísticas servem como uma entrada para o Hive CostBased Optimizer (CBO), que é um otimizador usado para escolher o plano de 20/03/2023, 23:05 Descomplica | Fundamentos De Big Data https://aulas.descomplica.com.br/pos/pos-graduacao-em-analise-de-dados/turma/fundamentos-de-big-data-cdc4a8/aula/processamento-dos-da… 6/17 consulta com o menor custo em termos de recursos do sistema necessários para concluir a consulta. As estatísticas são parcialmente reunidos automaticamente no Hive v3.2.0 até o JIRA HIVE- 11160 (https://issues.apache.org/jira/browse/HIVE- 11160) ou manualmente através da instrução ANALYZE em tabelas, partições e colunas. Otimização do Projeto A otimização de design abrange vários designs, formatos de dados e estratégias de otimização de tarefas para melhorar o desempenho. Definição da Participação de Tabela - O particionamento do Hive é uma das maneiras mais eficazes de melhorar o desempenho da consulta em grandes tabelas. Uma consulta com filtragem de partição carregará apenas dados das partições especificadas (subdiretórios), para que possa https://issues.apache.org/jira/browse/HIVE-11160 20/03/2023, 23:05 Descomplica | Fundamentos De Big Data https://aulas.descomplica.com.br/pos/pos-graduacao-em-analise-de-dados/turma/fundamentos-de-big-data-cdc4a8/aula/processamento-dos-da… 7/17 executar muito mais rapidamente do que uma consulta normal que filtra por um campo sem particionamento. A seleção da chave da partição é sempre um fator importante para o desempenho. Sempre deve ser um atributo de baixa cardinal para evitar a sobrecarga de muitos subdiretórios. A seguir estão alguns atributos comumente usados como chaves de partição: • Partições por data e hora: use data e hora, como ano, mês e dia (horas pares), como chaves de partição quando os dados estiverem associados à data / hora colunas, como load_date, business_date, run_date e assim por diante • Partições por local: use país, território, estado e cidade como chaves de partição quando os dados estão relacionados à localização 20/03/2023, 23:05 Descomplica | Fundamentos De Big Data https://aulas.descomplica.com.br/pos/pos-graduacao-em-analise-de-dados/turma/fundamentos-de-big-data-cdc4a8/aula/processamento-dos-da… 8/17 • Partições por lógica de negócios: use departamento, região de vendas, aplicativos, clientes e assim por diante como chaves de partição quando os dados podem ser separados uniformemente por logíca de negócios Definição do Índice - O uso de índices é uma prática recomendada muito comum para ajuste de desempenho em sistemas relacionais de bancos de dados. O Hive oferece suporte à criação de índice em tabelas / partições desde o Hive v0.7.0. Um índice no Hive fornece uma visualização de dados baseada em chaves e um melhor acesso a dados para determinadas operações, como WHERE, GROUP BY e JOIN. O uso de um índice é sempre uma alternativa mais barata que as verificações de tabela completa. Use tabelas inclinadas / temporárias - Além de tabelas internas / externas ou de partição regulares, 20/03/2023, 23:05 Descomplica | Fundamentos De Big Data https://aulas.descomplica.com.br/pos/pos-graduacao-em-analise-de-dados/turma/fundamentos-de-big-data-cdc4a8/aula/processamento-dos-da… 9/17 também devemos considerar o uso de um mesa inclinada ou temporária para melhor design e desempenho. Desde o Hive v0.10.0, o HQL oferece suporte à criação de uma tabela especial para organizar distorções dados. Uma tabela inclinada pode ser usada para melhorar o desempenho dividindo esses valores inclinados em arquivos ou diretórios separados automaticamente. Como resultado, o número total de arquivos ou pastas de partição é reduzido. Além disso, uma consulta pode incluir ou ignorar esses dados rapidamente e eficientemente. Otimização de Dados A otimização do arquivo de dados cobre a melhoria de desempenho nos arquivos de dados em termos de arquivo formato, compactação e armazenamento. 20/03/2023, 23:05 Descomplica | Fundamentos De Big Data https://aulas.descomplica.com.br/pos/pos-graduacao-em-analise-de-dados/turma/fundamentos-de-big-data-cdc4a8/aula/processamento-dos-d… 10/17 Formato - O Hive suporta os formatos de arquivo TEXTFILE, SEQUENCEFILE, AVRO, RCFILE, ORC e PARQUET. Existem duas instruções HQL usadas para especificar o formato do arquivo da seguinte maneira:• CREATE TABLE ... STORE AS <file_format>: especifique o formato do arquivo ao criar uma tabela • ALTER TABLE ... [PARTITION partition_spec] SET FILEFORMATb <file_format>: modifique o formato do arquivo (apenas definição) em uma tabela existente • TEXTFILE: Este é o formato de arquivo padrão para criação de tabela. Os dados são armazenados em claro texto para este formato. 20/03/2023, 23:05 Descomplica | Fundamentos De Big Data https://aulas.descomplica.com.br/pos/pos-graduacao-em-analise-de-dados/turma/fundamentos-de-big-data-cdc4a8/aula/processamento-dos-d… 11/17 Um arquivo de texto é naturalmente divisível e pode ser processado em paralelo. Também pode ser compactado com algoritmos, como GZip, LZO e Snappy. No entanto, a maioria dos arquivos compactados não pode ser dividida em paralelo em processamento. Como resultado, eles usam apenas um trabalho com um único mapeador para processar dados lentamente. A melhor prática para usar arquivos de texto compactados é garantir que o O arquivo não é muito grande e está próximo a alguns tamanhos de bloco HDFS. • SEQUENCEFILE: Este é um formato de armazenamento binário para pares de chave / valor. O benefício de um arquivo de sequência é que ele é mais compacto que um arquivo de texto e se ajusta bem ao Formato de saída MapReduce. Os arquivos de sequência podem ser compactados para gravar ou bloquear nível, onde o nível do bloco tem uma melhor taxa de 20/03/2023, 23:05 Descomplica | Fundamentos De Big Data https://aulas.descomplica.com.br/pos/pos-graduacao-em-analise-de-dados/turma/fundamentos-de-big-data-cdc4a8/aula/processamento-dos-d… 12/17 compressão. Para habilitar o nível de bloco compactação, precisamos usar as seguintes configurações: set hive.exec.compress.output = true; E definir io.seqfile.compression.type = BLOCO ; • AVRO: Este também é um formato binário. Mais do que isso, é também uma serialização e estrutura de desserialização. O AVRO fornece um esquema de dados que descreve os dados estrutura e também lida com as alterações do esquema, como adicionar, renomear e removendo colunas. O esquema é armazenado junto com os dados para qualquer em processamento. Considerando as vantagens do AVRO para lidar com a evolução do esquema, é recomendável usá-lo ao mapear os dados de origem, o que provavelmente terá o esquema muda de tempos em tempos. 20/03/2023, 23:05 Descomplica | Fundamentos De Big Data https://aulas.descomplica.com.br/pos/pos-graduacao-em-analise-de-dados/turma/fundamentos-de-big-data-cdc4a8/aula/processamento-dos-d… 13/17 • RCFILE: é a abreviação de Record Columnar File. É um arquivo simples que consiste em pares de chave / valor binário que compartilham muitas semelhanças com um arquivo de sequência. O RCFile divide os dados horizontalmente em grupos de linhas. Um ou vários grupos são armazenado em um arquivo HDFS. Em seguida, o RCFile salva os dados do grupo de linhas em uma coluna salvando a primeira coluna em todas as linhas e, em seguida, a segunda coluna em todas as linhas e assim por diante. Esse formato é divisível e permite que o Hive pule irrelevantes partes dos dados e obtenha os resultados mais rápido e mais barato • ORC: é a abreviação de Coluna de linha otimizada. Está disponível desde o Hive v0.11.0. O formato ORC pode ser considerado uma versão aprimorada do RCFILE. Ele fornece um 20/03/2023, 23:05 Descomplica | Fundamentos De Big Data https://aulas.descomplica.com.br/pos/pos-graduacao-em-analise-de-dados/turma/fundamentos-de-big-data-cdc4a8/aula/processamento-dos-d… 14/17 tamanho de bloco maior de 256 MB por padrão (RCFILE tem 4 MB e SEQUENCEFILE tem 1 MB), otimizado para grandes leituras sequenciais no HDFS para maior taxa de transferência e menos arquivos para reduzir a sobrecarga no nome do nó. Diferente do RCFILE, que conta com o metastore para conhecer os tipos de dados, o arquivo ORC entende os tipos de dados usando codificadores específicos para otimizar a compactação, dependendo dos tipos diferentes. Ele também armazena estatísticas básicas, como MIN, MAX, SUM e COUNT, em colunas, além de um índice leve que pode ser usado para pular blocos de linhas que não importam. • PARQUET: Esse é outro formato de arquivo colunar de linhas com design semelhante ao o do ORC. Além disso, o Parquet tem um suporte mais amplo para a maioria projetos no ecossistema, em comparação com o ORC, que é apoiado 20/03/2023, 23:05 Descomplica | Fundamentos De Big Data https://aulas.descomplica.com.br/pos/pos-graduacao-em-analise-de-dados/turma/fundamentos-de-big-data-cdc4a8/aula/processamento-dos-d… 15/17 principalmente por Colmeia, Porco e Faísca. O PARQUET aproveita as melhores práticas no design de Dremel do Google (consulte http://research.google.com/pubs/pub36632.html) para suportar a estrutura aninhada de dados. PARQUET foi suportado por um plugin desde o Hive v0.10.0 e obteve suporte nativo após o v0.13.0 Compressão As técnicas de compressão no Hive podem reduzir significativamente a quantidade de transferência de dados entre mapeadores e redutores comprimindo adequadamente a saída intermediária e final dados. Como resultado, a consulta terá melhor desempenho. Para compactar arquivos intermediários produzido entre várias tarefas do MapReduce, precisamos definir a seguinte 20/03/2023, 23:05 Descomplica | Fundamentos De Big Data https://aulas.descomplica.com.br/pos/pos-graduacao-em-analise-de-dados/turma/fundamentos-de-big-data-cdc4a8/aula/processamento-dos-d… 16/17 propriedade (false por padrão) na sessão da linha de comandos ou no arquivo hive-site.xml. Armazenamento Os dados usados ou verificados com frequência podem ser identificados como dados quentes. Geralmente, consulta o desempenho em dados quentes é fundamental para o desempenho geral. Referência Bibliográfica - The Mongo DB 3.4 Manual — MongoDB Manual 3.4, disponível em http://docs.mongodb.com/manual/ - Apache Cassandra Documentation v4.0, disponível em http://cassandra.apache.org/doc/latest/. http://docs.mongodb.com/manual/ http://cassandra.apache.org/doc/latest/ 20/03/2023, 23:05 Descomplica | Fundamentos De Big Data https://aulas.descomplica.com.br/pos/pos-graduacao-em-analise-de-dados/turma/fundamentos-de-big-data-cdc4a8/aula/processamento-dos-d… 17/17 - R. Elmasri and S. B. Navathe. Fundamentals of
Compartilhar