R Chart в SSRS (пакет ggplot2 в SQL Server 2017) - Часть 2

Tags: R, SQL Server 2017, SSRS

В последнем посте вы видели, как мы можем создать диаграмму, импортируя данные из SQL Server 2017. При этом у нас есть надежный код для составления диаграммы. Теперь, когда мы уверены, что наши коды работают нормально, мы можем поместить коды в SQL Server 2017.

В этом сообщении мы покажем, как мы можем иметь один и тот же график в SSRS.

Мы уже объясняли, как запустить R-коды внутри SQL Server 2017 с помощью внешней хранимой процедуры.

ggplot2 Package в ML Services

Вы можете увидеть имя установленных пакетов в службах ML, используя некоторые R-коды.

1

2

3

4

5

EXECUTE sp_execute_external_script @language=N'R'

,@script = N'str(OutputDataSet); packagematrix <- installed.packages();

NameOnly <- packagematrix[,1]; OutputDataSet <- as.data.frame(NameOnly);'

 ,@input_data_1 = N'SELECT 1 as col'

 WITH RESULT SETS ((PackageName nvarchar(250) ))


Функция для проверки имени установленных пакетов в сценариях R является «installed.package ()».

Когда я запускаю это в первый раз, нет пакета с именем «ggplot2»

Мне нужно установить этот пакет для работы с ним,

Возникает новый вопрос:

Как установить новые пакеты в службах SQL Server 2017 R?

Есть много способов:

Используйте команду install.packages в процедуре хранения внешних скриптов, как показано ниже

Первый подход:

1

2

3

4

EXECUTE sp_execute_external_script @language=N'R'

,@script = N' install.packages("ggplot2");'

 ,@input_data_1 = N'SELECT 1 as col'

 WITH RESULT SETS ((PackageName nvarchar(250) ))

 

Вышеуказанные коды могут работать, но иногда не из-за разрешения администратора, вы можете получить следующие сообщения: “Warning in install.packages(“arules”) :

‘lib = “C:/Program Files/Microsoft SQL Server/MSSQL14.ML2017/R_SERVICES/library”‘ is not writable

Error in install.packages(“ggplot2”) : unable to install packages

Calls: source -> withVisible -> eval -> eval -> install.packages

Решение

Запустите от имени администратора Rugi.exe для установки пакета. Но вам нужно указать, где устанавливать пакеты. В результате нам нужен путь служб ML для R в SQL Server. В R есть функция: .libPaths (), которая показывает местоположение установленных пакетов. Gоэтому вам нужно запустить этот код в SQL Server 2017, чтобы узнать путь библиотеки R.

1

2

3

4

EXECUTE sp_execute_external_script  @language = N'R'

, @script = N'OutputDataSet <- data.frame(.libPaths());'

WITH RESULT SETS (([DefaultLibraryName] VARCHAR(MAX) NOT NULL));

GO

Результат будет следующим:



После этого вы можете просто запустить приведенные ниже коды для установки пакетов:

1

2

lib.SQL <- "C:\\Program Files\\Microsoft SQL Server\\MSSQL13.MSSQLSERVER\\R_SERVICES\\library"

 install.packages("ggplot2", lib = lib.SQL)

Но все же вы можете получить сообщение об ошибке!

Другая проблема

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

Легкий, но ненадежный подход: скопируйте весь список пакетов, который у вас есть в локальном Rstudio, в местоположение SQL Server.

Хотя этот подход не является надежным, но большую часть времени будет работать. Просто будьте осторожны с версиями пакета, а также не заменяйте тот, который уже существует.

Выполнив приведенный ниже код, вы убедитесь, что ggplot2 установлен:

1

2

3

4

5

exec sp_execute_external_script  @language =N'R',

@script=N'OutputDataSet<-InputDataSet; library("ggplot2")',    

@input_data_1 =N'select 1 as hello'  

with result sets (([hello] int not null));  

go

Результат будет следующим:

Теперь мы можем быть уверены, что у нас есть доступ к пакету ggplot2.

Мы можем создать диаграмму внутри SQL Server. В следующем посте мы покажем, как отобразить диаграмму в SSRS или показать в виде HTML-диаграммы.

No Comments

Add a Comment