Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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
funcargument 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
spNamek 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, asetOutputParameter.Volitelně můžete použít
filePathk 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
dbNameaconnectionString.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
setInputDataQueryk přiřazení dotazu k objektu InputParameter . Například pokud jste vytvořili objekt uložené procedury v R, můžete použítsetInputDataQuerypředání argumentů funkci StoredProcedure , aby bylo možné uloženou proceduru spustit s požadovanými vstupy.Použijte
setInputValuek 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
executeStoredProcedurek 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.