Ei pessoal, Obrigado pelas sugestões de todos. Não sei de onde veio essa informação de que RODBC estaria "deprecated" olhei no r-forge e parece estar ativo. A ultima atualização é do primeiro semestre de 2016.
A saida do meu problema foi usando Rclient. Um R disponibilizado no sítio da microsoft, que já vem instalados com uma série de pacotes proprietários da Microsoft para integração com o SQL server 2016/2017. O nome do pacote é RevoScaleR. Ao invés de fazer ... > p <- "SELECT model FROM [tempo_permanencia_models] WHERE id_model = 1022" > mod.teste.peq <- sqlQuery(conn, p) # que retorna o erro de memória! Eu fiz ... mod.teste.peq <- RxOdbcData(sqlQuery = "SELECT model FROM tempo_permanencia_models WHERE id_model=1018" ,connectionString = dbconn) mod.teste.peq <- rxReadObject(mod.teste.peq , decompress = "none") Agora dá pra fazer as previsões novamente... Abraço forte a todos, Pedro Brasil Em 2 de agosto de 2017 15:20, Leonard Assis via R-br < r-br@listas.c3sl.ufpr.br> escreveu: > RSQLServer não é boa alternativa, não sofre manutenção a tempos e depende > de Java na máquina. Sugiro o pacote odbc. > > SQL Server é mestre em dar problema no R comigo, mas o problema é na > autenticação. > > Em 1 de ago de 2017 9:14 AM, "Zhu Sha Zang via R-br" < > r-br@listas.c3sl.ufpr.br> escreveu: > >> Parece que RODBC está "deprecated", tente usar o pacote RSQLServer. >> >> >> Atenciosamente >> >> On 07/31/2017 01:53 PM, Cesar Rabak via R-br wrote: >> >> Correto Pedro! >> >> Contudo, não entendo porque. . . >> >> Minha forma de atacar esse problema seria mandar os dados para o BD por >> outra maneira (que ñ via R) e tentar conectar apenas para puxar os dados: >> aí a gente vê se é na criação do BD via R que ele deixa em aberto um >> tamanho default muito grande ou se é a chamada que por alguma coincidência >> cria um default exigindo tanta memória (embora nos OSs modernos isso não >> deveria gerar problema porque existem os gerenciadores de memória virtual). >> >> HTH >> -- >> Cesar Rabak >> >> >> 2017-07-31 10:32 GMT-03:00 Pedro Emmanuel Alvarenga Americano do Brasil < >> emmanuel.bra...@gmail.com>: >> >>> Cesar, >>> >>> A função RODBC::sqlQuery não tem exemplo, mas já usei diversas vezes com >>> outros scripts e funciona. Esse problema está acontecendo somente no >>> exemplo dessa conexão em específico. Então estou entendendo a partir de >>> agora que alguma configuração da conexão está pedindo pra reservar memória >>> mais do que o a máquina possui. >>> >>> Pedro Brasil >>> >>> Em 29 de julho de 2017 20:45, Cesar Rabak <cesar.ra...@gmail.com> >>> escreveu: >>> >>>> Pedro, >>>> >>>> Calloc é uma chamada "primitiva" para o R, uma função da biblioteca C e >>>> é uma função feita para "alocar" (reservar) memória e zerá-la. >>>> >>>> O estranho, para mim, é a tentativa do aplicativo de reservar *tanta* >>>> memória >>>> assim na chamada da função do R. >>>> >>>> Essa função sqlQuery() pode ser testada fazendo: >>>> >>>> > example(sqlQuery) >>>> >>>> ? >>>> >>>> Se o exemplo do próprio pacote funcionar, aí teremos que fazer uma >>>> busca para ver de onde vem esse comportamento. >>>> >>>> HTH >>>> -- >>>> Cesar Rabak >>>> >>>> >>>> >>>> >>>> 2017-07-28 17:12 GMT-03:00 Pedro Emmanuel Alvarenga Americano do Brasil >>>> <emmanuel.bra...@gmail.com>: >>>> >>>>> Ei Cesar, >>>>> >>>>> Eu tenho pouco familiaridade com SQL, e o amigo da TI que tem e faz >>>>> manutenção do servidor diz que o erro é na minha estação com R. Eu acho >>>>> que >>>>> não, mas não tenho certeza porque eu não sei ao certo o que quer dizer >>>>> esse >>>>> erro. O que seria essa "Calloc"? É uma coisa natural do R? >>>>> >>>>> Abraço, >>>>> >>>>> Pedro Brasil >>>>> >>>>> Em 28 de julho de 2017 16:59, Cesar Rabak <cesar.ra...@gmail.com> >>>>> escreveu: >>>>> >>>>>> Pedro, >>>>>> >>>>>> Mesmo sem poder fazer uma tentativa, me parece que o erro é estranho >>>>>> demais para não ser notado: a chamada à primitiva da ling. C "calloc" >>>>>> está >>>>>> pedindo 200 Gbytes, que falha e me parece algo grande demais para um >>>>>> "default" da chamada a sqlQuery(). >>>>>> >>>>>> HTH >>>>>> >>>>>> >>>>>> 2017-07-28 9:42 GMT-03:00 Pedro Emmanuel Alvarenga Americano do >>>>>> Brasil via R-br <r-br@listas.c3sl.ufpr.br>: >>>>>> >>>>>>> Amigos de R, >>>>>>> >>>>>>> Estou envolvido numa tarefa que importo um banco SQL de um servidor, >>>>>>> faço uma modelagem, salvo o modelo no SQL através de uma seriliazação, e >>>>>>> depois carrego esse modelo do SQL para fazer previsões em novos dados. >>>>>>> >>>>>>> Estou seguindo um exemplo disponível nessa página: >>>>>>> https://docs.microsoft.com/pt-br/sql/advanced-analytics/tuto >>>>>>> rials/walkthrough-deploy-and-use-the-model >>>>>>> >>>>>>> Sei que esse exemplo não é reproduzível porque depende da conexão >>>>>>> com o servidor e credenciais que não posso divulgar. Mas se alguem já >>>>>>> passou por esse problema poderia pelo menos indicar aonde está o >>>>>>> problema >>>>>>> que não estou sabendo identificar? Acho que muito provavelmente seria >>>>>>> uma >>>>>>> configuração do SQL no servidor... >>>>>>> >>>>>>> library(RODBC) >>>>>>> >>>>>>> # define database connection string >>>>>>> dbconn <- 'Driver={SQL Server};Server=BLABLABLA;Datab >>>>>>> ase=BLABLABLA;Trusted_Connection=yes;' >>>>>>> >>>>>>> # define a connection >>>>>>> conn <- odbcDriverConnect(connection = dbconn) >>>>>>> >>>>>>> # Estou fazendo o exemplo com o objeto LETTERS só pra ter certeza >>>>>>> que é um objeto pequeno e que não deveria ser um problema de memória do >>>>>>> R. >>>>>>> > LETTERS >>>>>>> [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" >>>>>>> "Q" "R" "S" "T" "U" "V" "W" "X" >>>>>>> [25] "Y" "Z" >>>>>>> > teste_pequeno <- serialize(LETTERS, connection = NULL) >>>>>>> > teste_pequeno <- paste(teste_pequeno, collapse = "") >>>>>>> >>>>>>> # o EXEC PersistModel faz >>>>>>> # insert into [tempo_permanencia_models] (model, [description]) >>>>>>> values (convert(varbinary(max),@m,2), @description) >>>>>>> # insere o modelo e uma descricao >>>>>>> >>>>>>> > p <- paste("EXEC PersistModel @m='", teste_pequeno,"', >>>>>>> @description = 'Teste de serialização objeto pequeno'", sep = "") >>>>>>> > sqlQuery(conn, p) >>>>>>> character(0) >>>>>>> > rm(teste_pequeno) >>>>>>> > p <- "SELECT model FROM [tempo_permanencia_models] WHERE id_model >>>>>>> = 1022" >>>>>>> > mod.teste.peq <- sqlQuery(conn, p) >>>>>>> Error in odbcQuery(channel, query, rows_at_time) : >>>>>>> 'Calloc' could not allocate memory (214748364800 of 1 bytes) >>>>>>> > p <- paste0("SELECT id_model, description FROM >>>>>>> [tempo_permanencia_models] WHERE id_model = 1022") >>>>>>> > sqlQuery(conn, p) # >>>>>>> id_model description >>>>>>> 1 1022 Teste de serialização objeto pequeno >>>>>>> >>>>>>> Reparem que o objeto está salvo no servidor. Foi salvo a partir do >>>>>>> R, mas não retorna para o R por conta do erro de memoria. Eu não estou >>>>>>> sabendo nem por onde começar. >>>>>>> >>>>>>> Que a força esteja sempre com vocês e abraço forte. >>>>>>> >>>>>>> Pedro Brasil >>>>>>> >>>>>>> _______________________________________________ >>>>>>> R-br mailing list >>>>>>> R-br@listas.c3sl.ufpr.br >>>>>>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >>>>>>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e >>>>>>> forneça código mínimo reproduzível. >>>>>>> >>>>>> >>>>>> >>>>> >>>> >>> >> >> >> _______________________________________________ >> R-br mailing >> listr...@listas.c3sl.ufpr.brhttps://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forne�a c�digo >> m�nimo reproduz�vel. >> >> >> >> _______________________________________________ >> R-br mailing list >> R-br@listas.c3sl.ufpr.br >> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br >> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça >> código mínimo reproduzível. >> > > _______________________________________________ > R-br mailing list > R-br@listas.c3sl.ufpr.br > https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br > Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça > código mínimo reproduzível. >
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forne�a c�digo m�nimo reproduz�vel.