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),
SQL Server 2017 (14.x) a
SQL Server 2019 (15.x),
SQL Server 2019 (15.x) – Linux
Integrace jazyka R je dostupná v SQL Serveru 2016 nebo novějším, pokud do instalace služby SQL Server 2016 R Services nebo služby SQL Server Machine Learning Services (In-Database) zahrnete možnost jazyka R.
Poznámka:
Tento článek se v současné době týká SQL Serveru 2016 (13.x), SQL Serveru 2017 (14.x), SQL Serveru 2019 (15.x) a SQL Serveru 2019 (15.x) jenom pro Linux.
Pokud chcete vyvíjet a nasazovat řešení R pro SQL Server, nainstalujte na vývojovou pracovní stanici Microsoft R Client , abyste získali RevoScaleR a další knihovny R. Knihovna RevoScaleR, která se také vyžaduje ve vzdálené instanci SQL Serveru, koordinuje výpočetní požadavky mezi oběma systémy.
V tomto článku se dozvíte, jak nakonfigurovat pracovní stanici pro vývoj klienta R, abyste mohli pracovat se vzdáleným SQL Serverem, který umožňuje integraci strojového učení a R. Po dokončení kroků v tomto článku budete mít stejné knihovny R jako na SQL Serveru. Budete také vědět, jak odesílat výpočty z místní relace R do vzdálené relace R na SQL Serveru.
K ověření instalace můžete použít integrovaný nástroj RGUI , jak je popsáno v tomto článku, nebo propojit knihovny s RStudio nebo jiným integrovaným vývojovém prostředím, které běžně používáte.
Běžně používané nástroje
Bez ohledu na to, jestli jste vývojářem v jazyce R, který je nováček v SQL, nebo vývojářem SQL, který je nováček v R a databázové analytice, budete potřebovat jak vývojářský nástroj pro jazyk R, tak editor dotazů T-SQL, jako je SQL Server Management Studio (SSMS), abyste mohli uplatnit veškeré možnosti analýzy v rámci databáze.
Pro jednoduché scénáře vývoje jazyka R můžete použít spustitelný soubor RGUI, který je součástí základní distribuce jazyka R v MRO a SQL Serveru. Tento článek vysvětluje, jak používat RGUI pro místní i vzdálené relace R. Pokud chcete zvýšit produktivitu, měli byste použít plnohodnotné integrované vývojové prostředí (IDE), jako je RStudio nebo Visual Studio.
SSMS je samostatný soubor ke stažení, který je užitečný pro vytváření a spouštění uložených procedur na SQL Serveru, včetně těch, které obsahují kód R. Téměř jakýkoli kód R, který píšete ve vývojovém prostředí, lze vložit do uložené procedury. Můžete procházet další návody, abyste se dozvěděli o SSMS a integrovaném R.
1. Instalace balíčků R
Balíčky R od Microsoftu jsou k dispozici v několika produktech a službách. Na místní pracovní stanici doporučujeme nainstalovat klienta Microsoft R. R Client poskytuje RevoScaleR, MicrosoftML, SQLRUtils a další balíčky R.
V průvodci instalací přijměte nebo změňte výchozí instalační cestu, přijměte nebo změňte seznam součástí a přijměte licenční podmínky klienta Microsoft R.
Po dokončení instalace vás úvodní obrazovka seznámí s produktem a dokumentací.
Vytvořte MKL_CBWR systémovou proměnnou prostředí, která zajistí konzistentní výstup výpočtů knihovny Intel Math Kernel Library (MKL).
- V Ovládacích panelech>vyberte Systém a zabezpečení>, Systém>, Pokročilá nastavení systému a Proměnné prostředí.
- Vytvořte novou systémovou proměnnou s názvem MKL_CBWR s hodnotou nastavenou na AUTO.
2. Vyhledání spustitelných souborů
Vyhledejte a zobrazte seznam obsahu instalační složky, abyste potvrdili, že jsou nainstalovány R.exe, RGUI a další balíčky.
V Průzkumníku souborů otevřete složku
%ProgramFiles%\Microsoft\R Client\R_SERVER\bina potvrďte umístěníR.exe.Otevřete podsložku x64 a potvrďte RGUI. Tento nástroj použijete v dalším kroku.
Otevřete
%ProgramFiles%\Microsoft\R Client\R_SERVER\librarya prohlédněte si seznam balíčků nainstalovaných pomocí R Client, včetně RevoScaleR, MicrosoftML a dalších.
3 - Spuštění RGUI
Při instalaci jazyka R s SQL Serverem získáte stejné nástroje R, které jsou standardní pro jakoukoli základní instalaci jazyka R, jako je RGui, Rterm atd. Tyto nástroje jsou jednoduché, užitečné pro kontrolu informací o balíčcích a knihovnách, spouštění ad hoc příkazů nebo skriptů nebo procházení kurzů. Tyto nástroje můžete použít k získání informací o verzi jazyka R a potvrzení připojení.
Otevřete
%ProgramFiles%\Microsoft\R Client\R_SERVER\bin\x64a dvojitým kliknutím na RGui spusťte relaci jazyka R s příkazovým řádkem R.Když spustíte relaci R ze složky programu Microsoftu, několik balíčků, včetně RevoScaleR, se načte automaticky.
Na příkazovém řádku zadejte
print(Revo.version)informace o verzi balíčku RevoScaleR. Pro RevoScaleR byste měli mít verzi 9.2.1 nebo 9.3.0.Na příkazovém řádku jazyka R zadejte search() pro seznam nainstalovaných balíčků.
4. Získání oprávnění SQL
V klientovi R je zpracování jazyka R omezené na dvě vlákna a data v paměti. Pro škálovatelné zpracování pomocí více jader a velkých datových sad můžete posunout provádění (označované jako výpočetní kontext) na datové sady a výpočetní výkon vzdálené instance SQL Serveru. Tento přístup se doporučuje pro integraci klientů s produkční instancí SQL Serveru a k jeho fungování budete potřebovat oprávnění a informace o připojení.
Pokud se chcete připojit k instanci SQL Serveru, aby bylo možné spouštět skripty a nahrávat data, musíte mít na databázovém serveru platné přihlášení. Můžete použít přihlášení SQL nebo integrované ověřování systému Windows. Obecně doporučujeme používat integrované ověřování systému Windows, ale použití přihlášení SQL je pro některé scénáře jednodušší, zejména pokud váš skript obsahuje připojovací řetězce k externím datům.
Minimálně účet použitý ke spuštění kódu musí mít oprávnění ke čtení z databází, se kterými pracujete, a navíc speciální oprávnění SPUSTIT LIBOVOLNÝ EXTERNÍ SKRIPT. Většina vývojářů také vyžaduje oprávnění k vytváření uložených procedur a k zápisu dat do tabulek obsahujících trénovací data nebo vyhodnocená data.
Požádejte správce databáze, aby v databázi, ve které používáte R, nakonfigurovali následující oprávnění pro váš účet:
- SPUŠTĚNÍM LIBOVOLNÉHO EXTERNÍHO SKRIPTU spusťte skript R na serveru.
- db_datareader oprávnění ke spouštění dotazů používaných pro trénování modelu.
- db_datawriter k zápisu trénovacích dat nebo hodnocených dat.
- db_owner vytvářet objekty, jako jsou uložené procedury, tabulky, funkce. K vytvoření ukázkových a testovacích databází potřebujete také db_owner .
Pokud váš kód vyžaduje balíčky, které nejsou ve výchozím nastavení nainstalovány s SQL Serverem, uspořádejte s správcem databáze, aby byly balíčky nainstalovány s instancí. SQL Server je zabezpečené prostředí a existují omezení, kde lze balíčky nainstalovat. Další informace naleznete v tématu Instalace nových balíčků R na SQL Server.
5. Testování připojení
Jako krok ověření ověřte připojení ke vzdálenému serveru pomocí RGUI a RevoScaleR. SQL Server musí být povolený pro vzdálená připojení a musíte mít oprávnění, včetně přihlášení uživatele a databáze pro připojení.
Následující kroky předpokládají ukázkové databáze, NYCTaxi_Sample a ověřování systému Windows.
Na klientské pracovní stanici otevřete RGUI . Přejděte například na
~\Program Files\Microsoft SQL Server\140\R_SERVER\bin\x64RGui.exe a poklikáním ji spusťte.RevoScaleR se načte automaticky. Spuštěním tohoto příkazu ověřte, že je RevoScaleR funkční:
print(Revo.version)Zadejte ukázkový skript, který se spustí na vzdáleném serveru. Následující ukázkový skript je nutné upravit tak, aby obsahoval platný název vzdálené instance SQL Serveru. Tato relace začíná jako místní relace, ale funkce rxSummary se spustí ve vzdálené instanci SQL Serveru.
# Define a connection. Replace server with a valid server name. connStr <- "Driver=SQL Server;Server=<your-server-name>;Database=NYCTaxi_Sample;Trusted_Connection=true" # Specify the input data in a SQL query. sampleQuery <-"SELECT DISTINCT TOP(100) tip_amount FROM [dbo].nyctaxi_sample ORDER BY tip_amount DESC;" # Define a remote compute context based on the remote server. cc <-RxInSqlServer(connectionString=connStr) # Execute the function using the remote compute context. rxSummary(formula = ~ ., data = RxSqlServerData(sqlQuery=sampleQuery, connectionString=connStr), computeContext=cc)Výsledky:
Tento skript se připojí k databázi na vzdáleném serveru, poskytne dotaz, vytvoří instrukci výpočetního kontextu
ccpro vzdálené spuštění kódu a pak poskytne funkci RevoScaleR rxSummary pro vrácení statistického souhrnu výsledků dotazu.Call: rxSummary(formula = ~., data = RxSqlServerData(sqlQuery = sampleQuery, connectionString = connStr), computeContext = cc) Summary Statistics Results for: ~. Data: RxSqlServerData(sqlQuery = sampleQuery, connectionString = connStr) (RxSqlServerData Data Source) Number of valid observations: 100 Name Mean StdDev Min Max ValidObs MissingObs tip_amount 63.245 31.61087 36 180 100 0Získejte a nastavte výpočetní kontext. Jakmile nastavíte výpočetní kontext, bude v platnosti po celou relaci. Pokud si nejste jistí, jestli je výpočet místní nebo vzdálený, spusťte následující příkaz, abyste zjistili. Výsledky, které určují připojovací řetězec, označují vzdálený výpočetní kontext.
# Return the current compute context. rxGetComputeContext() # Revert to a local compute context. rxSetComputeContext("local") rxGetComputeContext() # Switch back to remote. connStr <- "Driver=SQL Server;Server=<your-server-name>;Database=NYCTaxi_Sample;Trusted_Connection=true" cc <-RxInSqlServer(connectionString=connStr) rxSetComputeContext(cc) rxGetComputeContext()Vrátí informace o proměnných ve zdroji dat, včetně názvu a typu.
rxGetVarInfo(data = inDataSource)Výsledky zahrnují 23 proměnných.
Vygenerujte bodový graf, abyste prozkoumali, jestli existují závislosti mezi dvěma proměnnými.
# Set the connection string. Substitute a valid server name for the placeholder. connStr <- "Driver=SQL Server;Server=<your database name>;Database=NYCTaxi_Sample;Trusted_Connection=true" # Specify a query on the nyctaxi_sample table. # For variables on each axis, remove nulls. Use a WHERE clause and <> to do this. sampleQuery <-"SELECT DISTINCT TOP 100 * from [dbo].[nyctaxi_sample] WHERE fare_amount <> '' AND tip_amount <> ''" cc <-RxInSqlServer(connectionString=connStr) # Generate a scatter plot. rxLinePlot(fare_amount ~ tip_amount, data = RxSqlServerData(sqlQuery=sampleQuery, connectionString=connStr, computeContext=cc), type="p")Následující snímek obrazovky ukazuje vstup a výstup bodového grafu.
6. Propojení nástrojů na R.exe
V případě trvalých a závažných vývojových projektů byste měli nainstalovat integrované vývojové prostředí (IDE). Nástroje SQL Serveru a integrované nástroje R nejsou vybaveny pro náročný vývoj jazyka R. Jakmile máte funkční kód, můžete ho nasadit jako uloženou proceduru pro spuštění na SQL Serveru.
Nasměrujte integrované vývojové prostředí do místních knihoven R: base R, RevoScaleR atd. Spouštění úloh na vzdáleném SQL Serveru probíhá během provádění skriptu, když váš skript vyvolá vzdálený výpočetní kontext na SQL Serveru a přistupuje k datům a operacím na tomto serveru.
RStudio
Při použití RStudio můžete prostředí nakonfigurovat tak, aby používalo knihovny R a spustitelné soubory, které odpovídají těm na vzdáleném SQL Serveru.
Zkontrolujte verze balíčků R nainstalované na SQL Serveru. Další informace naleznete v tématu Získání informací o balíčku R.
Nainstalujte klienta Microsoft R pro přidání RevoScaleR a dalších balíčků R, včetně základní distribuce R používané vaší instancí SQL Serveru. Zvolte verzi na stejné nebo nižší úrovni (balíčky jsou zpětně kompatibilní), která poskytuje stejné verze balíčků jako na serveru. Pokud chcete zobrazit verze balíčků nainstalované na serveru, podívejte se na seznam všech nainstalovaných balíčků R.
V RStudio aktualizujte cestu R tak, aby odkazovala na prostředí R poskytující RevoScaleR, Microsoft R Open a další balíčky Microsoftu. Vyhledejte
%ProgramFiles%\Microsoft\R Client\R_SERVER\bin\x64.Zavřete a otevřete RStudio.
Když znovu otevřete RStudio, spustitelný soubor R z R Client je výchozím nástrojem R.
R Tools for Visual Studio (RTVS)
Pokud ještě nemáte upřednostňované integrované vývojové prostředí (IDE) pro jazyk R, doporučujeme nástroje R pro Visual Studio.
- Stažení nástrojů R pro Visual Studio (RTVS)
- Pokyny k instalaci – RTVS je k dispozici v několika verzích sady Visual Studio.
- Začínáme s nástroji R Pro Visual Studio
Připojení k SQL Serveru z RTVS
Tento příklad používá Visual Studio 2017 Community Edition s nainstalovanou úlohou datových věd.
V nabídce Soubor vyberte Nový a pak vyberte Projekt.
Levé podokno obsahuje seznam předinstalovaných šablon. Vyberte R a vyberte Projekt jazyka R. Do pole Název zadejte
dbtesta vyberte OK.Visual Studio vytvoří novou složku projektu a výchozí soubor skriptu.
Script.RZadejte
.libPaths()na první řádek souboru skriptu a stiskněte klávesuCTRL + ENTER.Aktuální cesta knihovny jazyka R by se měla zobrazit v okně R Interactive .
Vyberte nabídku Nástroje jazyka R a výběrem možnosti Windows zobrazte seznam dalších oken specifických pro jazyk R, která můžete zobrazit ve svém pracovním prostoru.
- Pokud chcete zobrazit nápovědu k balíčkům v aktuální knihovně, stiskněte ctrl + 3.
- Pokud chcete zobrazit proměnné R v Průzkumníku proměnných, stiskněte kombinaci kláves CTRL + 8.
Další kroky
Mezi dva různé kurzy patří cvičení, která vám umožní procvičit přepínání výpočetního kontextu z místního na vzdálenou instanci SQL Serveru.