Ошибка R службы SQL Server ML для большого набора данных: недопустимый поток BXL
Я использую sp_execute_external_script для обработки SQL-запроса с помощью R dplyr. Этот процесс встроен в собственную хранимую процедуру и выводит запрос в формате временного ряда. Скрипт выглядит примерно так:
USE [Seperate_DB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROC [dbo].[SP_Name]
AS
BEGIN
EXEC sp_execute_external_script @language = N'R'
,@script = N'
library(dplyr)
library(tidyr)
library(rlang)
OutputDataSet<-InputDataSet %>% mutate(...R-code)
'
,@input_data_1 = N';WITH CTE AS(
SELECT Columns
FROM table
WHERE Constraints=values
)
SELECT Columns
FROM (
SELECT Other_Columns
FROM CTE
UNION
SELECT Other_Columns
FROM DB1
UNION
SELECT Other_Columns
FROM DB2
WHERE Constraints=values
UNION
SELECT Other Columns
FROM cte
INNER JOIN DB2.table1
ON Col1=Col2
) AS final
INNER JOIN DB2.table1 on table1.col = final.col
GROUP BY Some_Columns'
WITH RESULT SETS ((
[Other_Columns] INT
,[Other_Columns] FLOAT
,[Other_Columns] Numeric(24,2)
,[Other_Columns] Numeric(24,2)
,[Other_Columns] Numeric(24,2)
,[Other_Columns] Numeric(24,2)
,[Other_Columns] Numeric(24,2)
,[Other_Columns] FLOAT
));
END
GO
Я знаю, что эта конфигурация работает, когда я ограничиваю данные, проходящие через хранимую процедуру. Однако, когда я обрабатываю весь набор данных, я получаю следующий вывод ошибки через 10 минут обработки;
Я не уверен, что означают эти ошибки, но я прочитал много статей, в которых они рассматриваются. Я думаю, что существует связь с размером набора данных, который создается, когда механизм R создает временной ряд. SQL-запрос загружает набор данных из примерно 350 000 строк, а SQL R-engine (службы ML) должен выводить временной ряд примерно из 24 миллионов строк.
Это версия SQL Server, которую я использую;
SELECT @@VERSION
Microsoft SQL Server 2017 (RTM-CU22) (KB4577467) - 14.0.3356.20 (X64) 20 августа 2020 г. 22:33:27 Авторские права (C) 2017 г. Microsoft Corporation Standard Edition (64-разрядная версия) на Windows Server 2016 Standard 10.0 (сборка 14393):) (Гипервизор)
Оперативная память: 32 ГБ
Я был бы признателен за любые советы или соображения о том, как заставить этот процесс работать должным образом. Спасибо.