sábado, 20 de febrero de 2016

calculando edades con postgresql


A veces nos gastamos todo el tiempo ideando o creando funciones para trabajar con fechas y hacer cálculos de edad de los campos que ingresamos o consultamos en la bases de datos, para esto tenemos en postgresql algunas funciones para el manejo de fechas que nos ahorran ese trabajo de traernos el campo fecha_nacimiento por ejemplo y tratarlo con javascript, php u otro lenguaje de programación y realizar las conversiones y cálculos.


Para hacer el calculo de la fecha de un campo date o alguno de estos tipos de campo, timestamp como ejemplo, podemos usar la función de postgresql llamada: age Function  esta función nos permite obtener el tiempo de un valor dado tipo date o afín,revisen la documentación de la función en el enlace dado o vaya a la documentación de postgresql y encontrará información de la misma.

Pueden revisar la documentación y ejemplos de esta función haciendo clic en el enlace.


 como ejemplo les dejo esta consulta base para realizar sin complicaciones de tablas ni mas, solo un ejmplo sencillo ilustra como trabaja la función:



SELECT age(timestamp '2016-01-01');  (current date is '2016-04-25')

resultado 3 mons 24 days


otro ejemplo tenemos:


SELECT age(timestamp '2016-04-25', timestamp '2016-01-01'); #con dos fechas

resultado 3 mons 24 days



aquí estamos transformando el string '2014-08-25' a formato de fecha de postgresql, en este caso timestamp dando el resultado desde la fecha actual hasta la fecha que colocamos, pero podemos tener nuestro campo de la tabla que tengamos y hacer el calculo de la edad.

Ahora bien si solo queremos obtener el año a través de una consulta podemos utilizar otra función de postgresql.

ejemplo tenemos

select date_part('year',age(timestamp '2015-01-01'));
 
resultado 1
 
 

Hay otras funciones que nos permite postgresql realizar tareas que evitamos tener hechas a nivel de programación, podemos revisar la documentación de postgresql para tener conocimientos de estas y ayudarnos a mejorar nuestras consultas al motor de bases de datos. Entre estas tenemos: extract,

Apache Cassandra, instalacion


Apache Cassandra es una base de datos NoSQL distribuida y basada en un modelo de almacenamiento de «clave-valor», de código abierto escrita en java y desarrollada por el proyecto apache, permite grandes volúmenes de datos en forma distribuida,  no posee ningún costo ya que va bajo los estándares de software libre y permite restaurar algún nodo si este fallara de forma rápida 



Les dejo estos pasos para instalar el sistema de base de datos NOSQL Cassandra en ambiente gnu linux, para esto como prerrequisito necesitamos tener instalado los jre de java para iniciar el cual les dejo en otra entrada de como hacerlo tanto instalarlo como configurarlo y ponerlo en marcha Instalando java , manos a la obra.



Instalando y Validando Cassandra



1. Podemos descargar Apache Cassandra de la página oficial http://cassandra.apache.org/download/.



2. Descargamos el archivo “apache-cassandra-2.1.5-bin.tar.gz”.



3. Creamos un directorio “/home/<nombre_usuario>/app/” para las aplicaciones a utilizar, puede usar cualquiera a tu gusto. Copiamos el archivo en el directorio creado, debe estar logeado como usuario root.



$> mkdir /home/<nombre_usuario>/app
$> cd /home/<nombre_usuario>/app/
$> wget
http://www.webhostingjams.com/mirror/apache/cassandra/2.1.5/apache-
cassandra-2.1.5-bin.tar.gz



4. Descomprimir el archivo y hacer ls. Deberías tener el directorio
“apache-cassandra-2.1.5” y el archivo “apache-cassandra-
2.1.5-bin.tar.gz “. Borramos el archivo “apache-cassandra-2.1.5-
bin.tar.gz”.



$> tar -xvzf apache-cassandra-2.1.5-bin.tar.gz
$> ls
apache-cassandra-2.1.5 apache-cassandra-2.1.5-bin.tar.gz
$> rm *.tar.gz
5. Luego hacemos:
$> cd apache-cassandra-2.1.5/bin
$>./cassandra
6. Luego ejecutamos el cliente. Tenemos dos opciones:
$> sudo ./cassandra-cli
ó
$> sudo ./cqlsh



 Este se conectará automáticamente a la instancia de Cassandra en localhost. Deberíamos ver algo como lo siguiente:
Connected to Test Cluster at localhost:9160.
[cqlsh 4.1.1 | Cassandra 2.0.6 | CQL spec 3.1.1 | Thrift protocol 19.39.0]
Use HELP for help.
cqlsh>



7. Utilice la herramienta cqlsh para examinar el sistema de tablas de la base de datos. Familiarícese con la herramienta. Puede utilizar el comando HELP o el auto completar para guiarse.
Puede escribir en minúsculas, así como también ejecutar comandos internos y CQL.



8. Si Cassandra no está en ejecución entonces usted obtendrá la
siguiente salida:
Connection error: Could not connect to localhost:9160



9. Veamos la conexión:
cqlsh> show host;



10. Usemos auto completar:
cqlsh> select * from system.<presione tabulador>
Obtendremos:
"IndexInfo"
local
schema_columns "NodeIdInfo"
paxos
schema_keyspaces batchlog
peer_events
schema_triggers compaction_history
peers
sstable_activity
compactions_in_progress range_xfers
hints
schema_columnfamilies
Escribimos cualquiera de las opciones (podemos presionar tabulador a medida que vamos escribiendo y así auto completar). Luego punto y coma <;> y presionamos <enter>.



Puede ver la documentación de cassandra en la pagina oficial de apache Apache cassandra