• Publicidad

Conexión a Time Series Database (TSDB)

Todo lo relacionado con el desarrollo Web con Perl: desde CGI hasta Mojolicious

Conexión a Time Series Database (TSDB)

Notapor seafree » 2018-04-05 14:37 @650

Hola, ¿alguien conocerá cómo lograr la conexión a los datos TSDB desde Perl?

La manera en que logro la conexión a la base de datos de PostgreSQL es:

$dbh = DBI->connect("DBI:Pg:dbname=nombre_db;host=localhost", "usuario", "", {'RaiseError' => 1});

Supongo que la conexión hacia la base de datos TSDB es similar a excepción del identificador de la base de datos. Para PostgreSQL, "Pg". Para la base de datos TSDB, ¿cuál sería?

Gracias.
seafree
Perlero nuevo
Perlero nuevo
 
Mensajes: 296
Registrado: 2012-08-10 11:26 @518

Publicidad

Re: Conexión a Time Series Database (TSDB)

Notapor explorer » 2018-04-05 16:07 @713

El único sistema TSDB que conozco, con soporte en Perl, es RRDtool.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Conexión a Time Series Database (TSDB)

Notapor seafree » 2018-04-06 11:12 @508

Ok, gracias, solo a través de RRDtool, bien.
seafree
Perlero nuevo
Perlero nuevo
 
Mensajes: 296
Registrado: 2012-08-10 11:26 @518

Re: Conexión a Time Series Database (TSDB)

Notapor explorer » 2018-04-10 04:06 @213

¿No nos puedes dar más detalles sobre la base de datos? Tipo de conexión, cómo se llama el motor, etc.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Conexión a Time Series Database (TSDB)

Notapor seafree » 2018-04-10 14:50 @659

Sí, mira, solo sé que son datos seriales de los cuales se desea la automatización del reporte. La conexión se logra a través de un PIJDBC, y la Prueba de Conexión se logra a través de $java GetSnap. El sistema operativo que estoy usando es Centos 7.

Y al terminar la prueba uno de los mensajes que envía es:

PI SQL Data Access Server #.#.####.# using PIOLEDB
seafree
Perlero nuevo
Perlero nuevo
 
Mensajes: 296
Registrado: 2012-08-10 11:26 @518

Re: Conexión a Time Series Database (TSDB)

Notapor explorer » 2018-04-10 15:47 @699

Sí, sí que es posible conectarse a esas mierdas de Microsoft.

Aquí tienes un ejemplo, sacado de aquí.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/env perl
  2.  
  3. use Win32;
  4. use Win32::OLE qw( in with);
  5.  
  6. *error = *Win32::OLE::LastError;
  7.  
  8. # Create a connection object
  9. our $conn = Win32::OLE->new('ADODB.Connection');
  10. die error() if error();
  11.  
  12. # Create a command object to use for queries.
  13. our $cmd = Win32::OLE->new('ADODB.Command');
  14. die error() if error();
  15.  
  16. # set the provider for the connection
  17. $conn->{Provider} = "PIOLEDB.1";
  18.  
  19. # open the connection. This is where all but the provider should go.
  20. # sometimes, the provider can go in this string instead of above.
  21. # this is the area where the connection string goes.
  22.  
  23. $conn->Open("Data Source=hanyonge6230;Initial Catalog=piarchive;Integrated Security=SSPI");
  24. die error() if error();
  25.  
  26.  
  27. # we have to associate the command object with a connection
  28. # in order to be able to use it.
  29. $cmd->{ActiveConnection} = $conn;
  30.  
  31. # set the sql query text.
  32. #$cmd->{CommandText} = "select tag, CAST(time AS string) time, value, status from piarchive..pisnapshot where tag='cdt158'";
  33. $cmd->{CommandText} = "select tag, CAST(time AS string) time, value, DigString(status) status from piarchive..picomp2 where tag='cdt158' and time between '*-1d' and '*'";
  34. die error() if error();
  35.  
  36. # execute the command object and get the result set to work with.
  37. our $rs = $cmd->execute();
  38. die error() if error();
  39.  
  40. # prime to the first row in the result set.
  41. $rs->MoveFirst();
  42.  
  43. while (! $rs->eof())
  44. {
  45.         # get the value stored in the 'name' column
  46.                 print $rs->fields('tag')->{value} . ":";
  47.                 print $rs->fields('time')->{value} . ":";
  48.                 print $rs->fields('value')->{value} . ":";
  49.         print $rs->fields('status')->{value} . "\n";
  50.         $rs->MoveNext();
  51. }
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Conexión a Time Series Database (TSDB)

Notapor seafree » 2018-04-11 10:44 @489

Gracias, explorer. Al compilar me envía el error:

Can't locate Win32.pm in @INC (you may need to install the Win32 module)

Lo busqué desde: http://search.cpan.org/search?query=Win32.pm&mode=all

Solo muestra: Win32::PEPM::Build. ¿Será suficiente la instalación de éste?

Gracias.
seafree
Perlero nuevo
Perlero nuevo
 
Mensajes: 296
Registrado: 2012-08-10 11:26 @518

Re: Conexión a Time Series Database (TSDB)

Notapor explorer » 2018-04-11 11:50 @535

No, debes instalar precisamente el módulo que te dice, Win32.

Debes usar tu gestor de paquetes Perl para que te lo instale.

En el subforo de formación tienes guías para la instalación de módulos, uno de ellos para ActiveState o ActivePerl.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Conexión a Time Series Database (TSDB)

Notapor seafree » 2018-04-17 14:07 @630

Descargo el módulo que sugieres, Win32, desde https://metacpan.org/pod/Win32.
Hago su instalación manual:
#perl Makefile.PL
Envia: OS unsupported

Así mismo también instalé el ActivePerl-5.24 y lo accedo desde web file:///opt/ActivePerl-5.24/html/index.html

Te agradeceré tu ayuda para su instalación porque ya no sé qué hacer, gracias mil.
seafree
Perlero nuevo
Perlero nuevo
 
Mensajes: 296
Registrado: 2012-08-10 11:26 @518

Re: Conexión a Time Series Database (TSDB)

Notapor explorer » 2018-04-17 15:27 @685

A ver... no nos volvamos locos.

¿Por qué has instalado ActivePerl? ¿Qué Perl tenías instalado antes? ¿Sabes que en Windows es peligroso tener dos Perl instalados a la vez?

¿Qué significa que accedes "desde web file"? ¿Estás queriendo hacer un programa en un ordenador para usarse en otro ordenador? ¿Son el mismo sistema operativo? Por la ruta que pones, yo diría que eso no es Windows. /opt... indica un sistema Linux/Unix/Mac OSX.

Menudo follón...

En cuanto a la instalación del módulo, se nota que no has leído las guías que te he enlazado. Si estás usando ActivePerl debes usar el PPM para instalar los módulos. Pulsa, en mi anterior mensaje, sobre el enlace ActiveState, y sigues el procedimiento para instalar los módulos que necesites.

De hecho, apostaría a que ActivePerl ya instala Win32 de base.

Postdata: pues no. Pero sí se puede instalar con PPM.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Siguiente

Volver a Web

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados