Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: SQL Server 2016 (13.x) i nowsze wersje
To jest czwarty samouczek z serii RevoScaleR, jak korzystać z funkcji RevoScaleR z SQL Server.
W poprzednim samouczku używałeś funkcji RevoScaleR do analizowania obiektów danych. Ten samouczek wprowadza funkcję RxInSqlServer, która pozwala zdefiniować kontekst obliczeniowy dla zdalnego SQL Server. W kontekście zdalnym obliczeniowym możesz przenieść wykonanie R z lokalnej sesji na zdalną sesję na serwerze.
- Poznaj elementy zdalnego kontekstu obliczeniowego SQL Server
- Włącz śledzenie na obiekcie kontekstu obliczeniowego
RevoScaleR obsługuje wiele kontekstów obliczeniowych: Hadoop, Spark na HDFS oraz SQL Server w bazie danych. W przypadku SQL Server funkcja RxInSqlServer służy do połączeń z serwerem i przekazywania obiektów między komputerem lokalnym a zdalnym kontekstem wykonawczym.
Stwórz i ustaw kontekst obliczeniowy
Funkcja RxInSqlServer tworząca kontekst obliczeniowy SQL Server wykorzystuje następujące informacje:
- Ciąg połączeń dla instancji SQL Server
- Specyfikacja sposobu obsługi wyników
- Opcjonalna specyfikacja współdzielonego katalogu danych
- Opcjonalne argumenty umożliwiające śledzenie lub określające poziom śladu
Ta sekcja przeprowadza cię przez każdą z nich.
Określ parametry połączenia dla instancji, w której wykonywane są obliczenia. Możesz ponownie użyć parametry połączenia, który wcześniej stworzyłeś.
Korzystanie z logowania SQL
sqlConnString <- "Driver=SQL Server;Server=<SQL Server instance name>; Database=<database name>;Uid=<SQL user nme>;Pwd=<password>"Korzystanie z Windows authentication
sqlConnString <- "Driver=SQL Server;Server=instance_name;Database=RevoDeepDive;Trusted_Connection=True"Określ, jak mają zostać obsłużone dane wyjściowe. Poniższy skrypt kieruje lokalną sesję R do oczekiwania na wyniki zadań R na serwerze przed przetworzeniem kolejnej operacji. Blokuje także pojawienie się wyników zdalnych obliczeń w sesji lokalnej.
sqlWait <- TRUE sqlConsoleOutput <- FALSEArgument wait funkcji RxInSqlServer obsługuje następujące opcje:
TRUE. Zadanie jest skonfigurowane jako blokujące i nie wraca, dopóki nie zostanie ukończone lub nie zakończy się niepowodzeniem.
FAŁSZ. Zadania są skonfigurowane jako nieblokujące i natychmiast wracają, co pozwala kontynuować uruchamianie innego kodu R. Jednak nawet w trybie nieblokującym połączenie klienta z SQL Server musi być utrzymywane podczas działania zadania.
Opcjonalnie można określić lokalizację lokalnego katalogu do wspólnego użytku przez lokalną sesję R oraz zdalny komputer SQL Server i jego konta.
sqlShareDir <- paste("c:\\AllShare\\", Sys.getenv("USERNAME"), sep="")Jeśli chcesz ręcznie utworzyć konkretny katalog do udostępniania, możesz dodać linię taką:
dir.create(sqlShareDir, recursive = TRUE)Przekaż argumenty konstruktorowi RxInSqlServer w celu utworzenia obiektu kontekstu obliczeniowego.
sqlCompute <- RxInSqlServer( connectionString = sqlConnString, wait = sqlWait, consoleOutput = sqlConsoleOutput)Składnia RxInSqlServer wygląda niemal identycznie jak w funkcji RxSqlServerData , której wcześniej użyłeś do definiowania źródła danych. Istnieją jednak pewne istotne różnice.
Obiekt źródła danych, zdefiniowany za pomocą funkcji RxSqlServerData, określa, gdzie dane są przechowywane.
Natomiast kontekst obliczeniowy, zdefiniowany za pomocą funkcji RxInSqlServer , wskazuje, gdzie mają odbywać się agregacje i inne obliczenia.
Definiowanie kontekstu obliczeniowego nie wpływa na inne ogólne obliczenia R, które możesz wykonać na swojej stacji roboczej, i nie zmienia źródła danych. Na przykład możesz zdefiniować lokalny plik tekstowy jako źródło danych, ale zmienić kontekst obliczeniowy na SQL Server i wszystkie czytania oraz podsumowania robić na komputerze SQL Server.
Aktywuj zdalny kontekst obliczeniowy.
rxSetComputeContext(sqlCompute)Zwracaj informacje o kontekście obliczeniowym, w tym jego właściwościach.
rxGetComputeContext()Zresetuj kontekst obliczeniowy z powrotem do komputera lokalnego, podając słowo kluczowe "lokalne" (następny samouczek pokazuje użycie zdalnego kontekstu obliczeniowego).
rxSetComputeContext("local")
Wskazówka
Aby uzyskać listę innych słów kluczowych obsługiwanych przez tę funkcję, wpisz help("rxSetComputeContext") z wiersza poleceń R.
Włącz śledzenie
Czasami operacje działają w lokalnym środowisku, ale występują problemy podczas działania w zdalnym środowisku obliczeniowym. Jeśli chcesz analizować problemy lub monitorować wydajność, możesz włączyć śledzenie w kontekście obliczeniowym, aby wspierać rozwiązywanie problemów w czasie działania.
Stwórz nowy kontekst obliczeniowy, który używa tego samego parametry połączenia, ale dodaj argumenty traceEnabled i traceLevel do konstruktora RxInSqlServer.
sqlComputeTrace <- RxInSqlServer( connectionString = sqlConnString, #shareDir = sqlShareDir, wait = sqlWait, consoleOutput = sqlConsoleOutput, traceEnabled = TRUE, traceLevel = 7)W tym przykładzie właściwość traceLevel jest ustawiona na 7, co oznacza "pokaż wszystkie informacje o śledzeniu".
Użyj funkcji rxSetComputeContext, aby określić kontekst obliczeniowy z włączonym śledzeniem za pomocą nazwy.
rxSetComputeContext(sqlComputeTrace)
Następny krok
Dowiedz się, jak przełączać konteksty obliczeniowe, aby uruchamiać kod R na serwerze lub lokalnie.