Поделиться через


Запрос и изменение данных SQL Server (учебник по SQL Server и RevoScaleR)

Область применения: SQL Server 2016 (13.x) и более поздних версий

Эта часть 3 входит в состав серии учебников по RevoScaleR, посвященной использованию функций RevoScaleR в SQL Server.

В предыдущем руководстве вы загрузили данные в SQL Server. Теперь вы сможете изучить и изменить данные с помощью RevoScaleR:

  • Получение основных сведений о переменных
  • Создание категориальных данных из необработанных данных

Категориальные данные или факторные переменные помогают визуализировать произвольные данные. Их можно использовать как входных данных для гистограмм, чтобы получить представление о переменных данных.

Запрос столбцов и типов

Для выполнения скрипта R используйте IDE R или RGui.exe.

Сначала получите список столбцов и их типов данных. Можно использовать функцию rxGetVarInfo и указать источник данных, которые нужно проанализировать. В зависимости от версии RevoScaleR можно также использовать rxGetVarNames.

rxGetVarInfo(data = sqlFraudDS)

Результаты

Var 1: custID, Type: integer
Var 2: gender, Type: integer
Var 3: state, Type: integer
Var 4: cardholder, Type: integer
Var 5: balance, Type: integer
Var 6: numTrans, Type: integer
Var 7: numIntlTrans, Type: integer
Var 8: creditLine, Type: integer
Var 9: fraudRisk, Type: integer

Создание категориальных данных

Все переменные хранятся как целочисленные, но некоторые из них представляют категориальные данные — в языке R они называются факторными переменными. Например, столбец state содержит числа, представляющие идентификаторы 50 штатов, а также округа Колумбия. Чтобы упростить понимание данных, замените числа списком сокращений, обозначающих штаты.

На этом этапе вы создадите вектор строк, содержащий эти сокращения, а затем сопоставите эти категориальные значения с исходными целочисленными идентификаторами. Затем вы добавите новую переменную в аргумент colInfo, чтобы указать, что этот столбец будет обрабатываться как коэффициент. При анализе данных или перемещении данных используются аббревиатуры, а столбец обрабатывается как коэффициент.

Сопоставление столбца сокращениям перед использованием столбца в качестве коэффициента также способствует повышению производительности. Дополнительные сведения см. в разделе Язык R и оптимизация данных.

  1. Сначала создайте переменную R с именем stateAbb и определите вектор строк, который следует в нее добавить, следующим образом:

    stateAbb <- c("AK", "AL", "AR", "AZ", "CA", "CO", "CT", "DC",
        "DE", "FL", "GA", "HI","IA", "ID", "IL", "IN", "KS", "KY", "LA",
        "MA", "MD", "ME", "MI", "MN", "MO", "MS", "MT", "NB", "NC", "ND",
        "NH", "NJ", "NM", "NV", "NY", "OH", "OK", "OR", "PA", "RI","SC",
        "SD", "TN", "TX", "UT", "VA", "VT", "WA", "WI", "WV", "WY")
    
  2. Затем создайте объект сведений о столбце с именем ccColInfo, в котором задается сопоставление существующих целочисленных значений категориальным уровням (сокращенным названиям штатов).

    Эта инструкция также создает факторные переменные для gender и cardholder.

    ccColInfo <- list(
    gender = list(
              type = "factor",
              levels = c("1", "2"),
              newLevels = c("Male", "Female")
              ),
    cardholder = list(
                  type = "factor",
                  levels = c("1", "2"),
                  newLevels = c("Principal", "Secondary")
                   ),
    state = list(
             type = "factor",
             levels = as.character(1:51),
             newLevels = stateAbb
             ),
    balance = list(type = "numeric")
    )
    
  3. Чтобы создать источник данных SQL Server, использующий обновленные данные, вызовите функцию RxSqlServerData , как и раньше, но добавьте аргумент colInfo .

    sqlFraudDS <- RxSqlServerData(connectionString = sqlConnString,
    table = sqlFraudTable, colInfo = ccColInfo,
    rowsPerRead = sqlRowsPerRead)
    
    • Для параметра table передайте переменную sqlFraudTable, которая содержит созданный ранее источник данных.
    • Для параметра colInfo передайте переменную ccColInfo , которая содержит типы данных столбцов и уровни коэффициентов.
  4. Теперь с помощью функции rxGetVarInfo можно просматривать переменные в новом источнике данных.

    rxGetVarInfo(data = sqlFraudDS)
    

    Результаты

    Var 1: custID, Type: integer
    Var 2: gender  2 factor levels: Male Female
    Var 3: state   51 factor levels: AK AL AR AZ CA ... VT WA WI WV WY
    Var 4: cardholder  2 factor levels: Principal Secondary
    Var 5: balance, Type: integer
    Var 6: numTrans, Type: integer
    Var 7: numIntlTrans, Type: integer
    Var 8: creditLine, Type: integer
    Var 9: fraudRisk, Type: integer
    

Теперь три указанные вами переменные (gender, state и cardholder) обрабатываются как факторы.

Следующие шаги