Buduję pakiet R, którego głównym celem jest usunięcie bólu związanego z zastrzeżoną bazą danych, która wymaga dość złożonych zapytań SQL w celu uzyskania danych .Jak zarządzać połączeniem z bazą danych w pakiecie R
Jako takie, połączenie z serwerem Microsoft SQL Server (uzyskane przez odbcDriverConnect
) jest stałą i ważną częścią tego pakietu, ale nie mogę ustalić, jak najlepiej sobie z tym poradzić i mam nadzieję na poradę, jak to powinno być realizowane w R.
Moje obecne myśli są:
Bądź użytkownikowi zapewnić ich prawidłowe połączenie zanim one wywołać dowolną funkcję. Każda funkcja ma wtedy
connection
jako parametr, który musi zostać przekazany. To obciąża użytkownika.W każdej funkcji nawiąż połączenie z numerem
get.connection()
, za każdym razem otrzymasz nowe połączenie. Stare połączenia mogą w naturalny sposób przekroczyć limit czasu, co wydaje się niedbałe.Jak wyżej, ale za każdym razem zwracaj to samo połączenie. Wydaje się, że nie jest to realna propozycja, ponieważ nie mogę uniemożliwić przerw w łączeniu się przez R.
autoReconnect=TRUE
, a inne sztuczki, których używałem w różnych językach, wydają się nie mieć żadnego skutku.
W Javie, to pewnie mają DatabaseConnectionPool zaludniony z liczbą połączeń i po prostu chwycić połączeń z i zwrócić je, że basen w miarę potrzeb. Wydaje mi się również, że nie mam problemu z limitem czasu w Javie, kiedy określam autoReconnect=TRUE
.
Wszelkie sugestie bardzo doceniane.
'Pula' działa świetnie! –