R Chart в SSRS (получение данных из SQL и создание диаграммы ggplot в R) - Часть 1

Tags: R, SSRS, SQL Server 2017

В этом и следующем сообщении мы расскажем вам, как подключиться к SQL Server для получения оттуда данных , а затем создать таблицу с использованием пакета ggplot2 внутри SQL Server 201 и отобразить диаграмму в SSRS.

Нам нужно следовать нескольким шагам:

Получите данные и создайте код в студии R

  1. Загрузите данные из SQL Server в R studio
  2. Создайте диаграмму в R studio и проверьте код там

Создайте хранимую процедуру для создания диаграммы на SQL Server 2017

  1. Создайте хранимую процедуру для создания диаграммы граней
  2. Храните диаграмму в таблице как двоичную переменную

Создайте отчет в SSRS

  1. Создайте подключение к базе данных
  2. Создайте отчет, чтобы показать диаграмму 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.

No Comments

Add a Comment