https://github.com/rstats-db/odbc
Em 25 de ago de 2017 10:38 AM, "Leonard Assis" <assis.leon...@gmail.com> escreveu: > O RODBC está sendo substituído pelo pacote odbc > > On sex, 25 de ago de 2017 10:34 Pedro Emmanuel Alvarenga Americano do > Brasil <emmanuel.bra...@gmail.com> wrote: > >> 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/ >>>>>>>>> tutorials/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; >>>>>>>>> Database=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.