Dataset disponibilizado pelo Kaggle
Baseado na disponibilização de datasets do Kaggle, iremos fazer a importação dos dados disponilizados para uma base de dados do Postgresql.
Para quem quiser mais informações sobre o dataset, segue o endereço de referência: https://www.kaggle.com/heesoo37/120-years-of-olympic-history-athletes-and-results
Entendendo os dados disponibilizados
athlete_events.csv - dados dos atletas que disputaram os jogos
noc_regions.csv - sigla de 3 dígitos do Comitê Nacional Olímpico
Criando uma base de dados no Postgresql
Pelo pgAdmin4, crie uma nova base de dados chamada "olympicgames"ou um nome que voce queira:
Criação da base de dados:
Na base de dados criada, abra o Quey Tool
Cria a tabela abaixo através do código seguinte e clique em Executar
CREATE TABLE olympics (
id SERIAL,
name VARCHAR,
sex VARCHAR,
age VARCHAR,
height VARCHAR,
weight VARCHAR,
team VARCHAR,
NOC VARCHAR,
games VARCHAR,
year INT,
season VARCHAR,
city VARCHAR,
sport VARCHAR,
event VARCHAR,
medal VARCHAR
)
Crie a segunda tabela abaixo, fazendo o mesmo processo com o código seguinte:
CREATE TABLE noc_regions (
noc VARCHAR,
region VARCHAR,
notes VARCHAR
)
Observe que as tabelas foram criadas, aparecendo em ambiente gráfico. (Se não estiver aparecendo, clique em refresh sobre o objeto "Tables")
Utilizando python para fazer a importação para um banco de dados relacional
Após ter sido feita a criação dos dados, faremos a importação através do python, utilizando o ambiente do Jupyter Notebook do Anaconda ou qualquer um que esteja acostumado a utilizar:
Faça a instalação do pacote "psycopg2", sendo este um driver para conexão entre o Python.
Para quem utiliza o anaconda, temos a referencia do site https://anaconda.org/anaconda/psycopg2 para fazer a instalação desse pacote.
No terminal onde está instalado o Python, digite o comando (no caso do Anaconda)
conda install -c anaconda psycopg2
Os arquivos de importação devem estar no lado server do Postgresql. No meu caso, estarão na pasta abaixo:
Codificação do Anaconda para fazer a importação de Dados
No Github, foi deixado os downloads dos datasets e mais o código do Jupyter Notebook para ser fazer a importação dos dados csv para tabelas do Postgresql
Segue trecho do código disponibilizado
Dados Importados para as tabelas Postgres
Depois de ter feita toda a importação dos dados, é possível consultar os dados de forma mais simples via SQL ou utiliza-los no Python via Pandas para fazer análise de dados:
Tabela Olympics importada
Tabela Noc_Regions importada
Depois serão postados as 2 formas para se fazer a manipulação dos dados importados para essas tabelas.
Uma observação a ser feita é que essa importação foi uma tentativa de reprodução do site original https://towardsdatascience.com/studying-up-for-the-tokyo-2021-olympics-with-sql-719a0ae3779b . Mesmo parecendo ser fácil a reprodução, os ambientes utilizados para reprodução não foram descritos pelo autor original, a qual não foi possível fazer a reprodução sem adaptações.
O ambiente que utilizei foi:
- Um host fisico Windows 10 Pro, onde estava instalado o Anaconda e o pgAdmin4
- Uma máquina virtual Oracle VirtualBox, com Ubuntu 20.04 e Postgresql 12
- O arquivo do Jupyter Notebook foi executado a partir do Host Fisico do Windows 10, acessando o servidor virtual do SGDB do Postgresql.
Referência sobre conexão do Python com Postgres: https://www.postgresqltutorial.com/postgresql-python/connect/
Referência sobre problemas com importação via Copy From do Postgres:
Referência sobre problemas de não encontrar o arquivo referenciado do lado do cliente:
Referência sobre o problema de utilizar o \COPY do lado do cliente:
Komentarze