Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
HOTMapper
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Harbor Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
HOTMapper
HOTMapper
Commits
01cabc42
Commit
01cabc42
authored
6 years ago
by
Henrique Varella Ehrenfried
Browse files
Options
Downloads
Patches
Plain Diff
Remove old README
parent
99c0e40f
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
README.md
+0
-126
0 additions, 126 deletions
README.md
with
0 additions
and
126 deletions
README.md
deleted
100644 → 0
+
0
−
126
View file @
99c0e40f
# Administrador de base de dados SimCAQ/SMPPIR #
Esse repositório implementa a classe DatabaseTable e funções para verificar pareamento entre
diferentes anos inseridos no banco de dados. A ferramenta é desenvolvida em Python 3, e usa
como base arquivos de mapeamento em formato CSV.
Para a utilização a partir da linha de comando, a CLI manage.py pode ser utilizada sem
que se invoque manualmente as funções a partir da linha de comando Python.
## Requisitos ##
O utilitário foi desenvolvido em Python 3 usando a biblioteca SQLAlchemy com vistas ao banco
de dados MonetDB. Versões futuras podem ter modificações visando a compatibilidade com outros
bancos de dados, aproveitando as capacidades da biblioteca base.
Para a instalação dos requisitos conforme usados durante o desenvolvimento, o arquivo
requirements.txt pode ser usado como base (Recomenda-se o uso de um ambiente virtual).
```
bash
(
env
)
$
pip
install
-r
requirements.txt
```
A CLI depende do módulo manage.py. Demais dependências serão listadas a seguir.
### Requisitos para a interface com a base de dados ###
*
pymonetdb
*
SQLAlchemy
*
sqlalchemy-monetdb
### Requisitos para geração de pareamentos ###
*
numpy
*
pandas
*
xlrd
*
XlsxWriter
## Interface de linha de comando ##
A invocação da CLI utiliza o padrão do pacote manage.py, que é:
```
bash
$
python manage.py
[
commando]
[
argumentos posicionais]
[
argumentos opcionais com valor]
```
Os comandos já implementados são:
*
create: Cria a tabela conforme definido no protocolo de mapeamento.
```
bash
$
python manage.py create <nome da tabela>
```
O único argumento usado é o nome da tabela. O script procurará por um protocolo de
mapeamento com o mesmo nome para a busca do esquema das colunas.
*
insert: insere um arquivo de dados em formato CSV ou similar em uma tabela existente.
```
bash
$
python manage.py insert <caminho para o arquivo> <nome da tabela> <ano>
[
--sep
separador]
[
--null
valor_nulo]
```
O caminho para o arquivo deve ser absoluto. A tabela utilizada deve existir e estar
sincronizada com o protocolo de mapeamento correspondente. O separador padrão utilizado
é ponto e vírgula (';'); caso outros separadores sejam utilizados pelo arquivo fonte,
devem ser especificados com --sep (por exemplo --sep
\\
| para pipe). O valor nulo padrão
é string vazia. Caso outro valor seja usado, deve ser especificado com --null.
*
drop: derruba uma tabela do banco de dados.
```
bash
$
python manage.py drop <nome da tabela>
```
O comando não contorna chaves estrangeiras que apontem para a tabela, e o banco de dados
pode retornar um erro caso exista alguma.
*
remap: sincroniza uma tabela com o protocolo de mapeamento.
```
bash
$
python manage.py remap <nome da tabela>
```
Esse comando deve ser utilizado sempre que um protocolo de mapeamento for atualizado.
O remapeamento permite a criação de novas colunas, derrubada de colunas existentes,
renomeamento de colunas e mudança de tipo. Dependendo do tamanho da tabela, o uso de
memória primária pode ser intenso.
*
generate_pairing_report: gera relatórios de pareamento para comparação de dados ano
a ano.
```
bash
$
python manage.py generate_pairing_report
[
--output
xlsx|csv]
```
Os relatórios são criados na pasta pairing. Caso o formato não seja especificado,
csv será utilizado (um arquivo será criado para cada tabela). Caso xlsx seja o formato
utilizado, um arquivo será criado com todas as tabelas separadas em diferentes planilhas.
*
generate_backup: Cria/Atualiza o arquivo monitorado para o backup.
```
bash
$
python manage.py generate_backup
```
O arquivo é criado ou atualizado na máquina onde o banco de dados da produção está,
o procedimento de backup da equipe de infraestrutura o monitora para realizar o procedimento.
# Script para criar o Banco de Dados e adicionar entradas #
O script auto.sh pode ser utilizado para criar as tabelas base do banco de dados, como
também as tabelas dos protocolos de mapeamento e inserir dados nelas. O objetivo do script
é facilitar a criação do banco para os desenvolvedores.
O script apresenta um texto de ajuda quando é executado sem parâmetros. Para o funcionamento
correto é necessário seguir o padrão dos parâmetros para cada comando.
1.
Observação: É importante verificar o arquivo de configurações para verificar o nome do
banco que será utilizado pelo script.
2.
Observação: A execução dos comandos da biblioteca não são interrompidos por erros.
Exemplo de execução:
```
bash
$
./auto.sh all testdb /home/username/Documents/c3sl/datafiles/ 2016 2016
```
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment