¿Sistema sobrecargado?

21 agosto \21\UTC 2014

-“¿Crees que el sistema está sobrecargado?”

-“Un poco sí, ¿no?”

CPU 100%

CPU 100%

Saludos.

Carlos.


Se ha muerto Johnny Winter…

17 julio \17\UTC 2014

Se ha muerto Johnny Winter, guitarrista salvaje y leyenda del blues y del rock.

Bye, bye illustrated man

Saludos.

Carlos


Teradata Express 15 for VMware disponible.

10 julio \10\UTC 2014

Teradata Express 15 for VMware (15.00.00.08) está disponible para descarga.

Se presenta en tres versiones a elegir:

  • TERADATA 15 sobre SLES 11 sin ViewPoint.
  • TERADATA 15 sobre SLES 10 con ViewPoint.
  • TERADATA 15 sobre SLES 10 sin ViewPoint.

No doy abasto…

Saludos.

Carlos

 


Una migración más…

6 junio \06\UTC 2014

Acabo de terminar una migración (otra más) de un Datawarehouse Oracle a Teradata (a propósito, si estás leyendo esto desde España seguramente tus datos están en ella).

Como van ya unas cuantas, espero que el señor Ellison no me declare su enemigo y mande a su amigo Iron Man a buscarme…

 

El amigo de Larry

El amigo de Larry

Irónicamente, el sistema operativo para los procesos de carga era Solaris:

/home/teradata > bteq

 Teradata BTEQ 14.10.00.09 for SOLARIS/SPARC. PID: 23200
 Copyright 1984-2014, Teradata Corporation. ALL RIGHTS RESERVED.
 Enter your logon or BTEQ command:

Saludos.

Carlos.


Calcular diferencias entre TIMESTAMPS

30 mayo \30\UTC 2014

Todos sabemos calcular la diferencia entre dos fechas:

 BTEQ -- Enter your SQL request or BTEQ command:
SELECT (F_FIN - F_INICIO) "DIFF"
  FROM (SELECT DATE F_FIN, DATE - 1 F_INICIO) PRE;


 *** Query completed. One row found. One column returned.
 *** Total elapsed time was 1 second.

       DIFF
-----------
          1

Pero la cosa se complica si hablamos de TIMESTAMPS:

 BTEQ -- Enter your SQL request or BTEQ command:
SELECT (F_FIN-F_INICIO) "DIFF"
  FROM (SELECT CURRENT_TIMESTAMP(0) F_FIN,
               CURRENT_TIMESTAMP(0) - INTERVAL '1' HOUR F_INICIO) PRE
;

 *** Failure 5407 Invalid operation for DateTime or Interval.
                Statement# 1, Info =0
 *** Total elapsed time was 1 second.

Para solucionar el problema se ven por ahí todo tipo de “técnicas” mediante el uso de EXTRACT() o, peor aun, mediante sucesivos CAST() a VARCHAR y demás triquiñuelas.
Pero la solución es mucho más fácil: todo se resume a que la diferencia entre TIMESTAMPS es siempre un ‘INTERVAL’ “genérico” que simplemente hay que definir mediante cualquiera de sus diferentes tipos:

 BTEQ -- Enter your SQL request or BTEQ command:
SELECT (F_FIN-F_INICIO) YEAR "YEAR",
       (F_FIN-F_INICIO) YEAR TO MONTH "YEARtoMONTH",
       (F_FIN-F_INICIO) MONTH "MONTH",
       (F_FIN-F_INICIO) DAY "DAY",
       (F_FIN-F_INICIO) DAY TO HOUR "DAYtoHOUR",
       (F_FIN-F_INICIO) DAY TO MINUTE "DAYtoMIN",
       (F_FIN-F_INICIO) DAY TO SECOND(0) "DAYtoSEC",
       (F_FIN-F_INICIO) HOUR "HOUR",
       (F_FIN-F_INICIO) HOUR(2) TO MINUTE "HOURtoMIN",
       (F_FIN-F_INICIO) HOUR(2) TO SECOND(0) "HOURtoSEC",
       (F_FIN-F_INICIO) MINUTE(2) "MIN",
       (F_FIN-F_INICIO) MINUTE(2) TO SECOND(0) "MINtoSEC",
       (F_FIN-F_INICIO) SECOND(4,0) "SEC"
  FROM (SELECT CURRENT_TIMESTAMP(0) F_FIN, 
               CURRENT_TIMESTAMP(0) - INTERVAL '1' HOUR F_INICIO) PRE
;


 *** Query completed. One row found. 13 columns returned.
 *** Total elapsed time was 1 second.

YEAR YEARtoMONTH MONTH DAY DAYtoHOUR  DAYtoMIN     DAYtoSEC HOUR HOURtoMIN HOURtoSEC MIN MINtoSEC   SEC
---- ----------- ----- --- --------- --------- ------------ ---- --------- --------- --- -------- -----
   0        0-00     0   0      0 01   0 01:00   0 01:00:00    1      1:00   1:00:00  60    60:00  3600

Simplemente hay que poner atención en las precisiones y los fraccionales de los tipos para evitar desbordamientos (Failure 7453 Interval field overflow.):

 BTEQ -- Enter your SQL request or BTEQ command:
SELECT (F_FIN-F_INICIO) SECOND "SECOND"
  FROM (SELECT CURRENT_TIMESTAMP(0) F_FIN, 
               CURRENT_TIMESTAMP(0) - INTERVAL '1' HOUR F_INICIO) PRE
;

 *** Failure 7453 Interval field overflow.
                Statement# 1, Info =0
 *** Total elapsed time was 1 second.

 BTEQ -- Enter your SQL request or BTEQ command:
SELECT (F_FIN-F_INICIO) SECOND(4,0) "SECOND"
  FROM (SELECT CURRENT_TIMESTAMP(0) F_FIN,
               CURRENT_TIMESTAMP(0) - INTERVAL '1' HOUR F_INICIO) PRE
;


 *** Query completed. One row found. One column returned.
 *** Total elapsed time was 1 second.

SECOND
------
  3600

…and that’s all.

Saludos.

Carlos.


¡¡La Décima!!

25 mayo \25\UTC 2014

De la agonía al éxtasis en minutos. La Champions. La Décima. Sublime. Histórico. Felicidad.

20140525-174603.jpg

Saludos.

Carlos.


Now listening to…

14 mayo \14\UTC 2014

Sue Foley: New Used Car.

Blues eléctrico, guitarrero y sexy.

Saludos.

Carlos.


Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 44 seguidores