Social Icons

twitter facebook google plus linkedin

martes, 24 de septiembre de 2013

Error: Data truncation: Data too long for column en Spoon

No es novedad que me encuentro traspasando datos con Pentaho Data Integrator. Realmente es una excelente herramienta para el precio que tiene.

Me encuentro copiando datos de un MySQL a otro MySQL a través del asistente y todo iba bien, hasta que al momento de iniciar la transformación me da el siguiente mensaje:
Data truncation: Data too long for column

Este error se da cuando crea la tabla automaticamente, no lo crea con el tamaño de datos correcto. Revisé la tabla de origen y la columna era un varchar(255) y la de destino era una varchar(85).
La solución fue modificiar la tabla de destino y asignarle un mayor tamaño al tipo de datos varchar de la columna de destino.

 

lunes, 23 de septiembre de 2013

Error "Unable to get value 'Date' from database resultset" en Spoon

Tal como les comenté en el post anterior, estoy trabajando moviendo unos datos usando la herramienta Pentahoo Data Integrator.

Hace ya varios días que venía peleando con una migración, específicamente con una columna que tiene el tipo de datos datetime.

Específicamente el mensaje que error que arroja es este:
Unable to get value 'Date' from database resultset

Luego de eso viene un montón de mensajes referentes al driver de conexión, astros, citas del Corán, de la Biblia y cualquier otro mensaje ilegible.

Revisando en los foros de la herramienta, dicen que es un problema de MySQL ser permisivo con los valores que se le ingresan. Para lidiar con esto, hay que ir a las propiedades de la conexión a la base de datos, ir a las opciones y agregar el parámetro zeroDateTimeBehavior y asiganarle el valor convertToNull.

[caption id="attachment_1689" align="aligncenter" width="300"]Opciones de la conexion Opciones de la conexion[/caption]

miércoles, 18 de septiembre de 2013

Copiar tablas completas con Pentaho Data Integrator

¡Que taaal! Tiki tiki tí Publicando este artículo bien diciochero jeje.

Hoy les contaré sobre como realizar copias de tablas usando Pentaho Data Integrator, que es una herramienta gratuita, multiplataforma y de código abierto para construir paquetes ETL.

Es bastante potente y no tiene mucho que envidiar a otras que son de paga, por ejemplo, SQL Server Integration Services e Informatica.

Tiene bastantes asistentes que ayudan con las tareas y en este caso usaremos un asistente.

  1. Crear la conexión a la base de datos de origen y  de destino

  2. Ir a Tools -> Wizard -> Copy Table

  3. Seleccionar la conexión base de datos de origen y de destino

    [caption id="attachment_1679" align="aligncenter" width="300"]Conexion de Origen y de Destino Conexion de Origen y de Destino[/caption]

  4. Luego se hace la selección de la tabla que se quiere copiar

    [caption id="attachment_1680" align="aligncenter" width="300"]Seleccion de Tabla Seleccion de Tabla[/caption]

  5. Aunque ya se ha definido la conexión de destinoi (DB, Usuario, Password, Host) queda configurar el esquema, por lo menos para este caso que el RDBMS es MySQL, es por esto que hay que configurar el step

    [caption id="attachment_1682" align="aligncenter" width="300"]Editar el step Editar el step[/caption]

    Además, hay que ejecutar la consulta de creación de tabla. Para esto, hacer click en el botón SQL y ejecutar la sentencia que aparece ahí. Si esto no se hace, arrojará un error de que no se encuentra la tabla y la tarea no terminará de forma satisfactoria.

    [caption id="attachment_1684" align="aligncenter" width="300"]SQL Query SQL Query[/caption]

  6. Una vez que está todo configurado, se procede a ejecutar el flujo

    [caption id="attachment_1683" align="aligncenter" width="300"]Ejecutar Proceso Ejecutar Proceso[/caption]

  7. Se abrirá la ventana de configuración de la ejecución. En este caso, nada más se hace click en launch

    [caption id="attachment_1685" align="aligncenter" width="300"]Ejecutar Proceso Ejecutar Proceso[/caption]



Si todo se ha configurado bien, el proceso durará según el tamaño de la tabla y si es una base de datos externa, de la conexión con el servidor.

Espero que les sirva!

jueves, 5 de septiembre de 2013

Acceso remoto a MySQL de Bluehost

Tener acceso remoto a una base de datos MySQL de un hosting compartido, nos dará mas posibilidades de administración si logramos configurar la conexión.  Si estás pensando que phpMyAdmin es lo único  que existe, estás muy equivocado.  Existen muchas herramientas, entre ellas MySQL Workbench, que apoyan las tareas de administración.

Por ejemplo, si necesitamos cargar un respaldo de 400MB y el límite de phpMyAdmin es de solo 50 MB, este tipo de herramientas nos ayudará a concretar esta tarea.

Actualmente estoy usando Bluehost para realizar una prueba de un portal y para habilitar el acceso remoto a MySQL hice lo siguiente:

[caption id="attachment_1670" align="aligncenter" width="300"]acceso_remoto_mysql_bluehost En el cPanel ir a la opción Remote MySQL dentro del menú Database Tools[/caption]

[caption id="attachment_1671" align="aligncenter" width="300"]Después agregas las IP que requieren acceder a las bases de datos Después agregas las IP que requieren acceder a las bases de datos[/caption]

Y listo. Intenten conectarse desde algún proveedor ODBC o alguna herramienta de administración.

¡Chau!

 

lunes, 2 de septiembre de 2013

Consultar posts por categoría o por tag

Casi dos meses sin escribir. El trabajo me consumió. Esa es la verdad, pero ya estoy de vuelta anotantando los tips para que no se me olviden.

Hoy vengo con algo muy útil al momento de hacer templates para Wordpress: Consultar posts por tag o por categoría.

Wordpress tiene sus propias funciones para consultar, por lo que no se tiene que desarrollar las consultas en duro, sino se hace uso de amplia gama de funciones que tiene el núcleo de Wordpress para la interacción con la base de datos.

Consultar por Categoría:

query_posts(array(
"posts_per_page"=>10,
"category_name"=>"especial-40-anos-del-golpe",
"paged"=>$paged,
"post__not_in"=>array($ignore)
));
?>

Consultar por tags:

'posts_per_page' => 4,
'tag_slug__in' => array('featured')
);
query_posts( $args ); ?>




A mi me sirvió de mucho para el proyecto que estamos llevando ahora.

Saludos.