다음을 통해 공유


SQL Server 데이터 쿼리 및 수정(SQL Server 및 RevoScaleR 자습서)

적용 대상: SQL Server 2016(13.x) 이상 버전

이것은 SQL Server에서 RevoScaleR 함수를 사용하는 방법에 대한 RevoScaleR 자습서 시리즈 중 자습서 3에 해당됩니다.

이전 자습서에서는 데이터를 SQL Server에 로드했습니다. 이 자습서에서는 RevoScaleR을 사용하여 데이터를 탐색하고 수정할 수 있습니다.

  • 변수에 대한 기본 정보 반환
  • 원시 데이터에서 범주별 데이터 만들기

범주별 데이터 또는 요소 변수는 예비 데이터 시각화에 유용합니다. 히스토그램에 대한 입력으로 사용하여 변수 데이터의 모양을 파악할 수 있습니다.

열 및 형식에 대한 쿼리

R IDE 또는 RGui.exe를 사용하여 R 스크립트를 실행합니다.

먼저, 열과 해당 데이터 형식 목록을 가져옵니다. 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에서는 요소 변수라고 합니다. 예를 들어 열에는 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라는 열 정보 개체를 만듭니다.

    이 문은 성별 및 카드 소유자에 대한 요소 변수도 만듭니다.

    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
    

이제 지정한 변수 3개(gender, state, cardholder)가 요소로 처리됩니다.

다음 단계