sqlrutils (R package in SQL Server Machine Learning Services)

platí pro: SQL Server 2016 (13.x) a novější verze

sqlrutils je balíček R od Microsoft, který poskytuje mechanismus pro uživatele R pro vložení svých R skriptů do uložené procedury T-SQL, registraci této procedury v databázi a spuštění uložené procedury z vývojového prostředí R. Balíček je součástí služeb SQL Server Machine Learning Services a SQL Server 2016 R Services.

Převedením vašeho R kódu tak, aby běžel v rámci jedné uložené procedury, můžete efektivněji využít SQL Server R služeb, které vyžadují, aby byl R skript vložen jako parametr pro sp_execute_external_script. Balíček sqlrutils vám pomůže vytvořit tento vložený R skript a správně nastavit související parametry.

Balíček sqlrutils vykonává tyto úkoly:

  • Ukládá generovaný T-SQL skript jako řetězec uvnitř datové struktury R
  • Volitelně vygenerujte .sql soubor pro T-SQL skript, který můžete upravit nebo spustit a vytvořit uloženou proceduru
  • Zaregistruje nově vytvořenou uloženou proceduru s instancí SQL Server z vašeho vývojového prostředí R

Uložený postup můžete také spustit v prostředí R tím, že předáte dobře vytvořené parametry a zpracujete výsledky. Nebo můžete použít uloženou proceduru ze SQL Server k podpoře běžných scénářů integrace databází, jako je ETL, trénování modelů a skórování s vysokým objemem.

Poznámka:

Pokud chcete spustit uloženou proceduru v prostředí R voláním funkce executeStoredProcedure, musíte použít poskytovatele ODBC 3.8, například ODBC Driver 13 pro SQL Server.

Úplná referenční dokumentace

Balíček sqlrutils je distribuován v několika produktech Microsoft, ale použití je stejné, ať už balíček dostanete v SQL Server nebo v jiném produktu. Pokud existují nějaká chování specifická pro jednotlivé produkty, budou na stránce nápovědy funkce zaznamenány nesrovnalosti.

Seznam funkcí

Následující sekce poskytuje přehled funkcí, které můžete volat z balíčku sqlrutils pro vývoj uložené procedury obsahující vložený kód R. Podrobnosti o parametrech pro každou metodu nebo funkci najdete v nápovědě R pro balíček: help(package="sqlrutils")

Function Description
executeStoredProcedure Spusť uloženou proceduru v SQL.
getInputParameters Získejte seznam vstupních parametrů do uložené procedury.
InputData Definuje zdroj dat v SQL Server, která budou použita v datovém rámci R. Specifikujete název data.frame, do kterého se vstupní data uloží, a dotaz pro získání dat, nebo výchozí hodnota. Podporovány jsou pouze jednoduché dotazy SELECT.
InputParameter Definuje jeden vstupní parametr, který bude vložen do T-SQL skriptu. Musíte zadat název parametru a jeho datový typ R.
OutputData Generuje meziobjekt dat, který je potřeba, pokud vaše R funkce vrací seznam obsahující data.frame. Objekt OutputData slouží k uložení názvu jednoho data.frame získaného ze seznamu.
OutputParameter Generuje mezilehlý datový objekt, který je potřeba, pokud vaše R funkce vrací seznam. Objekt OutputParameter ukládá název a datový typ jednoho člena seznamu, za předpokladu, že tento člen není datovým rámcem.
registerStoredProcedure Zaregistrujte uloženou proceduru v databázi.
setInputDataQuery Přiřaďte dotaz k parametru vstupních dat uložené procedury.
setInputParameterValue Přiřaďte hodnotu vstupnímu parametru uložené procedury.
Uložená procedura Objekt uložené procedury.

Jak používat sqlrutils

Funkce balíčku sqlrutils musí běžet na počítači, který má SQL Server Machine Learning s R. Pokud pracujete na klientské pracovní stanici, nastavte vzdálený výpočetní kontext tak, aby se výkon přesunul na SQL Server. Pracovní postup pro použití tohoto balíčku zahrnuje následující kroky:

  • Definujte parametry uložených procedur (vstupy, výstupy nebo obojí)
  • Vygenerujte a registrujte uloženou proceduru
  • Spusťte uloženou proceduru.

V R relaci načtěte sqlrutils z příkazového řádku zadáním library(sqlrutils).

Poznámka:

Tento balíček můžete načíst na počítači, který nemá SQL Server (například na instanci R Client), pokud změníte výpočetní kontext na SQL Server a spustíte kód v tomto výpočetním kontextu.

Definujte parametry a vstupy uložených procedur

StoredProcedure je hlavní konstruktor používaný k vytvoření uložené procedury. Tento konstruktor generuje objekt SQL Server Stored Procedure a volitelně vytváří textový soubor obsahující dotaz, který lze použít k vygenerování uložené procedury pomocí příkazu T-SQL.

Volitelně může funkce StoredProcedure také zaregistrovat uloženou proceduru u dané instance a databáze.

  • Použijte func argument k určení platné funkce R. Všechny proměnné, které funkce používá, musí být definovány buď uvnitř funkce, nebo jako vstupní parametry. Tyto parametry mohou zahrnovat maximálně jeden datový rámec.

  • Funkce R musí vrátit buď datový rámec, pojmenovaný seznam, nebo NULL. Pokud funkce vrátí seznam, může tento seznam obsahovat maximálně jeden datový rámec.

  • Použijte argument spName k určení názvu uložené procedury, kterou chcete vytvořit.

  • Můžete předávat volitelné vstupní a výstupní parametry pomocí objektů vytvořených těmito pomocnými funkcemi: setInputData, setInputParameter, a setOutputParameter.

  • Volitelně můžete použít filePath k zadání cesty a názvu souboru .sql, který se má vytvořit. Tento soubor můžete spustit na instanci SQL Server a vygenerovat uloženou proceduru pomocí T-SQL.

  • Pro definování serveru a databáze, kde bude uložená procedura uložena, použijte argumenty dbName a connectionString.

  • Pro získání seznamu objektů InputData a InputParameter , které byly použity k vytvoření konkrétního objektu StoredProcedure , volejte getInputParameters.

  • Pro registraci uložené procedury ve specifikované databázi použijte registerStoredProcedure.

Objekt uložených procedur obvykle nemá žádná data ani hodnoty přiřazené, pokud nebyla stanovena výchozí hodnota. Data nejsou získávána, dokud není uložená procedura vykonána.

Specifikujte vstupy a vykonejte

  • Použijte setInputDataQuery k přiřazení dotazu k objektu InputParameter . Například pokud jste vytvořili objekt uložené procedury v R, můžete použít setInputDataQuery předání argumentů funkci StoredProcedure , aby bylo možné uloženou proceduru spustit s požadovanými vstupy.

  • Použijte setInputValue k přiřazení specifických hodnot parametru uloženému jako objekt InputParameter . Poté předáte objekt parametru a jeho přiřazení hodnot funkci StoredProcedure , která vykoná uloženou proceduru s nastavenými hodnotami.

  • Použijte executeStoredProcedure k vykonání uložené procedury definované jako objekt StoredProcedure . Tuto funkci volejte pouze při spuštění uložené procedury z R kódu. Nepoužívejte ho při spuštění uložené procedury ze SQL Server pomocí T-SQL.

Poznámka:

Funkce executeStoredProcedure vyžaduje poskytovatele ODBC 3.8, například ODBC Driver 13 pro SQL Server.