R Chart в SSRS (получение данных из SQL и создание диаграммы ggplot в R) - Часть 1
В этом и следующем сообщении мы расскажем вам, как подключиться к SQL Server для получения оттуда данных , а затем создать таблицу с использованием пакета ggplot2 внутри SQL Server 201 и отобразить диаграмму в SSRS.
Нам нужно следовать нескольким шагам:
Получите данные и создайте код в студии R
- Загрузите данные из SQL Server в R studio
- Создайте диаграмму в R studio и проверьте код там
Создайте хранимую процедуру для создания диаграммы на SQL Server 2017
- Создайте хранимую процедуру для создания диаграммы граней
- Храните диаграмму в таблице как двоичную переменную
Создайте отчет в SSRS
- Создайте подключение к базе данных
- Создайте отчет, чтобы показать диаграмму R
Получите данные и создайте код в студии R
Существует база “Hello” с именем «AdventureWorks» для людей SQL. Вы можете скачать ее с https://www.microsoft.com/en-us/download/details.aspx?id=49502
Мы собираемся создать диаграмму сначала в студии R. Это поможет проверить код R и убедиться, что он работает. Для этого нужно получить доступ к этой базе данных. На данный момент у нас есть эта база данных на локальном SQL Server 2017.
Для доступа к данным я собираюсь использовать известный R-пакет под названием «RODBC»,
Этот пакет имеет функцию «odbcDriverConnect», которая создает строку соединения. Она получает некоторую информацию, такую как имя драйвера, сервер, имя базы данных и т. д.
library(RODBC)
DBHANDLE<-odbcDriverConnect('driver={SQL Server};server=localhost\\ML2017;database=AdventureworksDW2016CTP3;trusted_connection=true')
ПРИМЕЧАНИЕ: для сервера вместо «.» Используйте localhost и «\», вам нужно добавить «\\», чтобы не использовать. \ ML2017 просто используйте localhost \\ ML2017
Кроме того, существует функция sqlQuery, доступная в RODBC, которая позволяет вам написать инструкцию SQL для извлечения желаемых данных.
1 2 3 |
fileds<-sqlQuery(DBHANDLE,'select Color,Size,class,TaxAmt,SalesAmount from [dbo].[FactInternetSales] FIS inner join [dbo].[DimProduct] DP on FIS.ProductKey=dp.ProductKey') |
Как вы видите в приведенном выше коде, мы передаем информацию о соединении, которая была сохранена в переменной DBHANDLE. Второй аргумент - это связанный запрос, который находится в языке SQL.
Просто проверьте переменную поля, используя View (поля).
За одну секунду в переменную R было загружено почти 60198 строк!
Для составления диаграммы сперва нужно удалить данные «NA» из переменной полей.
Для этого используем следующий код:
1 2 |
filds<- na.omit(filds) nrow(filds) |
Теперь у нас есть 15205 строк, поскольку другие строки, которые имеют значения NA, были удалены.
Теперь данные готовы к составлению диаграммы с подокном с диаграммой размаха.
library(ggplot2)
ggplot(filds,aes(x=filds$SalesAmount,y=filds$TaxAmt,color=factor(filds$class)))+geom_boxplot()+facet_grid(filds$Color~.)
Диаграмма будет выглядеть следующим образом:
Она показывает диаграмму размаха для объема продаж, создавая таблицу, которая показывает цвет каждого продукта как строку и класс каждого продукта в качестве легенды.
В следующем посте мы покажем, как отобразить эту диаграмму в SSRS, запустив тот же R-код в SQL Server 2017.