-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathetl-histogram-servguard.R
112 lines (84 loc) · 3.63 KB
/
etl-histogram-servguard.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#ETL - HISTOGRAM - SERVGUARD
#Captura de dados para o histograma:
#-------------------------------------------------------------------------------
escolhaBaseDeDados <- "SQL"
#escolhaBaseDeDados <- "CSV"
#escolhaBaseDeDados <- "simulacao"
if (escolhaBaseDeDados == "SQL") {
#Pacote para acessar dinamicamente o banco de dados:
requireNamespace("DBI", quietly = TRUE)
library(DBI)
requireNamespace("RMySQL", quietly = TRUE)
library(RMySQL)
conexao <- dbConnect(RMySQL::MySQL(),
dbname = "ServGuard",#Nome do banco de dados
host = "127.0.0.1",#IP público da instância
port = 3306,
user = "root",
password = "urubu100")
#Variavel com o select do banco:
select <- "SELECT registro FROM vista_registro_cpu WHERE idEmpresa = 1 AND fkRecurso = 1;"
#Chamar o select e transformar os dado recebidos em uma variavel:
usoCPU <- dbGetQuery(conexao, select)
} else if (escolhaBaseDeDados == "CSV"){
#colocar o codigo de captura dos dados por CSV aqui
captura <- read.csv("C:/Users/cacay/Documents/Git-Hub/ServGuard-ETLs/dados-csv.csv", sep=";")
head(captura$fkMaquinaRecurso)
usoCPU <- as.numeric(captura$registro[captura$fkMaquinaRecurso==1])
} else {
#Teste com valores simulados:
n <- 100
set.seed(22)
usoCPU <- sample(0:100, n, replace = TRUE)
}
#-------------------------------------------------------------------------------
#Captura de dados para o histograma - Fim
#Definição das faixas e plotagem do histograma:
#-------------------------------------------------------------------------------
faixas <- seq(0, 100, by=10)
histograma <- hist(usoCPU$registro, #Dados utilizados
breaks=faixas, #Faixas de 10 em 10 %
freq=TRUE,
col = ("#4E2E9E"),
main = "Histograma de uso: CPU(%)",
xlab = "Faixas de uso (%)",
ylab = "Frequência",
right = FALSE, #Extende o y a maior frequencia histograma
xlim = c(0,100))#Fixa o valor de 0 a 100 na exibição
ylim = c(0, (max(histograma$counts)+2))#Fixa o valor de 0 ao max do histograma
#Colocando o valor de frequencia em cima das colunas.
text(x = histograma$mids, #Posição x
y = histograma$counts, #Posição y
labels = histograma$counts, #valor do texto
pos = 3, #Ponto aonde o texto fica, no caso 3 significa acima da coluna
cex = 0.8,) #Tamanho do texto
#Capturando o valor da frequencia de cada faixa do histograma:
frequencias <- histograma$counts
colunas <- histograma$breaks
#-------------------------------------------------------------------------------
#Definição das faixas e plotagem do histograma - Fim
#Inserção dos dados no Banco:
#-----------------------------------------------------------------------------------------
if (escolhaBaseDeDados == "SQL") {
#Criando novo histograma no banco de dados
fkEmpresa<-1
insertHist <- sprintf(
"INSERT INTO Histograma (fkEmpresa) VALUE (%d);",
fkEmpresa
)
#Exectuar o insert
dbExecute(conexao, insertHist)
#Inserindo os valores do histograma criado no banco de dados
for (i in 1:length(frequencias)) {
insertColuna <- sprintf(
"INSERT INTO HistogramaColuna (fkHistograma, registroColuna) VALUES
((SELECT MAX(idHistograma) FROM Histograma), %f);",
frequencias[i]
)
#exectuar o insert
dbExecute(conexao, insertColuna)
}
dbDisconnect(conexao)
}
#-------------------------------------------------------------------------------
#Inserção dos dados no Banco - Fim