zozlak / zpd Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
Dzień dobry.
Mam pytanie. Czy na bazie IBE nalożone są jakieś limity, który uniemożliwiają pobranie więcej niż 10000 rekordów? Chciałem potrenować na niej jako na fajnym źródle "dużych" danych. Zauważyłem jednak, że połaczenie gwałtownie przycina się i zawiesza, gdy zapytamie zwraca więcej niż 10000 wierszy. Na potwierdzenie tego 5000 jest zwracane niemal od razu.
Z góry dziękuję za odpowiedż.
Trying to connect to port that postgres is supposed to be listenning on:
$ telnet ewd.ibe.edu.pl 5432
Trying 89.231.23.130...
telnet: Unable to connect to remote host: No route to host
And another error message from http://zaou.ibe.edu.pl/doku.php?id=baza_status
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[08006] [7] could not connect to server: No route to host Is the server running on host "10.0.1.7" and accepting TCP/IP connections on port 5432?' in /var/www/ewd/zpd/inc/parser/xhtml.php(509) : eval()'d code:2 Stack trace: #0 /var/www/ewd/zpd/inc/parser/xhtml.php(509) : eval()'d code(2): PDO->__construct('pgsql: host=10....', 'ewd_baza', 'CalEBo9') #1 /var/www/ewd/zpd/inc/parser/xhtml.php(509): eval() #2 /var/www/ewd/zpd/inc/parser/xhtml.php(526): Doku_Renderer_xhtml->php('??$PDO = new PD...', 'pre') #3 [internal function]: Doku_Renderer_xhtml->phpblock('??$PDO = new PD...') #4 /var/www/ewd/zpd/inc/parserutils.php(607): call_user_func_array(Array, Array) #5 /var/www/ewd/zpd/inc/parserutils.php(113): p_render('xhtml', Array, NULL) #6 /var/www/ewd/zpd/inc/parserutils.php(76): p_cached_output('/var/www/ewd/zp...', 'xhtml', 'baza_status') #7 /var/www/ewd/zpd/inc/html.php(246): p_wiki_xhtml('baza_status', 0, true, '') #8 /var/www/ewd/zpd/inc/template.php(1 in /var/www/ewd/zpd/inc/parser/xhtml.php(509) : eval()'d code on line 2
Witam
Taki błąd podczas łączenia z bazą za pomocą polacz() się pojawia:
Błąd w poleceniu 'connection_create(names(opts), as.vector(opts))': could not connect to server: Connection refused (0x0000274D/10061) Is the server running on host "89.231.23.130" and accepting TCP/IP connections on port 5432?
library(ZPD) src = polacz() szkoly = pobierz_szkoly(src) s_12 = pobierz_wyniki_egzaminu(src, 'sprawdzian', '', 2012, FALSE) s_12 = inner_join(s_12, szkoly) s_12 = s_12 %>% collect()
Powoduje wywalenia się R. Probówałem też połączyć się bezpośrednio z bazą, ale przykładowe zapytania z widokami również się nie wykonywały.
Moje session info
R version 3.4.2 (2017-09-28)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: OS X El Capitan 10.11.6
Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] compiler_3.4.2 tools_3.4.2 yaml_2.1.14
Trying to connect to port that postgres is supposed to be listenning on:
$ telnet ewd.ibe.edu.pl 5432
Trying 89.231.23.130...
telnet: Unable to connect to remote host: No route to host
And another error message from http://zaou.ibe.edu.pl/doku.php?id=baza_status
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[08006] [7] could not connect to server: No route to host Is the server running on host "10.0.1.7" and accepting TCP/IP connections on port 5432?' in /var/www/ewd/zpd/inc/parser/xhtml.php(509) : eval()'d code:2 Stack trace: #0 /var/www/ewd/zpd/inc/parser/xhtml.php(509) : eval()'d code(2): PDO->__construct('pgsql: host=10....', 'ewd_baza', 'CalEBo9') #1 /var/www/ewd/zpd/inc/parser/xhtml.php(509): eval() #2 /var/www/ewd/zpd/inc/parser/xhtml.php(526): Doku_Renderer_xhtml->php('??$PDO = new PD...', 'pre') #3 [internal function]: Doku_Renderer_xhtml->phpblock('??$PDO = new PD...') #4 /var/www/ewd/zpd/inc/parserutils.php(607): call_user_func_array(Array, Array) #5 /var/www/ewd/zpd/inc/parserutils.php(113): p_render('xhtml', Array, NULL) #6 /var/www/ewd/zpd/inc/parserutils.php(76): p_cached_output('/var/www/ewd/zp...', 'xhtml', 'baza_status') #7 /var/www/ewd/zpd/inc/html.php(246): p_wiki_xhtml('baza_status', 0, true, '') #8 /var/www/ewd/zpd/inc/template.php(1 in /var/www/ewd/zpd/inc/parser/xhtml.php(509) : eval()'d code on line 2
W funkcji sprawdz_skroty_skal() polecenie return() jest o jeden nawias klamrowy za wcześnie i powoduje obecnie wyjście z funkcji już po pierwszym obiegu pętli, bez względu na to, ile skrótów nie było do zdefiniowania.
Jeśli w ciągu znaków definiujących skrót nie znajdzie się znak '|', to funkcja sprawdz_skroty_skal() sypie się błędem w linii 49 (co jest efektem nieplanowanego wyniku działania strsplit() w linii 44). Niestety komunikat błędu jest mało informatywny, a na dodatek sposób konstrukcji funkcji edytuj_skale(), która woła sprawdz_skroty_skal() - konkretnie zamknięcie wszystkiego w jednym wielkim tryCatch() - skutecznie utrudnia dowiedzenie się nawet tego, że jest to problem właśnie ze sprawdz_skroty_skal().
Przydałoby się sprawdzanie na początku sprawdz_skroty_skal() warunku, czy nie będące brakami danych elementy argumentu 'skroty' zawierają '|', a jak nie, to poplucie się informatywnym błędem.
Witam
Korzystając z Pana pakietu ZPD zauważyłem, że nie działa mi jeden rocznik matury rozszerzonej z matematyki 2015. Inne roczniki działają a ten nie. Czy może robię coś nie tak?
pobierz_wyniki_egzaminu(src, rodzajEgzaminu = "matura", rokEgzaminu = 2015, czescEgzaminu = "matematyka rozszerzona", czyEwd = T)
Z góry dziękuję za odpowiedź
Dariusz
Przy wywołaniu funkcji pobierz_wyniki_egzaminu()
, np. pobierz_wyniki_egzaminu(polacz(), 'matura', 'fizyka rozszerzona', 2017, TRUE)
pojawia się ostrzeżenie o treści:
Warning in result_fetch(res@ptr, n = n) :
Don't need to call dbFetch() for statements, only for queries
Wywołanie funkcji pobierz_uczniow()
(z parametrem daneOsobowe
ustawionym na TRUE
) rzuciło mi błędem:
Error in result_create(conn@ptr, statement) :
Failed to prepare query: BŁĄD: kolumna o.rocznik nie istnieje
LINE 3: SELECT o.id_obserwacji, o.plec::text, o.rocznik, oi.id AS...
Wywołanie pobierz_wskazniki() z argumentem doPrezentacji = FALSE zwraca pustą tablicę.
Przy wywołaniu funkcji pobierz_wyniki_egzaminu()
w odniesieniu do części matury, do której przypisane były dwa testy (np. matematyka podstawowa, czy angielski) zwróciła ona wyniki tylko jednego. Przykładowo wywołanie: pobierz_wyniki_egzaminu(polacz(), 'matura', 'j. angielski rozszerzona', 2017, TRUE) %>% collect(n = Inf)
(angielski rozszerzony żeby to było relatywnie mało ludzi) zwraca wyniki tylko testu o id_testu
równym 1817, choć powinno zwracać również wyniki testu o id 1793.
Biorąc pod uwagę, jak wygląda funkcja pobierz_wyniki_egzaminu()
, problem dotyczy chyba funkcji wbudowanej w bazę zbuduj_widok_czesci_egzaminu()
.
Zdaje się, że pakiet RPostgres dojrzał -jest na CRANie i jest używany np. przez pakiet dbplyr. Może by więc na dobre porzucić na jego rzecz RPostgreSQL?
Podczas instalacji ze źródła pakietu ZPD pakiet RPostgres w versji 0.1-7 próbuje się instalować (nieskutecznie)
`R> devtools::install_github("zozlak/ZPD")
Downloading GitHub repo zozlak/ZPD@master
These packages have more recent versions available.
Which would you like to update?
1: RPostgres (1.1.1 -> 8488b4a4d...) [GitHub]
Enter one or more numbers separated by spaces, or an empty line to cancel
1: 1
RPostgres (1.1.1 -> 8488b4a4d...) [GitHub]
Downloading GitHub repo r-dbi/[email protected]
√ checking for file 'C:\Users\majer\AppData\Local\Temp\RtmpMb3T0s\remotes2dd82eab6542\r-dbi-RPostgres-2343b2e/DESCRIPTION' (434ms)
Installing package into ‘C:/Users/majer/Documents/R/win-library/3.6’
(as ‘lib’ is unspecified)
Hi Dax, welcome to R
*** arch - i386
rm -f PqConnection.o PqResult.o PqRow.o PqUtils.o RPostgres-init.o RcppExports.o connection.o encode.o encrypt.o result.o RPostgres.dll
"C:/PROGRA1/R/R-361.0/bin/i386/Rscript.exe" "../tools/winlibs.R"
Hi Dax, welcome to R
C:/Rtools/mingw_32/bin/g++ -I"C:/PROGRA1/R/R-361.0/include" -DNDEBUG -I../windows/libpq-9.5.2/include -I"C:/Users/majer/Documents/R/win-library/3.6/BH/include" -I"C:/Users/majer/Documents/R/win-library/3.6/plogr/include" -I"C:/Users/majer/Documents/R/win-library/3.6/Rcpp/include" -O2 -Wall -mtune=generic -c PqConnection.cpp -o PqConnection.o
PqConnection.cpp: In constructor 'PqConnection::PqConnection(std::vector<std::basic_string >, std::vector<std::basic_string >)':
PqConnection.cpp:18:26: error: 'setenv' was not declared in this scope
setenv("PGTZ", "UTC", 1);
^
make: *** [C:/PROGRA1/R/R-361.0/etc/i386/Makeconf:215: PqConnection.o] Error 1
ERROR: compilation failed for package 'RPostgres'
A jeśli zainstaluję RPostgres CRAN-owe to instalacja ZPD przebiega bez problemów, jednak jak się uruchomi pakiet, to nie działa ściąganie
`library(tidyverse)
library(ZPD)
src = polacz()
dane = pobierz_wyniki_egzaminu(src = src, 'egzamin gimnazjalny', 'matematyka', 2012, TRUE) %>%
collect()`
Error: con
must not be NULL
Pozdrawiam
Wywołanie filtruj_przystapienia()
rzuca ostrzeżeniami:
Warning: Missing values are always removed in SQL.
Use MIN(x, na.rm = TRUE)
to silence this warning
które precyzyjnie wskazują, co trzeba by zrobić, by ich nie oglądać (w liniach 125 i 128 pliku "filtruj_przystapienia.R")
Właściwie to chyba bardziej coś związanego z bazą, niż z pakietem ZPD, ale tu mogę Ci to wygodnie opisać.
W funkcji pobierz_dane_kontekstowe()
pakietu EWDdane jest fragment, który służy do sprawdzenia poziomu uprawnień dostępu do bazy, z jakimi została wywołana:
try({ tmp = tbl(src, sql("SELECT * FROM dane_osobowe.obserwacje LIMIT 1")) daneOsobowe = TRUE }, silent = TRUE)
Jeśli src
jest połączeniem mającym prawa dostępu do dane_osobowe.obserwacje
efektem ubocznym wywołania jest jednak ostrzeżenie o treści:
Warning in result_create(conn@ptr, statement) :
Unknown field type (20344) in column plec
W zasadzie nie przeszkadza to uzyskać pożądanego wyniku (i jak by co, zawsze mogę to wywołanie obłożyć suppressWarnings()
;) ) ale zastanawiam się, skąd się wzięło.
Wywoływanie funkcji normalizuj powoduje wyskakiwanie ostrzeżenia:
Warning message:
Unknown column 'grupa'
Podejrzewam, że jest to efekt tego, że w wierszu 58. zawężasz obiekt normy do tylko dwóch kolumn - i żadna z nich to nie 'grupa' - ale wiersz 72. masz napisany tak, jakby ta kolumna cały czas tam była.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.