Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2016 (13.x) e versões posteriores
Este é o tutorial 13 da série de tutoriais RevoScaleR sobre como usar funções RevoScaleR com SQL Server.
Neste tutorial, vais aprender a usar um ficheiro XDF para transferir dados entre contextos de computação remotos e locais. Armazenar os dados num ficheiro XDF permite-lhe realizar transformações nos dados.
Quando terminas, usas os dados do ficheiro para criar uma nova tabela SQL Server. A função rxDataStep pode aplicar transformações aos dados e realiza a conversão entre frames de dados e ficheiros .xdf.
Crie uma tabela SQL Server a partir de um ficheiro XDF
Neste exercício, volta a utilizar os dados sobre fraude com cartões de crédito. Neste cenário, foi-lhe pedido que faça uma análise extra sobre utilizadores nos estados da Califórnia, Oregon e Washington. Para ser mais eficiente, decidiu armazenar os dados apenas desses estados no seu computador local e trabalhar apenas com as variáveis género, titular do cartão, estado e saldo.
Reutilize a
stateAbbvariável que criou anteriormente para identificar os níveis a incluir e escreva-os numa nova variável,statesToKeep.statesToKeep <- sapply(c("CA", "OR", "WA"), grep, stateAbb) statesToKeepResults
AC OR WA 5 38 48 Defina os dados que quer trazer de SQL Server, usando uma consulta Transact-SQL. Mais tarde usas esta variável como argumento inData para rxImport.
importQuery <- paste("SELECT gender,cardholder,balance,state FROM", sqlFraudTable, "WHERE (state = 5 OR state = 38 OR state = 48)")Certifique-se de que não há caracteres ocultos, como saltos de linha ou tabulações, na consulta.
De seguida, defina as colunas a usar ao trabalhar com os dados em R. Por exemplo, no conjunto de dados mais pequeno, só precisas de três níveis de fatores, porque a consulta devolve dados apenas para três estados. Aplique a
statesToKeepvariável para identificar os níveis corretos a incluir.importColInfo <- 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(statesToKeep), newLevels = names(statesToKeep)) )Defina o contexto de computação para local, porque quer que todos os dados estejam disponíveis no seu computador local.
rxSetComputeContext("local")A função rxImport pode importar dados de qualquer fonte de dados suportada para um ficheiro XDF local. Usar uma cópia local dos dados é conveniente quando se quer fazer várias análises diferentes sobre os dados, mas evitar executar a mesma consulta repetidamente.
Crie o objeto fonte de dados passando as variáveis previamente definidas como argumentos para o RxSqlServerData.
sqlServerImportDS <- RxSqlServerData( connectionString = sqlConnString, sqlQuery = importQuery, colInfo = importColInfo)Chame rxImport para escrever os dados num ficheiro chamado
ccFraudSub.xdf, no diretório de trabalho atual.localDS <- rxImport(inData = sqlServerImportDS, outFile = "ccFraudSub.xdf", overwrite = TRUE)O
localDsobjeto devolvido pela função rxImport é um objeto fonte de dados RxXdfData leve que representa o ficheiroccFraud.xdfde dados armazenado localmente no disco.Chame rxGetVarInfo no ficheiro XDF para verificar se o esquema de dados é o mesmo.
rxGetVarInfo(data = localDS)Results
rxGetVarInfo(data = localDS) Var 1: gender, Type: factor, no factor levels available Var 2: cardholder, Type: factor, no factor levels available Var 3: balance, Type: integer, Low/High: (0, 22463) Var 4: state, Type: factor, no factor levels availableAgora pode chamar várias funções R para analisar o objeto localDs, tal como faria com os dados de origem no SQL Server. Por exemplo, pode resumir por género:
rxSummary(~gender + cardholder + balance + state, data = localDS)
Passo seguinte
Este tutorial conclui a série de tutoriais em várias partes sobre RevoScaleR e SQL Server. Apresentou-lhe inúmeros conceitos relacionados com dados e computacionais, dando-lhe uma base para avançar com os seus próprios requisitos de dados e projetos.
Para aprofundar o seu conhecimento do RevoScaleR, pode voltar à lista de tutoriais do R para passar por quaisquer exercícios que possa ter perdido. Em alternativa, consulte os artigos de instruções no índice para obter informações sobre tarefas gerais.