Как подключиться к SQL из R Studio

Я использую Microsoft SQL Server Management Studio в Windows 10 для подключения к следующей базе данных, и вот как выглядит экран входа в систему:

Server Type:      Database Engine
Server Name:      sqlmiprod.b298745190e.database.windows.net
Authentication:   SQL Server Authentication
Login:            my_user_id
Password:         my_password

Это недавняя статья R Studio предлагает простой способ подключения к серверам SQL из R Studio, используя следующее:

con <- DBI::dbConnect(odbc::odbc(),
                      Driver   = "[your driver's name]",
                      Server   = "[your server's path]",
                      Database = "[your database's name]",
                      UID      = rstudioapi::askForPassword("Database user"),
                      PWD      = rstudioapi::askForPassword("Database password"),
                      Port     = 1433)

у меня два вопроса

  1. Что я должен использовать как "[your driver's name]"?
  2. Что я должен использовать как "[your database's name]"?

Я буду использовать путь к серверу sqlmiprod.b298745190e.database.windows.net (см. выше), а порт оставлю 1433. Если это не так, пожалуйста, дайте мне знать.


person Display name    schedule 08.10.2019    source источник
comment
stackoverflow.com/questions/43606832/ проверьте ответ на свой вопрос   -  person Zaynul Abadin Tuhin    schedule 08.10.2019
comment
Я использую аналогичную настройку, и мне пришлось создать источник системных данных в Microsoft ODBC Source Administrator. Как только все было готово, все, что мне нужно было сделать, чтобы подключиться, это con <- dbConnect(odbc(), "db_name"), и я готов к работе.   -  person tomasu    schedule 08.10.2019


Ответы (1)


Водитель

Из комментария @Zaynul и моего собственного опыта поле драйвера представляет собой текстовую строку с именем драйвера ODBC. Этот ответ содержит более подробную информацию об этом.

Вы, вероятно, хотите что-то вроде:

  • Driver = 'ODBC Driver 17 for SQL Server' (из комментария @Zaynul)
  • Driver = 'ODBC Driver 11 for SQL Server' (из моего собственного контекста)

База данных

База данных по умолчанию, к которой вы хотите подключиться. Примерно эквивалентно запуску сценария SQL с

USE my_database
GO

Если вся ваша работа будет в рамках одной базы данных, то укажите здесь ее название.

В некоторых контекстах вы можете оставить это поле пустым, но тогда вам придется использовать команду in_schema для добавления имени базы данных каждый раз, когда вы подключаетесь к таблице.

Если вы работаете с несколькими базами данных, я рекомендую указать имя одной базы данных, а затем использовать команду in_schema для указания базы данных в каждой точке подключения.

Пример использования команды in_schema (подробнее):

df = tbl(con, from = in_schema('database.schema', 'table'))

Хотя я не пробовал, если у вас нет схемы то

df = tbl(con, from = in_schema('database', 'table'))

Также должно работать (некоторое время я без проблем использовал этот хак).

person Simon.S.A.    schedule 08.10.2019
comment
Важно отметить, что OP необходимо загрузить Драйвер MSSQL ODBC заранее. Это физическое программное обеспечение, которое служит посредником между прикладным уровнем и базами данных. ODBC — это технология, используемая помимо R. - person Parfait; 08.10.2019