Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: SQL Server 2016 (13.x) и более поздних версий
Эта часть 5 входит в состав серии учебников по RevoScaleR, посвященная использованию функций RevoScaleR в SQL Server.
В этой части используются источники данных и контексты вычислений, созданные и настроенные при работе с предыдущими частями учебника для запуска мощных скриптов R. В этом учебнике вы примените контексты вычислений локального и удаленного серверов для решения следующих задач.
- Переключение контекста вычислений на SQL Server
- Получение сводной статистики по удаленным объектам данных
- Вычисление локальной сводки
Если вы выполнили предыдущие учебники, у вас должны быть следующие удаленные контексты вычислений: sqlCompute и sqlComputeTrace. В последующих учебниках вы будете использовать sqlCompute и локальный контекст вычислений.
Используйте интегрированную среду разработки R или Rgui для запуска скрипта R из этого учебника.
Вычисление сводных статистических данных для удаленных данных
Перед удаленным выполнением любого кода на языке R необходимо указать удаленный контекст вычислений. Все последующие вычисления выполняются на компьютере SQL Server, указанном в параметре sqlCompute .
Контекст вычислений будет оставаться активным, пока вы не измените его. Однако скрипты R, которые не могут выполняться в контексте удаленного сервера, будут автоматически выполняться локально.
Чтобы увидеть, как работает контекст вычислений, создайте сводную статистику для источника данных sqlFraudDS на удаленном экземпляре SQL Server. Этот объект источника данных, который мы создали в части 2, представляет таблицу ccFraudSmall в базе данных RevoDeepDive.
Переключите контекст вычислений на контекст sqlCompute, созданный в предыдущем учебнике:
rxSetComputeContext(sqlCompute)Вызовите функцию rxSummary и передайте требуемые аргументы, такие как формула и источник данных, а также занесите результаты в переменную
sumOut.sumOut <- rxSummary(formula = ~gender + balance + numTrans + numIntlTrans + creditLine, data = sqlFraudDS)В языке R существует множество функций для получения сводных данных, однако функция rxSummary в RevoScaleR поддерживает выполнение в различных удаленных контекстах вычислений, например SQL Server. Дополнительные сведения о подобных функциях см. в разделе Получение сводок данных с помощью RevoScaleR.
Введите содержимое переменной sumOut в консоли.
sumOutПримечание.
Если возникла ошибка, подождите несколько минут, пока не завершится выполнение команды.
Результаты
Summary Statistics Results for: ~gender + balance + numTrans + numIntlTrans + creditLine
Data: sqlFraudDS (RxSqlServerData Data Source)
Number of valid observations: 10000
Name Mean StdDev Min Max ValidObs MissingObs
balance 4075.0318 3926.558714 0 25626 100000
numTrans 29.1061 26.619923 0 100 10000 0 100000
numIntlTrans 4.0868 8.726757 0 60 10000 0 100000
creditLine 9.1856 9.870364 1 75 10000 0 100000
Category Counts for gender
Number of categories: 2
Number of valid observations: 10000
Number of missing observations: 0
gender Counts
Male 6154
Female 3846
Создание локальной сводки
Измените контекст вычисления так, чтобы все задачи выполнялись локально.
rxSetComputeContext ("local")При извлечении данных из SQL Server часто можно повысить производительность, увеличив число строк, извлекаемых для каждой операции считывания, при условии того, что блок с увеличенным размером можно разместить в памяти. Выполните следующую команду, чтобы увеличить значение параметра rowsPerRead в источнике данных. Ранее значение параметра rowsPerRead было равно 5000.
sqlServerDS1 <- RxSqlServerData( connectionString = sqlConnString, table = sqlFraudTable, colInfo = ccColInfo, rowsPerRead = 10000)Вызовите функцию rxSummary в новом источнике данных.
rxSummary(formula = ~gender + balance + numTrans + numIntlTrans + creditLine, data = sqlServerDS1)Фактические результаты должны совпадать с тем, что при запуске rxSummary в контексте компьютера SQL Server. Однако операция может выполняться быстрее или медленнее. Во многом это зависит от подключения к базе данных, так как данные передаются на локальный компьютер для анализа.
Вернитесь к удаленному контексту вычислений для нескольких последующих учебников.
rxSetComputeContext(sqlCompute)