Como trabalhar com os dados da Johns Hopkins University sobre COVID-19 no MongoDB Atlas
Aaron Bassett, Joe Karlsson, Mark Smith, Maxime Beugnet8 min read • Published Feb 17, 2022 • Updated Sep 09, 2024
Avalie esse Artigo
Nosso Cluster MongoDB está sendo executado na versão 7.0.3.
Você pode se conectar a ele usando MongoDB Compass o , o mongo shell, SQL ou qualquer MongoDB driver que ofereça suporte MongoDB 7 a pelo menos .0 com o seguinte URI:
1 mongodb+srv://readonly:readonly@covid-19.hip2i.mongodb.net/covid19
readonly
é o nome de usuário e a senha, eles não devem ser substituídos.- A Universidade John Hopkins (JHU) parou de coletar dados a partir de 10de março de 2023.
- A primeira entrada de dados é 2020-01-22, a última é 2023-03-09.
- Cluster agora em execução em 7.0.3
- Foi removido o banco de dados
covid19jhu
com os dados brutos. Use o banco de dados muito melhorcovid19
. - O acesso às Ferramentas de BI agora está desativado.
- Atualizado o cluster para 4.4.
- Melhorou o script de importação de dados do python para calcular os valores diários utilizando os valores cumulativos existentes com um Aggregation Pipeline.
- confirmed_daily.
- deaths_daily.
- recovered_daily.
- Renomeou o campo "cidade" para "condado" e "cidades" para "condados", quando apropriado. Elas contêm os dados da coluna "Admin2" em JHU CSVs.
- A collection
covid19.statistics
foi renomeada comocovid19.global_and_us
para maior clareza. - O conjunto de dados é atualizado a cada hora, portanto, qualquer confirmação feita pela JHU será refletida no máximo uma hora depois em nosso cluster.
À medida que a pandemia de COVID-19 varreu o mundo, o trabalho da JHU (Universidade Johns Hopkins) e seu painel de controle19 do COVID- tornam-se de vital importância para manter as pessoas informadas sobre o progresso do vírus em suas comunidades, em seus países e no mundo .
O JHU não apenas publica seu painel, mas também disponibiliza os dados que o alimentam gratuitamente para qualquer pessoa usar. No entanto, seus dados são fornecidos como arquivos CSV simples que você precisa baixar toda vez para depois consultá-los. Decidimos tornar esses dados atualizados mais acessíveis para que as pessoas possam construir outras análises e aplicativos diretamente sobre o conjunto de dados.
Agora estamos hospedando um serviço com uma cópia atualizada com frequência dos dados do JHU no MongoDB Atlas, nosso cloud. Esses dados são gratuitos para qualquer pessoa consultar usando a MongoDB e/ou SQL. Também oferecemos suporte direto a uma variedade de BI, para que você possa consultar os dados com Tableau, Qlik e Excel.
Com o conjunto de dados MongoDB COVID-19 , não haverá mais downloads manuais e nem alterações frequentes de formato. Com esse conjunto de dados, esse serviço fornecerá uma visualização consistente de JSON e SQL todos os dias, sem a necessidade de umETLdownstream.
Nenhum dos dados reais é modificado. Ele é estruturado de forma simples para facilitar a consulta, colocando-o em um clusterMongoDB Atlas e criando algumas API convenientes.
Todos os dados que usamos para criar o conjunto de dados MongoDB COVID-19 vêm do conjunto de dadosJHU. Por sua vez, eis as fontes que eles estão usando:
- a Organização Global de Saúde,
- a Commissão Nacional de Saúde da Rep. Popular da China,
- o Centro de Controle de Saúde dos Estados Unidos,
- o Departamento de Saúde do Governo da Austrália,
- Centro Europeu de Prevenção e Controle de Saúde,
- e muitos outros.
Usando os arquivos CSV que eles fornecem, estamos produzindo dois bancos de dados diferentes em nosso cluster.
covid19
contém o mesmo conjunto de dados, mas com um design de esquema MongoDB limpo com todas as boas práticas que recomendamos.
Aqui está um exemplo de documento no banco de dados
covid19
:1 { 2 "_id" : ObjectId("5e957bfcbd78b2f11ba349bf"), 3 "uid" : 312, 4 "country_iso2" : "GP", 5 "country_iso3" : "GLP", 6 "country_code" : 312, 7 "state" : "Guadeloupe", 8 "country" : "France", 9 "combined_name" : "Guadeloupe, France", 10 "population" : 400127, 11 "loc" : { 12 "type" : "Point", 13 "coordinates" : [ -61.551, 16.265 ] 14 }, 15 "date" : ISODate("2020-04-13T00:00:00Z"), 16 "confirmed" : 143, 17 "deaths" : 8, 18 "recovered" : 67 19 }
O documento acima foi obtido unindo o arquivo
UID_ISO_FIPS_LookUp_Table.csv
e a série temporal de arquivos CSV que você pode encontrar nesta pasta.Alguns campos podem não existir em todos os documentos porque não são relevantes ou simplesmente não são fornecidos pelo JHU. Se você quiser mais detalhes, execute uma análise de esquema com oMongoDB Compass nas diferentes collection disponíveis.
Se você mesmo preferir hospedar os dados, os scripts necessários para baixar e transformar os dados JHU são de código aberto. Você pode visualizá-los e instruções sobre como usá-los em nosso repositório do GitHub.
No banco de dados
covid19
, você encontrará coleções 5 que são detalhadas em nosso arquivo README.md do repositório GitHub.- metadata
- global (os dados dos arquivos globais de série temporal)
- us_only (os dados dos arquivos dos EUA da série temporal)
- global_and_us (o mais completo)
- países_summary (igual ao global, mas os países são agrupados em um único documento para cada data)
Você pode começar a explorar os dados imediatamente sem qualquer MongoDB ou experiência de programação usando MongoDB Charts ou MongoDB Compass.
Nas seções a seguir, também mostraremos como consumir esse conjunto de dados usando os drivers Java, Node.js e Python.
Mostraremos como realizar as seguintes queries em cada idioma:
- Recupere os últimos 5 dias de dados para um determinado local,
- Recuperar todos os dados do último dia,
- Faça uma query geoespacial para recuperar dados dentro de uma determinada distância de um determinado local.
Com oCharts, você pode criar visualizações dos dados usando qualquer um dos gráficos e tabelas pré-criados. Em seguida, você pode organizar isso em um painel exclusivoou incorporar os gráficos em suas páginas ou blogs.
Se você deseja criar seu próprio painel do MongoDB Charts, precisará configurar seu próprio clusterMongoDB Atlas gratuito e importar o conjunto de dados em seu cluster usando os scripts de importação ou
mongoexport & mongoimport
ou mongodump & mongorestore
. Consulte esta seção para obter mais detalhes: Fazer uma cópia dos dados.O MongoDB Compass permite que você se aprofunde nos dados usando a linguagem de query do MongoDB ou por meio do editor visual doaggregation pipeline . Executar uma série de operações nos dados, incluindo matemática, comparação e agrupamentos. Crie documentos que forneçam insights e interpreta ções exclusivas. Você pode usar o resultado de seus pipelines como fontes de dados para seus gráficos.
Para o MongoDB Compass ou seu driver, você pode usar esta connection string.
1 mongodb+srv://readonly:readonly@covid-19.hip2i.mongodb.net/covid19
Como armazenamos os dados no MongoDB, você também pode acessá-los por meio do MongoDB Shell ou usando qualquer um de nossos drivers. Limitamos o acesso a essas coleções para "somente leitura". Você pode encontrar as cadeias de conexão para o shell e o Compass abaixo, bem como exemplos de drivers para Java, Node.jse Python para começar.
1 mongo "mongodb+srv://covid-19.hip2i.mongodb.net/covid19" --username readonly --password readonly
O código de amostra mostra como instalar o PyMongo e usá-lo para se conectar ao conjunto de dados MongoDB COVID-19. Existem algumas queries de exemplo que mostram como consultar os dados e exibi-los no bloco de anotações, e o último exemplo demonstra como exibir um gráfico usando Pandas & Mapplolib!
Se quiser modificar o bloco de anotações, você pode fazer uma cópia selecionando "Salvar uma cópia no Drive ..." no menu "Arquivo" e, em seguida, estará livre para editar a cópia.
Você pode obter muito valor do conjunto de dados sem nenhuma programação. Habilitamos o Atlas BI Connector (não é mais, consulte a seção de notícias), que expõe uma interface SQL para a estrutura de documentos do MongoDB. Isso significa que você pode usar ferramentas de análise e painel de dados como Tableau, Qlik Sensee até mesmo MySQL Workbench para analisar, visualizar e extrair conhecimento dos dados.
Aqui está um exemplo de uma visualização produzida em alguns cliques com o Tableau:
O Tableau é uma poderosa ferramenta de visualização de dados e painel e pode ser conectado aos nossos dados da COVID-19 em algumas etapas. Escrevemos um breve tutorial para que você comece a usar.
Conforme mencionado acima, o Atlas BI Connector está ativado (não é mais, consulte a seção Novidades), para que você possa conectar qualquer ferramenta SQL a este cluster usando as seguintes informações de conexão:
- Servidor MongoDB: cofre-19-biconnector.HI2i.mongodb.net,
- Porta: 27015,
- Banco de dados: covid19,
- Nome de usuário: readonly ou readonly?source=admin,
- Senha: somente leitura.
Acessar nossa cópia desses dados em um banco de dados somente leitura é útil, mas não será suficiente se você quiser integrá-los a outros dados em um único cluster MongoDB. Você pode obter uma cópia do banco de dados para usar offline usando uma ferramenta diferente fora do MongoDB ou para carregar em sua própria instância do MongoDB. O
mongoexport
é uma ferramenta de linha de comando que produz uma exportaçãoJSONL ou CSV de dados armazenados em uma instância MongoDB. Primeiro, siga estas instruções para instalar o MongoDB database.Agora você pode executar o seguinte em seu console para baixar os metadados e coleções global_and_us como arquivos jsonl em seu diretório atual:
1 mongoexport --collection='global_and_us' --out='global_and_us.jsonl' --uri="mongodb+srv://readonly:readonly@covid-19.hip2i.mongodb.net/covid19" 2 mongoexport --collection='metadata' --out='metadata.jsonl' --uri="mongodb+srv://readonly:readonly@covid-19.hip2i.mongodb.net/covid19"
Utilize a opção
--jsonArray
se você preferir trabalhar com uma matriz JSON em vez de um arquivoJSONL.A documentação de todos os recursos do
mongoexport
está disponível no site do MongoDB e com o comando mongoexport --help
.Depois de ter os dados em seu computador, você pode usá-los diretamente com ferramentas locais ou carregá-los em sua própria instância do MongoDB usando mongoimport.
1 mongoimport --collection='global_and_us' --uri="mongodb+srv://<user>:<password>@<your-cluster>.mongodb.net/covid19" global_and_us.jsonl 2 mongoimport --collection='metadata' --uri="mongodb+srv://<user>:<password>@<your-cluster>.mongodb.net/covid19" metadata.jsonl
Observe que você não pode executar esses comandos em nosso cluster porque o usuário que demos a você (
readonly:readonly
) não tem permissão de escrita nesse cluster. Leia nossa publicação no blog Obtendo seu cluster do MongoDB Atlas gratuito se quiser saber mais.Outra maneira inteligente de duplicar o conjunto de dados em seu próprio cluster seria usar
mongodump
e mongorestore
. Além de ser mais eficiente, ele também capturará a definição dos índices junto com os dados.1 mongodump --uri="mongodb+srv://readonly:readonly@covid-19.hip2i.mongodb.net/covid19" 2 mongorestore --drop --uri="<YOUR_URI>"
Vemos o valor e a importância de tornar esses dados o mais prontamente disponíveis possível para todos, por isso não vamos parar por aqui. Nos próximos dias, adicionaremos uma GraphQL e REST API, além de disponibilizar os dados no Excel e no Google Planilhas.
Também lançamos um programa de créditos Atlas para qualquer pessoa que trabalhe na detecção, compreensão e interrupção da propagação da COVID-19.
Se você estiver tendo problemas para acessar os dados ou tiver outros conjuntos de dados que gostaria de hospedar, entre em contato conosco na MongoDB Community. Também gostariamos de mostrar todos os serviços que você criar com base nesse conjunto de dados. Por fim, envie PRs para quaisquer alterações de código que você gostaria de fazer nos exemplos.
Você também pode entrar em contato diretamente com os autores (Aaron Bassett, Joe Karlsson, Mark Smithe Maxime Beugnet) no Twitter.