[R-es] Rendimiento del R

Carlos J. Gil Bellosta cgb en datanalytics.com
Mar Nov 2 20:20:02 CET 2010


Hola, ¿qué tal?

Hace mucho que no toco PL/R, pero no creo que ganes demasiado con él
en término de capacidad de proceso. Usando PL/R tu motor (el programa
que va a hacer los cálculos) será R, no Postgres.

En la documentación de PL/R aparece este ejemplo:

CREATE TABLE emp (name text, age int, salary numeric(10,2));
INSERT INTO emp VALUES ('Joe', 41, 250000.00);
INSERT INTO emp VALUES ('Jim', 25, 120000.00);
INSERT INTO emp VALUES ('Jon', 35, 50000.00);


CREATE OR REPLACE FUNCTION overpaid (emp) RETURNS bool AS '
    if (200000 < arg1$salary) {
        return(TRUE)
    }
    if (arg1$age < 30 && 100000 < arg1$salary) {
        return(TRUE)
    }
    return(FALSE)
' LANGUAGE 'plr';


SELECT name, overpaid(emp) FROM emp;
 name | overpaid
------+----------
 Joe  | t
 Jim  | t
 Jon  | f
(3 rows)


Si te das cuenta, en la definición de la función (de R) la tabla de
origen se convierte en un DF de R. Me extrañaría mucho que la
implementación interna fuese muy distinta de:

1) Transforma la tabla en un df de R.
2) Opera con R (en memoria y con las consabidas limitaciones).
3) Vuelca el resultado a Postgres como una tabla.

Igual no es así. Pero podías hacer la prueba con una tabla grande
midiendo el uso de memoria del proceso R (para eso usas Linux, ¿no?)
para ver si es cierto.

Lo que sí que puedes hacer es usar Postgres para agregar y preparar
datos que luego exportes a R.

Un saludo,

Carlos J. Gil Bellosta
http://www.datanalytics.com



El día 2 de noviembre de 2010 20:03, Maikel (UCI-2009)
<mfrosabal en uci.cu> escribió:
> El SO que utilizo es Linux, Ubuntu 10.04, Motherboard P5LD2, RAM 1GB, micro P-30. Realmente quiero saber si el PL/R, lenguaje procedural que se le puede añadir al gestor de base de datos PostgreSQL es mejor en cuanto rendimiento y soporte de datos que el R. Según lo que he visto PL/R utiliza el interprete de R, por tanto si R no soporta una gran cantidad de datos entonces PL/R tampoco lo soporta, que creen ustedes. Para lo que quiero hacer, se que usar PL/R me mejoraría en tiempo de respuesta a la hora de dar los resultados porque lo hago directamente desde el gestor, pero sigue el problema de la cantidad de los datos. Como pudiera resolver este problema, imaginense una base de datos con más de 1 millon de datos. Estaré al tanto de cualquier sugerencia, gracias.
> ----- Mensaje original -----
> De: "Carlos Ortega" <coforfe en gmail.com>
> Para: "Ing. Maikel Rosabal" <mfrosabal en uci.cu>
> CC: r-help-es en r-project.org
> Enviados: Martes, 2 de Noviembre 2010 6:08:20 (GMT-0500) Auto-Detected
> Asunto: Re: [R-es] Rendimiento del R
>
> Hola Maikel,
>
>
> Hay múltiples hilos en el R-Help (Inglés) sobre este tema.
> Incluso en las "FAQ" que acompañan a cada liberación.
>
>
> Para empezar sería conveniente saber sobre qué plataforma (SO, tipo de hardware que tienes, etc) quieres hacer tu análisis, pruebas, etc.
>
>
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
>
> 2010/11/1 Maikel (UCI-2009) < mfrosabal en uci.cu >
>
>
> Ante todo un saludo a toda la comunidad, en estos momentos me encuentro enfrascado en la investigación de algunas características del R. Le escribo para que me den la opinión que tienen acerca de la cantidad de volumen de datos que soporta el R, si para cierta cantidad de datos deja de funcionar o eso es insignificante para el. Espero que me ayuden con esto, ah en caso de que R no soporte determinada cantidad de datos, podría Pl/R soportarlo o este presenta este mismo problema?
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
>        [[alternative HTML version deleted]]
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>



Más información sobre la lista de distribución R-help-es