Principais pormenores
Aceder a múltiplas fontes de dados com a extração de dados.
-
DesafioRecolha rápida e exacta de dados de várias fontes
-
SoluçãoMelhores práticas para uma recolha de dados da Web robusta e resistente
-
Tecnologias e ferramentasMicrosoft Azure Cloud Services para alojamento, afinação e administração de infra-estruturas. Linguagem Python com as bibliotecas e estruturas necessárias (Azure-sdk, Scrapy, Selenium, etc.) para o processo de recolha e rastreio de sítios Web
Cliente
O cliente é uma organização não comercial que presta apoio a pequenas empresas e empresários afro-americanos. Orgulham-se de fornecer serviços que ajudam os empresários afro-americanos a obter subsídios e a obter sucesso em concursos.
Desafio: recolha rápida e exacta de dados de várias fontes
O cliente lida regularmente com grandes quantidades de dados provenientes de várias fontes. Por isso, a gestão de dados tornou-se uma preocupação para eles.
Pretendiam recolher ofertas de emprego, orientação e oportunidades de rede para empresários afro-americanos talentosos de vários sítios Web e publicá-las na sua própria plataforma. Assim, os empresários podem facilmente descobrir empresas pertencentes a afro-americanos e apoiá-las ou criar a sua própria empresa.
A ESSID Solutions foi desafiada a desenvolver uma solução sólida de recolha de dados para o mercado do cliente.
Solução: melhores práticas para uma recolha de dados da Web robusta e resiliente
A nossa equipa de engenheiros aplicou a sua experiência em recolha de dados para permitir uma recolha eficaz de dados de várias fontes.
A equipa da ESSID Solutions teve de configurar a infraestrutura e o fluxo de código para o cliente:
-
Parte Git e CI/CD
Para a gestão de código, foi utilizado o repositório AzureDevOps com uma configuração de pipeline que permitiu à nossa equipa criar e enviar imagens docker para o registo utilizando um agente de trabalho paralelo.
-
Registo e parte da aplicação lógica
Em seguida, criámos o Registo de Contentores do Azure Docker em Azure para armazenar as nossas imagens docker.
Em seguida, precisámos de criar instâncias de docker a partir de imagens utilizando a aplicação Azure Logic para executar o código do raspador em paralelo e separadamente.
-
Peça do raspador
Durante esta fase, a equipa da ESSID Solutions criou instâncias de contentores com aplicações Logic. Depois, precisámos de dar a cada contentor acesso aos recursos do Azure e a dados sensíveis, como palavras-passe, cadeias de ligação, etc., que estavam armazenados no Azure KeyVault.
Para armazenar os resultados dos scrapers, a nossa equipa decidiu criar uma conta de armazenamento que seria como uma pasta na nuvem para guardar os dados recolhidos. Depois disso, conseguimos iniciar os nossos scrapers de forma manual, mas precisávamos de alguma orquestração, automatização e pós-processamento.
-
Fábrica de dados e parte de orquestração
Os nossos engenheiros executaram todos os nossos scrapers com acionador de tempo e num único pipeline executado com o Azure Data Factory.
O pipeline principal deveria iniciar todos os contentores com pedidos através da API do Azure e, em seguida, executar DataBricks Cadernos de notas para tratar os dados recolhidos.
-
DataBricks
Nesta fase, estávamos a eliminar todos os dados dos sítios Web (uma vez que o carregamento incremental de dados dos sítios Web não é possível ou difícil) e a processar/gravar todos os dados na base de dados. Antes de carregar novos dados para a base de dados, eliminámos os dados existentes.
Como resultado, o cliente tem uma solução robusta de extração de dados que extrai dados de vários sítios e listas de empresas e reúne informações sobre empresas fundadas por afro-americanos que são úteis para os subscritores da plataforma do cliente.
Resultado: otimização da recolha de dados para reduzir o tempo de processamento
A nossa equipa de cientistas e engenheiros de dados recorreu a várias fontes para satisfazer as necessidades de recolha de dados do cliente.
A nossa solução permitiu que o cliente se tornasse mais capaz das seguintes formas
- Extração de dados à escala
- Dados estruturados fornecidos
- Baixa manutenção e rapidez
- Fácil de implementar
- Automatização.