Metodologia de sucesso da implementação da Sinapse: Avalie o projeto da piscina Spark
Nota
Este artigo faz parte da série de artigos de sucesso da implementação do Azure Synapse by design . Para obter uma visão geral da série, consulte Azure Synapse implementation success by design.
Você deve avaliar o design do pool do Apache Spark para identificar problemas e validar se ele atende às diretrizes e requisitos. Ao avaliar o design antes do início do desenvolvimento da solução, você pode evitar bloqueadores e alterações inesperadas no projeto. Dessa forma, você protege o cronograma e o orçamento do projeto.
O Apache Spark no Synapse traz o processamento de dados paralelo do Apache Spark para o Azure Synapse Analytics. Esta avaliação fornece orientação sobre quando o Apache Spark no Azure Synapse é - ou não - o ajuste certo para sua carga de trabalho. Ele descreve os pontos a serem considerados ao avaliar os elementos de design da solução que incorporam pools do Spark.
Análise de lacunas de ajuste
Ao planejar a implementação de pools do Spark com o Azure Synapse, primeiro verifique se eles são os mais adequados para sua carga de trabalho.
Considere os seguintes pontos.
- 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.
- Transformar dados semiestruturados, como XML, em relacionais.
- Transformação complexa de texto livre, como correspondência difusa ou processamento de linguagem natural (NLP).
- Preparação de dados para machine learning (ML).
- O Apache Spark funciona melhor para cargas de trabalho que exigem:
- Sua carga de trabalho para engenharia de dados/preparação de dados envolve transformações complexas ou simples? E você está procurando uma abordagem low-code/no-code?
- 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 fornecem uma abordagem low-code/no-code para preparar seus dados.
- Sua carga de trabalho requer ML em big data?
- O Apache Spark funciona bem para grandes conjuntos de dados que serão usados para ML. Se você estiver usando pequenos conjuntos de dados, considere usar o Aprendizado de Máquina do Azure como o serviço de computação.
- Você planeja realizar exploração de dados ou análise de consulta ad hoc em big data?
- O Apache Spark no Azure Synapse fornece Python/Scala/SQL/. Exploração de dados com base em NET. No entanto, se você precisar de uma experiência Transact-SQL (T-SQL) completa, considere usar um pool SQL sem servidor.
- Você tem uma carga de trabalho atual do Spark/Hadoop e precisa de uma plataforma unificada de big data?
- O Azure Synapse fornece uma plataforma analítica unificada para trabalhar com big data. Há pools sem servidor Spark e SQL para consultas ad hoc e o pool SQL dedicado para relatórios e fornecimento de dados.
- Mudar de uma carga de trabalho do Spark/Hadoop do local (ou de outro ambiente de nuvem) pode envolver alguma refatoração que você deve levar em consideração.
- Se você está procurando uma abordagem de elevação e mudança do seu ambiente de big data Apache do local para a nuvem e precisa atender a um contrato de nível de serviço (SLA) de engenharia de dados rigoroso, considere usar o Azure HDInsight.
Considerações sobre arquitetura
Para garantir que seu pool Apache Spark atenda aos seus requisitos de excelência operacional, desempenho, confiabilidade e segurança, há áreas-chave para validar em sua arquitetura.
Excelência operacional
Para excelência operacional, avalie os seguintes pontos.
- Ambiente: Ao configurar seu ambiente, projete seu pool do Spark para aproveitar recursos como dimensionamento automático e alocação dinâmica. Além disso, para reduzir custos, considere ativar o recurso de pausa automática.
- Gerenciamento de pacotes: determine se as bibliotecas Apache Spark necessárias serão usadas em um espaço de trabalho, pool ou nível de sessão. Para obter mais informações, consulte Gerenciar bibliotecas para o Apache Spark no Azure Synapse Analytics.
- Monitoramento: o Apache Spark no Azure Synapse fornece monitoramento interno de pools e aplicativos do Spark com a criação de cada sessão de faísca. Considere também implementar o monitoramento de aplicativos com o Azure Log Analytics ou Prometheus e Grafana, que você pode usar para visualizar métricas e logs.
Eficiência de desempenho
Para eficiência de desempenho, avalie os seguintes pontos.
- Tamanho e tipo de ficheiro: O tamanho e o número de ficheiros têm um impacto no desempenho. Projete a arquitetura para garantir que os tipos de arquivo sejam propícios à ingestão nativa com o Apache Spark. Além disso, incline-se para menos arquivos grandes em vez de muitos arquivos pequenos.
- Particionamento: identifique se o particionamento no nível da pasta e/ou arquivo será implementado para sua carga de trabalho. As partições de pasta limitam a quantidade de dados para pesquisar e ler. As partições de arquivo reduzem a quantidade de dados a serem pesquisados dentro do arquivo - mas só se aplicam a formatos de arquivo específicos que devem ser considerados na arquitetura inicial.
Fiabilidade
Para maior fiabilidade, avalie os seguintes pontos.
- Disponibilidade: As piscinas de faísca têm um tempo de início de três a quatro minutos. Pode levar mais tempo se houver muitas bibliotecas para instalar. Ao projetar cargas de trabalho em lote versus streaming, identifique o SLA para executar o trabalho a partir de suas informações de avaliação e determine qual arquitetura melhor atende às suas necessidades. Além disso, leve em consideração que cada execução de trabalho cria um novo cluster de pool do Spark.
- Ponto de verificação: O streaming do Apache Spark tem um mecanismo de ponto de verificação integrado. O ponto de verificação permite que seu fluxo se recupere da última entrada processada caso haja uma falha em um nó em seu pool.
Segurança
Por segurança, avalie os seguintes pontos.
- Acesso a dados: o acesso a dados deve ser considerado para a conta do Azure Data Lake Storage (ADLS) anexada ao espaço de trabalho Synapse. Além disso, determine os níveis de segurança necessários para acessar quaisquer dados que não estejam no ambiente do Azure Synapse. Consulte as informações recolhidas durante a fase de avaliação.
- Networking: Analise 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 implicação é a incapacidade de usar o Spark SQL ao acessar dados.
Próximos passos
No próximo artigo da série Azure Synapse success by design, saiba como avaliar seu plano de projeto de data warehouse moderno antes do início do projeto.
Para obter mais informações sobre práticas recomendadas, consulte Apache Spark for Azure Synapse Guidance.