[R-br] Erro de memória importando objeto pequeno de SQL
Pedro Emmanuel Alvarenga Americano do Brasil
emmanuel.brasil em gmail.com
Sexta Julho 28 17:12:09 -03 2017
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.rabak em 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 em 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), em 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 em 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.
>>
>
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20170728/931a8fab/attachment.html>
Mais detalhes sobre a lista de discussão R-br