Metodologia de sucesso da implementação do Azure Synapse: avaliar o design do Pool do Spark

Observação

Este artigo faz parte da série de artigos Sucesso por design da implementação do Azure Synapse. Para obter uma visão geral da série, confira Sucesso da implementação do Azure Synapse no design.

Avalie o design do Pool do Apache Spark para identificar problemas e validar se ele atende às diretrizes e aos requisitos. Ao avaliar o design antes do início do desenvolvimento da solução, você pode evitar bloqueadores e alterações inesperadas de design. Dessa forma, você protege a linha do tempo e o orçamento do projeto.

O Apache Spark no Azure Synapse fornece o processamento paralelo de dados do Apache Spark ao Azure Synapse Analytics. Esta avaliação oferece diretrizes que indicam quando o Apache Spark no Azure Synapse é adequado ou não para sua carga de trabalho. Ela descreve pontos a serem considerados quando você está avaliando os elementos de design da solução que incorporam os Pools do Spark.

Análise de adequação e lacuna

Ao planejar a implementação de Pools do Spark com o Azure Synapse, primeiro verifique se essa é a opção mais adequada para sua carga de trabalho.

Considere os pontos a seguir.

  • Sua carga de trabalho requer engenharia de dados/preparação de dados?
    • O Apache Spark funciona melhor para cargas de trabalho que exigem:
      • Limpeza de dados.
      • Transformação de dados semiestruturados, como XML, em relacionais.
      • Transformação complexa de texto livre, como correspondência difusa ou NLP (processamento de linguagem natural).
      • Preparação de dados para ML (machine learning).
  • Sua carga de trabalho de preparação de dados/engenharia de dados envolve transformações complexas ou simples? E você está procurando uma abordagem com pouco código/sem código?
    • Para transformações simples, como remover colunas, alterar tipos de dados de coluna ou unir conjuntos de dados, considere criar um pipeline do Azure Synapse usando uma atividade de fluxo de dados.
    • As atividades de fluxo de dados oferecem uma abordagem com pouco código/sem código para preparar o dados.
  • Sua carga de trabalho requer ML em Big Data?
    • O Apache Spark funciona bem para conjuntos de dados grandes que serão usados para ML. Se você estiver usando conjuntos de dados pequenos, considere usar o Azure Machine Learning como o serviço de computação.
  • Você planeja executar a exploração de dados ou a análise de consulta ad hoc em Big Data?
    • O Apache Spark no Azure Synapse oferece exploração de dados baseada em Python, Scala, SQL e .NET. No entanto, se você precisar de uma experiência T-SQL (Transact-SQL) completa, considere usar um pool de SQL sem servidor.
  • Você tem uma carga de trabalho atual do Spark/Hadoop e precisa de uma plataforma de Big Data unificada?
    • O Azure Synapse oferece uma plataforma analítica unificada para trabalhar com Big Data. Há pools sem servidor do Spark e de SQL para consultas ad hoc e o pool de SQL dedicado para relatórios e fornecimento de dados.
    • A transferência de uma carga de trabalho do Spark/Hadoop do ambiente local (ou de outro ambiente de nuvem) pode envolver algumas refatorações que você deve considerar.
    • Se você estiver procurando uma abordagem lift-and-shift de transferência do ambiente de Big Data do Apache local para a nuvem e precisar atender a um SLA (Contrato de Nível de Serviço) de engenharia de dados estrito, considere usar o Azure HDInsight.

Considerações sobre arquitetura

Para garantir que o Pool do Apache Spark atenda aos seus requisitos de excelência operacional, desempenho, confiabilidade e segurança, há algumas áreas principais a serem validadas na arquitetura.

Excelência operacional

Quanto à excelência operacional, avalie os pontos a seguir.

Eficiência do desempenho

Quanto à eficiência de desempenho, avalie os pontos a seguir.

  • Tamanho do arquivo e tipo de arquivo: o tamanho do arquivo e o número de arquivos afetam o desempenho. Projete a arquitetura para garantir que os tipos de arquivo sejam propícios à ingestão nativa com o Apache Spark. Além disso, prefira menos arquivos grandes em vez de muitos arquivos pequenos.
  • Particionamento: identifique se o particionamento no nível da pasta e/ou do arquivo será implementado para sua carga de trabalho. As partições de pasta limitam a quantidade de dados a serem pesquisados e lidos. As partições de arquivo reduzem a quantidade de dados a serem pesquisados dentro do arquivo, mas se aplicam apenas a formatos de arquivo específicos que devem ser considerados na arquitetura inicial.

Confiabilidade

Quanto à confiabilidade, avalie os pontos a seguir.

  • Disponibilidade: os Pools do Spark têm um tempo de inicialização de três a quatro minutos. Esse tempo pode ser maior quando há muitas bibliotecas a serem instaladas. Ao projetar cargas de trabalho de lote ou de streaming, identifique o SLA de execução do trabalho nas informações de avaliação e determine qual arquitetura é mais adequada às suas necessidades. Além disso, considere que cada execução de trabalho cria um cluster de Pool do Spark.
  • Ponto de verificação: o streaming do Apache Spark tem um mecanismo de ponto de verificação interno. O ponto de verificação permite que o fluxo se recupere da última entrada processada em caso de falha em um nó no pool.

Segurança

Quanto à segurança, avalie os pontos a seguir.

  • Acesso a dados: o acesso a dados precisa ser considerado em relação à conta do ADLS (Azure Data Lake Storage) anexada ao workspace do Azure Synapse. Além disso, determine os níveis de segurança necessários para acessar os dados que não estão no ambiente do Azure Synapse. Confira as informações coletadas durante a fase de avaliação.
  • Rede: examine as informações e os requisitos de rede coletados durante a avaliação. Se o design envolver uma rede virtual gerenciada com o Azure Synapse, considere as implicações que esse requisito terá no Apache Spark no Azure Synapse. Uma das implicações é a incapacidade de usar o Spark SQL ao acessar dados.

Próximas etapas

No próximo artigo da série Sucesso do Azure Synapse no design, saiba como avaliar seu plano de projeto de data warehouse moderno antes do início do projeto.

Para obter mais informações sobre as práticas recomendadas, confira as Diretrizes do Apache Spark para Azure Synapse.