Да всем!
Ваш выбор сценариев - Rscript или немного, как обсуждалось в этом предыдущем посте .
После борьбы с подключением к базам данных MSSQL из Linux я рекомендую использовать RJDBC для подключения баз данных к MSSQL. Я использовал RODBC для подключения из Windows, но мне так и не удалось заставить его работать должным образом в Linux. Чтобы заставить работать RJDBC, вам нужно будет правильно установить Java на вашем Linux-компьютере и, возможно, потребуется изменить некоторые переменные окружения (кажется, что у меня SOMETHING всегда неправильно настроен с помощью rJava). Вам также нужно будет загрузить и установить драйверы JDBC для Linux, которые вы можете получить непосредственно от Microsoft .
После установки RJDBC и установки драйверов код для извлечения данных из базы данных будет выглядеть примерно так:
require(RJDBC)
drv <- JDBC("com.microsoft.sqlserver.jdbc.SQLServerDriver",
"/etc/sqljdbc_2.0/sqljdbc4.jar")
conn <- dbConnect(drv, "jdbc:sqlserver://mySqlServer", "userId", "Password")
sqlText <- paste("
SELECT *
FROM SomeTable
;")
myData <- dbGetQuery(conn, sqlText)
Вы можете написать таблицу с чем-то вроде
dbWriteTable(conn, "myData", SomeTable, overwrite=TRUE)
Когда я обновляю свою БД, я обычно использую dbWriteTable()
для создания временной таблицы на моем сервере базы данных, затем я выдаю dbSendUpdate()
, который добавляет временную таблицу к моей основной таблице, а затем второй dbSendUpdate()
, который отбрасывает временный стол Вы можете найти эту модель полезной.
Единственная «ошибка», с которой я столкнулся, заключалась в том, что я никогда не мог заставить домен / имя пользователя Windows работать в последовательности подключения. Мне пришлось настроить отдельную учетную запись SQL Server (например, sa).