Este projeto permite a inserção de dados simulados em um banco de dados PostgreSQL, além de fornecer funcionalidades para medir a performance de leitura de dados e realizar outras operações, como limpar, remover e contar registros em tabelas específicas.
Antes de começar, você precisa ter as seguintes ferramentas instaladas:
-
Python 3.7+
-
Docker-compose
Você precisa iniciar o banco de dados:
docker-compose up
-
As dependências do projeto listadas no arquivo
requirements.txt
:AVISO: Recomendado criar um ambiente virtual antes de instalar as dependencias:
python3 -m venv .venv source .venv/bin/activate
sudo apt-get install libpq-dev
pip install -r requirements.txt
Caso queira testar o PySpark, você precisa ter o Java instalado.
Passos para instalar o Java no Linux:
- Atualize os pacotes do sistema:
sudo apt update
- Instale o Java Development Kit (JDK):
sudo apt install default-jdk
Você deve configurar o arquivo config.json
para definir os parâmetros de conexão ao banco de dados e as configurações da simulação.
Aqui está um exemplo do arquivo config.json
:
{
"db_config": {
"dbname": "rasa",
"user": "rasa",
"password": "rasa",
"host": "172.26.0.2",
"port": "5432"
},
"simulation_config": {
"batch_size": 1000,
"total_batches": 10
},
"analysis_config": {
"query_limit": 100000
}
}
-
db_config
: Configurações do banco de dados PostgreSQL.-
dbname
: Nome do banco de dados. -
user
: Nome do usuário do banco de dados. -
password
: Senha do banco de dados. -
host
: Endereço do servidor onde o banco de dados está rodando.AVISO: caso esteja usando docker, para descobrir seu host, basta executar o comando:
docker inspect <container id> | grep "IPAddress"
a saida deve ser algo como:
> docker inspect d57f6ed76c76 | grep "IPAddress" "SecondaryIPAddresses": null, "IPAddress": "", "IPAddress": "172.26.0.2",
nesse caso o host é
172.26.0.2
-
port
: Porta do PostgreSQL (geralmente5432
).
-
-
simulation_config
: Configurações para simulação de inserção de dados.batch_size
: Número de linhas que serão inseridas em cada transação (lote).total_batches
: Número de vezes que os lotes serão inseridos no banco.
-
analysis_config
: Configurações para medir a performance de consultas.query_limit
: Limite de linhas a serem lidas ao medir a performance com o Pandas.
Para iniciar o menu interativo, basta rodar o seguinte comando:
python main.py
O menu interativo permitirá que você escolha entre várias operações:
Menu de Opções:
1. Criar uma tabela
2. Inserir dados simulados em uma tabela
3. Apagar todos os dados de uma tabela
4. Remover uma tabela completamente
5. Medir a performance de uma tabela
6. Listar todas as tabelas disponíveis
7. Contar registros em uma tabela específica
8. Sair
Cria uma nova tabela com o nome especificado. Você será solicitado a informar o nome da tabela.
Insere dados simulados na tabela especificada com base nas configurações de batch_size
e total_batches
definidas no config.json
.
Remove todos os registros de uma tabela específica, mas mantém a estrutura da tabela.
Apaga uma tabela do banco de dados, removendo tanto os registros quanto a estrutura da tabela.
Realiza uma leitura dos dados da tabela especificada e mede o tempo e a memória utilizados. O número de linhas lidas é controlado pelo parâmetro query_limit
em config.json
.
Mostra uma lista de todas as tabelas existentes no banco de dados.
Conta e exibe o número de registros em uma tabela específica.
Encerra o programa.
-
Criar uma tabela: Escolha a opção 1 e forneça o nome da tabela que deseja criar:
Informe o nome da tabela que deseja criar: my_new_table
-
Inserir dados simulados: Escolha a opção 2 e forneça o nome da tabela onde os dados simulados serão inseridos:
Informe o nome da tabela onde deseja inserir os dados simulados: my_new_table
-
Medição de Performance: Escolha a opção 5 e forneça o nome da tabela para medir a performance:
Informe o nome da tabela que deseja medir a performance: my_new_table
Este projeto é distribuído sob a licença MIT.