top of page
  • Foto do escritorRodrigo Saito

Importação de Dados dos 120 anos dos Jogos Olímpicos (csv para Postgresql)

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:









31 visualizações0 comentário

Komentarze


bottom of page