Машинное обучение SQL Server вызывает внешний REST API

Я тестирую некоторые сценарии с машинным обучением SQL Server. Я пытался запросить внешнюю веб-службу из скрипта Python в SQL Server Management Studio. Что-то вроде этого:

      EXEC sp_execute_external_script
@language =N'Python', 
@script=N'
import os
os.system("python \"C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\PYTHON_SERVICES\Lib\cust\ml.py\"")

OutputDataSet = InputDataSet
print("Say Hello from SQL Server Management Studio")
',
@input_data_1 =N'SELECT 42' 
WITH RESULT SETS (([TheAnswer] int not null));  
GO 

Скрипт выглядит так (упрощенно):

      #!"C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\PYTHON_SERVICES\python.exe"
import pandas as pd
import urllib3

http = urllib3.PoolManager()
response  = http.request('GET', 'https://example.com/myWS.json')

df = pd.read_csv(response.data)  # Web Service returns a plain csv like payload.

# Keep doing something interesting

Когда я бегу ml.pyна консоли все работает нормально. Однако, когда я пытаюсь запустить из SQL Server Management Studio, я получаю следующую ошибку:

      Msg 39019, Level 16, State 2, Line 1
An external script error occurred: 
SqlSatelliteCall error: Error in execution.  Check the output for more information.
STDOUT message(s) from external script: 
There was an error getting the leads fields: HTTPSConnectionPool(host='example.com', port=443): Max retries exceeded with url: /myWS.json (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x000002076ECACC18>: Failed to establish a new connection: [WinError 10013] An attempt to access a socket in a way forbidden by its access permissions was attempted'))

Итак, ясно, что нужно установить некоторые разрешения на связь, но я не уверен, где я должен их установить.

Моя цель — вставить результаты веб-службы непосредственно в SQL-запрос без необходимости импорта из внешнего файла. Я не уверен, что это лучший подход, но я просто хотел проверить его жизнеспособность.

Любая идея приветствуется.

Благодарю вас!

0 ответов

Другие вопросы по тегам