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 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.