ODBC를 사용하여 SQL Server Machine Learning Services에서 R 개체 저장 및 로드
적용 대상: SQL Server 2016(13.x) 이상 버전
RevoScaleR 패키지를 사용하여 직렬화된 R 개체를 테이블에 저장한 다음, SQL Server Machine Learning Services를 통해 필요에 따라 테이블에서 개체를 로드하는 방법을 알아봅니다. 모델을 학습시키고 저장할 때 사용할 수 있으며 나중에 점수 매기기 또는 분석에 사용할 수 있습니다.
RevoScaleR 패키지
RevoScaleR 패키지에는 SQL Server에 R 개체를 간결하게 표시한 다음, 테이블에서 개체를 읽을 수 있는 serialization 및 deserialization 함수가 포함됩니다. 일반적으로 각 함수 호출은 간단한키 값 저장소를 사용합니다. 여기서 키는 개체의 이름이고 키와 관련된 값은 테이블 내부 또는 외부로 이동할 varbinary R 개체입니다.
R 환경에서 직접 SQL Server에 R 개체를 저장하려면 다음을 수행해야 합니다.
- RxOdbcData 데이터 원본을 사용하여 SQL Server에 대한 연결을 설정했습니다.
- ODBC 연결을 통해 새 함수 호출
- 필요에 따라 개체가 직렬화되지 않도록 지정할 수 있습니다. 그런 다음, 기본 압축 알고리즘 대신 사용할 새 압축 알고리즘을 선택합니다.
기본적으로 SQL Server로 이동하기 위해 R에서 호출하는 모든 개체는 직렬화되고 압축됩니다. 반대로 R 코드에서 사용하기 위해 SQL Server 테이블에서 개체를 로드하는 경우 개체는 역직렬화되고 압축이 풀립니다.
새 함수 목록
rxWriteObject
는 ODBC 데이터 원본을 사용하여 SQL Server에 R 개체를 씁니다.rxReadObject
는 ODBC 데이터 원본을 사용하여 SQL Server 데이터베이스에서 R 개체를 읽습니다.rxDeleteObject
는 ODBC 데이터 원본에 지정된 SQL Server 데이터베이스에서 R 개체를 삭제합니다. 키/버전 조합으로 식별되는 개체가 여러 개 있을 경우 모두 삭제됩니다.rxListKeys
는 사용 가능한 모든 개체를 키-값 쌍으로 나열합니다. 따라서 R 개체의 이름 및 버전을 확인하는 데 도움이 됩니다.
각 함수의 구문에 대한 자세한 도움말을 보려면 R 도움말을 사용하세요. 자세한 내용은 ScaleR 참조에서도 확인할 수 있습니다.
ODBC를 사용하여 SQL Server에 R 개체를 저장하는 방법
이 절차에서는 새 함수를 사용하여 모델을 만들고 SQL Server에 저장하는 방법을 보여 줍니다.
SQL Server에 대한 연결 문자열을 설정합니다.
conStr <- 'Driver={SQL Server};Server=localhost;Database=storedb;Trusted_Connection=true'
연결 문자열을 사용하여 R에 rxOdbcData 데이터 원본 개체를 만듭니다.
ds <- RxOdbcData(table="robjects", connectionString=conStr)
테이블이 이미 있는 경우 삭제하고 이전 버전의 개체를 추적하지 않으려고 합니다.
if(rxSqlServerTableExists(ds@table, ds@connectionString)) { rxSqlServerDropTable(ds@table, ds@connectionString) }
이진 개체를 저장하는 데 사용할 수 있는 테이블을 정의합니다.
ddl <- paste(" CREATE TABLE [", ds@table, "] ("," [id] varchar(200) NOT NULL, "," [value] varbinary(max), "," CONSTRAINT unique_id UNIQUE (id))", sep = "")
ODBC 연결을 열어 테이블을 만들고 DDL 문이 완료되면 연결을 닫습니다.
rxOpen(ds, "w") rxExecuteSQLDDL(ds, ddl) rxClose(ds)
저장하려는 R 개체를 생성합니다.
infertLogit <- rxLogit(case ~ age + parity + education + spontaneous + induced, data = infert)
앞에서 만든 RxOdbcData 개체를 사용하여 모델을 데이터베이스에 저장합니다.
rxWriteObject(ds, "logit.model", infertLogit)
ODBC를 사용하여 SQL Server에서 R 개체를 읽는 방법
이 절차에서는 새 함수를 사용하여 SQL Server에서 모델을 로드하는 방법을 보여 줍니다.
SQL Server에 대한 연결 문자열을 설정합니다.
conStr2 <- 'Driver={SQL Server};Server=localhost;Database=storedb;Trusted_Connection=true'
연결 문자열을 사용하여 R에 rxOdbcData 데이터 원본 개체를 만듭니다.
ds <- RxOdbcData(table="robjects", connectionString=conStr2)
해당 R 개체 이름을 지정하여 테이블에서 모델을 읽습니다.
infertLogit2 <- rxReadObject(ds, "logit.model")
다음 단계
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기