pgAdmin 4 – El elefante se acerca a la línea de meta

The main user interface, showing the properties of a function.

Esta entrada es una traducción libre autorizada de la entrada pgAdmin 4 – The elephant nears the finish line publicada originalmente en el blog Dave’s Postgres Blog  – Postgres related musings and ramblings de Dave Page

Como saben, muchos de nosotros en el equipo de pgAdmin hemos estado trabajando duro en pgAdmin 4 desde hace algún tiempo. pgAdmin 4 es la reescritura completa de pgAdmin (la cuarta, como pueden suponer), la versión anterior ha llegado al final de su vida de mantenimiento después de 14 años de desarrollo.

El trabajo en el proyecto inició lentamente, al menos hace dos años, sin embargo el equipo de EnterpriseDB ha incrementado el ritmo de desarrollo en los últimos meses. Justo ahora, nos estamos acercando a la versión alfa que esperamos este lista al rededor de unas semanas.

Arquitectura

Esta nueva aplicación está diseñada para funcionar tanto en el escritorio como en un servidor web. Esta escrito en Python usando el Framework Flask para el backend, y Javascript / jQuery / Backbone para el FrontEnd, que puede fácilmente ser implementada como una aplicación WSGI para múltiples usuarios en prácticamente cualquier entorno de red. Una pequeña aplicación  permite que se ejecuea como una aplicación de escritorio – este es un ejecutable de Qt que incorpora un intérprete de Python y un navegador web, junto con la aplicación principal en un solo paquete que puede ser instalado en un ordenador junto a versiones anteriores de pgAdmin.

Sigue leyendo

Crear trigger y función PL/PGSQL que genere código compuesto al realizar Insert en PostgreSQL

PostgreSQL postgres trigger disparador logo elefante banner

En esta entrada haremos un trigger que en cada operación de inserción en una tabla especifica de nuestra base de datos PostgreSQL, llame a una función hecha en PL/PGSQL, la cual generara é insertara en un campo de nuestra tabla seleccionada un código compuesto por el año actual, el valor de un campo (siglas de un estado) en una tabla relacionada y un incremental que debe ser único para los parámetros previos. Es decir el código debe ser como 2015AM0006 2015SU0001 2015AM0007 y se debe comportar de tal manera que cada año se inicialice el valor incremental y dicho valor se incrementa en base al año y siglas de estado. Sigue leyendo

Importar archivo CSV en MariaDB / MySQL usando LOAD DATA INFILE

load data local infile mysql mariadb

En esta entrada veremos como importar datos a una base de datos MariaDB ó MySQL desde un  archivo .CSV usando LOAD DATA INFILE el cual es el mecanismo que provee para esta tarea el manejador de bases de datos.

Use MariaDB v10.0.20 sobre Debian Jesse, sin embargo funciona exactamente igual en MySQL. En líneas generales la necesidad era cargar noticias que vienen de otro manejador de bases de datos (PostgreSQL) hacia MariaDB donde esta un modelo de datos usado por wordpress, lo que necesitamos es llenar la tabla de notas de wordpress (wp_posts) con el contenido del archivo CSV. Sigue leyendo

Breve reseña de Bases de Datos en Debian Jessie

debian database logo jessie

PostgreSQL

Como agradable sorpresa encontramos como única opción disponible en los repositorios la versión 9.4 la cual es la ultima y mas reciente versión disponible de PostgreSQL.

Comunicado de Prensa para PostgreSQL 9.4: http://www.postgresql.org/about/press/presskit94/es/

pgAdmin el cliente gráfico mas usado de PostgreSQL también lo encontramos en la ultima versión disponible para el proyecto (1.20).

phpPgAdmin también lo tenemos disponible con la ultima versión estable del proyecto

Sigue leyendo

Describe Table en SQLite + Muestra en Python

sqlite-describe-table-python
Sorprendentemente no hay describe table o show table en sqlite.

La solución es la siguiente consulta:

SELECT * FROM sqlite_master;

SELECT * FROM sqlite_master where type = ‘table’;

SELECT type,name, tbl_name FROM sqlite_master where type = ‘table’;

PRAGMA table_info(familia);

This pragma returns one row for each column in the named table. Columns in the result set include the column name, data type, whether or not the column can be NULL, and the default value for the column.

PRAGMA foreign_key_list(familia);

This pragma returns one row for each foreign key that references a column in the argument table.

http://www.sqlite.org/pragma.html

SELECT seq FROM sqlite_sequence where name = ‘familia’

SELECT seq + 1 FROM sqlite_sequence where name = ‘familia’

Fragmento de muestra en Python:

import sqlite3

db = sqlite3.connect("basededatos.db")
dbconn = db.cursor()
print "Next Value: " + str(dbconn.execute("SELECT seq FROM sqlite_sequence where name = 'familia'").fetchone()[0]+1)
print "Proximo Valor: " + str(dbconn.execute("SELECT seq + 1 FROM sqlite_sequence where name = 'familia'").fetchone()[0])</pre>

lhernandez@DskLhernandez:~$ python sqlite.py
Next Value: 64
Proximo Valor: 64

http://www.sqlite.org/sqlite.html

http://sqlite.org/lang_corefunc.html

Pentaho Data Integration (Kettle) en Debian Wheezy

diagrama-modelo-conceptual-kettle

La suite de inteligencia de negocios Pentaho, entre las distintas soluciones que ofrece cuenta con la herramienta de Integración de data (Pentaho Data Integration) mejor conocida como Kettle cuyo nombre es un acrónimo recursivo de “Kettle Extraction Transformation Transportation & Loading Environment”. Dicha herramienta permite realizar operaciones de ETL (Extraction, Transformation and Load), sobre diversas fuentes de datos y con múltiples opciones para ello.

diagrama-modelo-conceptual-kettle

Adaptación de Kettle Conceptual Model.pdf

La pagina web oficcial de Kettle es http://kettle.pentaho.com/ en la cual se llega al repositorio en SourceForge para descargar la ultima versión estable. A la fecha de esta entrada la ultima versión disponible es la 4.4

El URL directo para descargar es http://sourceforge.net/projects/pentaho/files/latest/download y si tiene alguna confusión haga clic en: pdi-ce-4.4.0-stable.tar.gz

Descomprimir el archivo que descargamos con clic derecho o por terminal así:

Sigue leyendo