Я пытаюсь сделать мой рабочий процесс анализа более эффективным, подключив мою базу данных SQL Server к R-Studio.
Что я делаю сейчас?
- Я разрабатываю свои запросы с использованием MS SQL Management Studio для извлечения соответствующей информации для анализа.
- Я экспортирую результат запроса в файл .csv UTF-8.
- Iпрочитайте файл в R-Studio и выполните анализ.
- Я экспортирую окончательный кадр данных в файл .csv UTF-8.
- Я использую этот файл для создания таблицы обратно в SQL Management Studio.
Что я пытаюсь сделать?
Я хочу создать соединение между SQL Server и R-Studio, чтобы я мог напрямую импортировать / экспортировать свойdataframe / table без этих файлов на моем компьютере.
Для этого я выполнил следующие действия:
- Установленные пакеты DBI и odbc в R.
- Настроеносоединение с использованием «Администратор соединения с источником данных ODBC»
- Мое соединение называется «Ruterprise "(собственный клиент SQL Server 10.0)
- В R-Studio, используя вкладку Соединение, я вижу список источников данных, содержащих« Предприятие ».
- При выборе источника данных «Enterprise» создайте объект R с именем «con», который содержит информацию о соединении.
- На данный момент я вижу все базы данных на вкладке соединения.
- Мой код для тестирования в R следующий:
---
title: "R Notebook"
output: html_notebook
---
```{r setup, include=FALSE}
library(odbc)
con <- dbConnect(odbc::odbc(), "Enterprise", timeout = 10) ```
```{sql, connection = con, output.var = "DataFrame"}
SELECT TOP 1000 *
FROM [DB].[dbo].[Table] ```
Data<-DataFrame[1:100,1:10]
head(Data,11)```
Var1 Var2 Var3 Var4 Var5 Var6 Var7 Var8 Var9 Var10
A 1 2.4 5.5 13.1 30.8 72.4 170.5 401.6 945.7
B 2 4.7 11.1 26.1 61.5 144.8 341.1 803.2 1891.5
C 3 7.1 16.6 39.2 92.3 217.3 511.6 1204.8 2837.2
D 4 9.4 22.2 52.2 123.0 289.7 682.2 1606.4 3782.9
E 5 11.8 27.7 65.3 153.8 362.1 852.7 2008.0 4728.6
F 6 14.1 33.3 78.4 184.5 434.5 1023.2 2409.6 5674.4
G 7 16.5 38.8 91.4 215.3 506.9 1193.8 2811.2 6620.1
H 8 18.8 44.4 104.5 246.0 579.4 1364.3 3212.8 7565.8
I 9 21.2 49.9 117.5 276.8 651.8 1534.9 3614.4 8511.5
J 10 23.5 55.5 130.6 307.5 724.2 1705.4 4016.0 9457.3
K 11 25.9 61.0 143.6 338.3 796.6 1875.9 4417.6 10403.0
```{sql, connection = con}
SELECT * INTO [DB].[dbo].[New_Table]
FROM ?Data```
Здесь я использую ?
, чтобы указать, что «Данные» - это объект dataframe R в блоке SQL.
Error in vapply(values, function(x) { : values must be length 1,
but FUN(X[[1]]) result is length 100
Failed to execute SQL chunk
Я предполагаю, что в последнем блоке я что-то не так делаю.
Каким будет правильный способ отправить «Данные» в мою базу данных?
Спасибо!