StoredProcedure: SQL Server Gespeicherte Prozedur: Klassengenerator

StoredProcedure: Generiert ein SQLServer Stored Procedure-Objekt und optional eine SQL-Datei, die eine Abfrage zum Erstellen einer gespeicherten Prozedur enthält. StoredProcedure$registrationVec enthält Zeichenfolgen, die die Abfragen darstellen, die zum Erstellen der gespeicherten Prozedur erforderlich sind.

Verwendung

  StoredProcedure (func, spName, ..., filePath = NULL ,dbName = NULL,
  connectionString = NULL, batchSeparator = "GO")

Argumente

func

Eine gültige R-Funktion oder ein Zeichenfolgenname einer gültigen R-Funktion: 1) Alle Variablen, auf denen die Funktion basiert, sollten entweder innerhalb der Funktion definiert werden oder als Eingabeparameter eingegeben werden. Unter den Eingabeparametern kann es mindestens einen Datenrahmen geben. 2) Die Funktion sollte entweder einen Datenrahmen, eine benannte Liste oder NULL zurückgeben. In der Liste kann sich nur ein Datenrahmen befindet.

spName

Eine Zeichenfolge, die den Namen für die gespeicherte Prozedur angibt.

...

Optionale Eingabe- und Ausgabeparameter für die gespeicherte Prozedur. Dies müssen Objekte der Klassen InputData, InputParameter oder outputParameter sein.

filePath

Eine Zeichenfolge, die einen Pfad zu dem Verzeichnis angibt, in dem die SQL-Datei erstellt werden soll. Wenn der Wert NULL ist, wird die SQL-Datei nicht generiert.

dbName

Eine Zeichenfolge, die den Namen der zu verwendenden Datenbank angibt.

connectionString

Eine Zeichenfolge, die die Verbindungszeichenfolge angibt.

batchSeparator

Gewünschtes SQL-Batchtrennzeichen (nur relevant, wenn filePath definiert ist)

Wert

SQLServer Stored Procedure-Objekt

Beispiele


 ## 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)