StoredProcedure: SQL Server Prosedur Tersimpan: Generator Kelas
StoredProcedure
: menghasilkan Objek Prosedur Tersimpan SQLServer dan secara opsional file .sql yang berisi kueri untuk membuat prosedur tersimpan. StoredProcedure$registrationVec berisi string yang mewakili kueri yang diperlukan untuk pembuatan prosedur tersimpan
Penggunaan
StoredProcedure (func, spName, ..., filePath = NULL ,dbName = NULL,
connectionString = NULL, batchSeparator = "GO")
Argumen
func
Fungsi R yang valid atau nama string dari fungsi R yang valid: 1) Semua variabel yang diandalkan fungsi harus didefinisikan baik di dalam fungsi atau masuk sebagai parameter input. Di antara parameter input, paling banyak ada 1 bingkai data 2) Fungsi harus mengembalikan bingkai data, daftar bernama, atau NULL. Mungkin ada paling banyak satu bingkai data di dalam daftar.
spName
String karakter yang menentukan nama untuk prosedur tersimpan.
...
Parameter input dan output opsional untuk prosedur tersimpan; harus berupa objek kelas InputData, InputParameter, atau outputParameter.
filePath
String karakter yang menentukan jalur ke direktori untuk membuat .sql. Jika NULL, file .sql tidak dihasilkan.
dbName
String karakter yang menentukan nama database yang akan digunakan.
connectionString
String karakter yang menentukan string koneksi.
batchSeparator
Pemisah batch SQL yang diinginkan (hanya relevan jika filePath ditentukan)
Nilai
Objek Prosedur Tersimpan SQLServer
Contoh
## Not run:
############# Example 1 #############
# etl1 - reads from and write directly to the database
etl1 <- function() {
# The query to get the data
qq <- "select top 10000 ArrDelay,CRSDepTime,DayOfWeek from AirlineDemoSmall"
# The connection string
conStr <- paste("Driver={ODBC Driver 13 for SQL Server};Server=.;Database=RevoTestDB;",
"Trusted_Connection=Yes;", sep = "")
# The data source - retrieves the data from the database
dsSqls <- RxSqlServerData(sqlQuery=qq, connectionString=conStr)
# The destination data source
dsSqls2 <- RxSqlServerData(table ="cleanData", connectionString = conStr)
# A transformation function
transformFunc <- function(data) {
data$CRSDepHour <- as.integer(trunc(data$CRSDepTime))
return(data)
}
# The transformation variables
transformVars <- c("CRSDepTime")
rxDataStep(inData = dsSqls,
outFile = dsSqls2,
transformFunc=transformFunc,
transformVars=transformVars,
overwrite = TRUE)
return(NULL)
}
# Create a StoredProcedure object
sp_ds_ds <- StoredProcedure(etl1, "spTest",
filePath = ".", dbName ="RevoTestDB")
# Define a connection string
conStr <- paste("Driver={ODBC Driver 13 for SQL Server};Server=.;Database=RevoTestDB;",
"Trusted_Connection=Yes;", sep = "")
# register the stored procedure with a database
registerStoredProcedure(sp_ds_ds, conStr)
# execute the stored procedure
executeStoredProcedure(sp_ds_ds, connectionString = conStr)
############# Example 2 #############
# train 1 takes a data frame with clean data and outputs a model
train1 <- function(in_df) {
in_df[,"DayOfWeek"] <- factor(in_df[,"DayOfWeek"], levels=c("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"))
# The model formula
formula <- ArrDelay ~ CRSDepTime + DayOfWeek + CRSDepHour:DayOfWeek
# Train the model
rxSetComputeContext("local")
mm <- rxLinMod(formula, data=in_df)
mm <- rxSerializeModel(mm)
return(list("mm" = mm))
}
# create InpuData Object for an input parameter that is a data frame
# note: if the input parameter is not a data frame use InputParameter object
id <- InputData(name = "in_df",
defaultQuery = paste0("select top 10000 ArrDelay,CRSDepTime,",
"DayOfWeek,CRSDepHour from cleanData"))
# create an OutputParameter object for the variable inside the return list
# note: if that variable is a data frame use OutputData object
out <- OutputParameter("mm", "raw")
# connections string
conStr <- paste0("Driver={ODBC Driver 13 for SQL Server};Server=.;Database=RevoTestDB;",
"Trusted_Connection=Yes;")
# create the stored procedure object
sp_df_op <- StoredProcedure("train1", "spTest1", id, out,
filePath = ".")
# register the stored procedure with the database
registerStoredProcedure(sp_df_op, conStr)
# get the linear model
model <- executeStoredProcedure(sp_df_op, connectionString = conStr)
mm <- rxUnserializeModel(model$params$op1)
## End(Not run)