Discusiones destacadas - Open Business Intelligence2024-03-28T19:27:45Zhttp://openbi.ning.com/group/pentahodataintegration/forum/topic/list?feed=yes&xn_auth=no&featured=1[Tutorial 09] Web Scrapingtag:openbi.ning.com,2016-01-25:2400100:Topic:1089542016-01-25T18:14:03.349ZBernabeu R. Dariohttp://openbi.ning.com/profile/BernabeuRDario
<p>En este video tutorial haremos <strong>Web Scraping</strong> utilizando Pentaho Data Integration (PDI).</p>
<p>Nos conectaremos a un web site y obtendremos el título y la descripción de sus cinco primeros artículos.</p>
<p><a href="http://storage.ning.com/topology/rest/1.0/file/get/2060485698?profile=original" target="_self"><img class="align-center" height="214" src="http://storage.ning.com/topology/rest/1.0/file/get/2060485698?profile=RESIZE_1024x1024" width="574"></img></a> Crearemos una Transformation y haremos lo siguiente:</p>
<ul>
<li>obtendremos un documento HTML (<span style="color: #008000;">HTTP…</span></li>
</ul>
<p>En este video tutorial haremos <strong>Web Scraping</strong> utilizando Pentaho Data Integration (PDI).</p>
<p>Nos conectaremos a un web site y obtendremos el título y la descripción de sus cinco primeros artículos.</p>
<p><a target="_self" href="http://storage.ning.com/topology/rest/1.0/file/get/2060485698?profile=original"><img width="750" class="align-center" src="http://storage.ning.com/topology/rest/1.0/file/get/2060485698?profile=RESIZE_1024x1024" height="214" width="574"/></a>Crearemos una Transformation y haremos lo siguiente:</p>
<ul>
<li>obtendremos un documento HTML (<span style="color: #008000;">HTTP Client</span>)</li>
<li>dividiremos filas en columnas (<span style="color: #008000;">Split Fields</span>)</li>
<li>normalizaremos el data set (<span style="color: #008000;">Row Normaliser</span>)</li>
<li>filtraremos las filas deseadas (<span style="color: #008000;">Filter rows</span>)</li>
<li>obtendremos el título y la descripción utilizando expresiones regulares y javascript (<span style="color: #008000;">Modified Java Script Value</span> | <span style="color: #008000;">Replace in string</span>)</li>
<li>seleccionaremos las columnas deseadas (<span style="color: #008000;">Select values</span>)</li>
</ul>
<p></p>
<p><iframe src="https://www.youtube.com/embed/XSXzGTwbQYc?wmode=opaque" frameborder="0" height="315" width="420"></iframe>
</p>
<p></p>
<p>Para consultas sobre cursos Pentaho: <a href="http://www.troyanx.com/" target="_blank">http://www.troyanx.com/</a></p>
<p></p>
<p>Espero les sea útil</p>
<p>Salud</p> [Tutorial 08] Filtrar, Mapeo, Switch Casetag:openbi.ning.com,2013-06-27:2400100:Topic:981292013-06-27T02:11:22.900ZBernabeu R. Dariohttp://openbi.ning.com/profile/BernabeuRDario
<p>En este tutorial realizaremos una Transformación que filtrará los datos de nuestro flujo de datos, luego mapeará los valores de una columna y finalmente de acuerdo al valor de una columna indicará qué dirección debe seguir cada fila.</p>
<p>Veremos también el funcionamiento de los pasos:</p>
<ul>
<li><span><span style="color: #008000;">Filtrar filas</span>.</span></li>
<li><span><span style="color: #008000;">Mapeo de Valores</span>.</span></li>
<li><span><span style="color: #008000;">Switch…</span></span></li>
</ul>
<p>En este tutorial realizaremos una Transformación que filtrará los datos de nuestro flujo de datos, luego mapeará los valores de una columna y finalmente de acuerdo al valor de una columna indicará qué dirección debe seguir cada fila.</p>
<p>Veremos también el funcionamiento de los pasos:</p>
<ul>
<li><span><span style="color: #008000;">Filtrar filas</span>.</span></li>
<li><span><span style="color: #008000;">Mapeo de Valores</span>.</span></li>
<li><span><span style="color: #008000;">Switch / Case</span>.</span></li>
</ul>
<p> </p>
<p><strong><span class="font-size-5">Transformación</span></strong></p>
<p>La transformación utilizada es la que se muestra en la imagen:</p>
<p><a href="http://storage.ning.com/topology/rest/1.0/file/get/2060481960?profile=original" target="_self"><img src="http://storage.ning.com/topology/rest/1.0/file/get/2060481960?profile=original" width="617" class="align-center"/></a></p>
<p>Esta transformación esta adjunta a este post (<a href="http://storage.ning.com/topology/rest/1.0/file/get/2060482093?profile=original" target="_self">switch_case.ktr</a>), así que puede descargarse.</p>
<p> </p>
<p><strong><span class="font-size-5">Paso a Paso</span></strong></p>
<p>A continuación se explicará paso a paso el funcionamiento de cada paso.</p>
<p> </p>
<p><a href="http://storage.ning.com/topology/rest/1.0/file/get/2060482298?profile=original" target="_self"><img width="300" src="http://storage.ning.com/topology/rest/1.0/file/get/2060482298?profile=RESIZE_320x320" width="300" class="align-center"/></a></p>
<p>1) El paso <span style="color: #008000;">Data Grid: Entrada</span> esta configurado para obtener los siguientes datos:</p>
<p><a href="http://storage.ning.com/topology/rest/1.0/file/get/2060482405?profile=original" target="_self"><img src="http://storage.ning.com/topology/rest/1.0/file/get/2060482405?profile=original" width="226" class="align-center"/></a></p>
<p>Aquí tenemos las <span style="color: #ff0000;">ventas</span> realizadas en cada <span style="color: #ff0000;">zona</span>, además del <span style="color: #ff0000;">sector</span> al que pertenece cada zona.</p>
<p> </p>
<p><a href="http://storage.ning.com/topology/rest/1.0/file/get/2060482455?profile=original" target="_self"><img width="300" src="http://storage.ning.com/topology/rest/1.0/file/get/2060482455?profile=RESIZE_320x320" width="300" class="align-center"/></a></p>
<p>2) El paso <strong><span style="color: #008000;">Filtrar Filas</span></strong>, perteneciente a la categoría <span style="color: #008000;">Flujo</span>, para dividir el flujo de datos en dos direcciones diferentes. Debemos configurar la <strong>condición</strong> mediante la cual será analizado el flujo de datos, para que luego este paso evalúe cada fila y determine si cumplió o no la condición establecida. En el caso de que una fila del flujo de datos cumpla con la condición, esta será enviada hacia un paso (dirección <strong>Verdadero</strong>), en caso contrario será enviada hacia otro paso (dirección <strong>Falso</strong>).</p>
<p>En este caso la <strong><span style="color: #008000;">condición</span></strong> a evaluar es si la columna <span style="color: #ff0000;">sector</span> es igual a <span style="color: #ff0000;">O</span>. Si es <strong><span style="color: #008000;">verdadero</span></strong> la fila irá hacia el paso <span style="color: #008000;">sector: O</span> y si es <strong><span style="color: #008000;">falso</span></strong> la fila irá hacia el paso <span style="color: #008000;">Mapeo de Valores</span>:</p>
<p><a href="http://storage.ning.com/topology/rest/1.0/file/get/2060482526?profile=original" target="_self"><img src="http://storage.ning.com/topology/rest/1.0/file/get/2060482526?profile=original" width="558" height="233" class="align-center"/></a></p>
<p>Es posible añadir más condiciones de filtrado presionando el botón: <img src="http://storage.ning.com/topology/rest/1.0/file/get/2060482642?profile=original" width="24" height="23"/></p>
<p> </p>
<p><a href="http://storage.ning.com/topology/rest/1.0/file/get/2060482731?profile=original" target="_self"><img width="300" src="http://storage.ning.com/topology/rest/1.0/file/get/2060482731?profile=RESIZE_320x320" width="300" class="align-center"/></a></p>
<p>3) Si realizamos una vista previa del flujo de datos que recibe el paso <span style="color: #008000;">sector: O</span> veremos:</p>
<p><a href="http://storage.ning.com/topology/rest/1.0/file/get/2060483076?profile=original" target="_self"><img src="http://storage.ning.com/topology/rest/1.0/file/get/2060483076?profile=original" width="214" class="align-center"/></a>Este flujo de datos es el que cumplió con la condición <span style="color: #ff0000;">sector = O</span> del paso <span style="color: #008000;">Filtrar filas</span>. A continuación analizaremos la dirección que toman las filas que NO cumplen con esta condición.</p>
<p> </p>
<p><a href="http://storage.ning.com/topology/rest/1.0/file/get/2060483513?profile=original" target="_self"><img width="300" src="http://storage.ning.com/topology/rest/1.0/file/get/2060483513?profile=RESIZE_320x320" width="300" class="align-center"/></a></p>
<p>4) El paso <strong><span style="color: #008000;">Mapeo de Valores</span></strong>, perteneciente a la categoría <span style="color: #008000;">Transformar</span>, evalúa los valores de una columna y los mapea de acuerdo a las reglas que le establezcamos.</p>
<p>En nuestro ejemplo este paso se configuró de la siguiente manera:</p>
<p><a href="http://storage.ning.com/topology/rest/1.0/file/get/2060484746?profile=original" target="_self"><img width="750" src="http://storage.ning.com/topology/rest/1.0/file/get/2060484746?profile=RESIZE_1024x1024" width="590" class="align-center" height="250"/></a></p>
<p>La columna cuyos valores se analizarán será <span style="color: #ff0000;">sector</span> y fue establecida en <span style="color: #008000;">Nombre de campo origen</span>. Si NO colocamos ningún valor para <span style="color: #008000;">Nombre de campo destino</span>, los nuevos valores reemplazarán al viejo valor, en cambio si se coloca un nombre diferente a "sector" se creará una columna con el nuevo valor. En <span style="color: #008000;">Valor por defecto si no hay coincidencias</span> se puede colocar el valor que deberá emplearse en caso de que no se realice ningún mapeo.</p>
<p>En <span style="color: #008000;">Valores de campo</span> es en donde se establecen las reglas de mapeo, en <span style="color: #008000;">Valor origen</span> se colocan los posibles valores de <span style="color: #ff0000;">sector</span> y en <span style="color: #008000;">Valor destino</span> el nuevo valor que se obtendrá. Por ejemplo, si tras analizar una fila sector es <span style="color: #ff0000;">N</span>, obtendremos el valor <span style="color: #ff0000;">norte</span>.</p>
<p>Tras realizar este paso los datos que obtendremos serán los siguientes:</p>
<p><a href="http://storage.ning.com/topology/rest/1.0/file/get/2060484910?profile=original" target="_self"><img src="http://storage.ning.com/topology/rest/1.0/file/get/2060484910?profile=original" width="217" class="align-center"/></a></p>
<p>Podemos apreciar que los viejos valores de <span style="color: #ff0000;">sector</span> han sido reemplazados por los nuevos valores resultantes del mapeo.</p>
<p> </p>
<p><a href="http://storage.ning.com/topology/rest/1.0/file/get/2060484900?profile=original" target="_self"><img width="300" src="http://storage.ning.com/topology/rest/1.0/file/get/2060484900?profile=RESIZE_320x320" width="300" class="align-center"/></a></p>
<p>5) El paso <span style="color: #008000;"><strong>Switch / Case</strong></span>, perteneciente a la categoría <span style="color: #008000;">Flujo</span>, analiza los valores de una columna del flujo de datos y de acuerdo a las reglas que le configuremos las filas serán enviadas en diferentes direcciones.</p>
<p>En este caso el paso se configuró de la siguiente manera:</p>
<p><a href="http://storage.ning.com/topology/rest/1.0/file/get/2060485255?profile=original" target="_self"><img src="http://storage.ning.com/topology/rest/1.0/file/get/2060485255?profile=original" width="521" height="345" class="align-center"/></a></p>
<p>En <span style="color: #008000;">field name to switch</span> se seleccionó la columna <span style="color: #ff0000;">sector</span>, ya que de acuerdo a sus valores se crearán las reglas de mapeo del flujo de datos. En <span style="color: #008000;">Case value data type</span> se indicó que se trabajará con el tipo de dato <span style="color: #ff0000;">String</span>. En la grilla de <span style="color: #008000;">Case values</span> se configuraron las reglas de mapeo, en <span style="color: #008000;">Value</span> se colocaron los posibles valores que podía adoptar <span style="color: #ff0000;">sector</span> y en <span style="color: #008000;">Target step</span> los pasos hacia donde debían enviarse las filas en cada caso. Por ejemplo, si la fila analizada posee el valor <span style="color: #ff0000;">norte</span> en la columa <span style="color: #ff0000;">sector</span>, esta fila será enviada al paso <span style="color: #ff0000;">Salida: norte</span>.</p>
<p>La opción <span style="color: #008000;">Default target step</span> se utiliza para indicar a qué paso deben ser enviadas las filas que no cumplan con ninguna de las reglas de mapeo.</p>
<p> </p>
<p><a href="http://storage.ning.com/topology/rest/1.0/file/get/2060485355?profile=original" target="_self"><img width="300" src="http://storage.ning.com/topology/rest/1.0/file/get/2060485355?profile=RESIZE_320x320" width="300" class="align-center"/></a></p>
<p>6) Si realizamos una vista previa en el paso <strong><span style="color: #008000;">Salida: norte</span></strong> veremos el flujo de datos que ha llegado hasta aquí:</p>
<p><a href="http://storage.ning.com/topology/rest/1.0/file/get/2060485192?profile=original" target="_self"><img src="http://storage.ning.com/topology/rest/1.0/file/get/2060485192?profile=original" width="203" class="align-center"/></a></p>
<p>Se puede realizar una vista previa en los pasos <strong><span style="color: #008000;">Salida: sur</span></strong> y <span style="color: #008000;"><strong>Salida: este</strong></span> para verificar sus respectivos flujos de datos.</p>
<p> </p>
<p> </p>
<p>Eso es todo, espero les sea de utilidad.</p>
<p><span>Animo a quien tenga deseos de hacer su propio tutorial a compartirlo con el resto de la comunidad.</span></p>
<p>Salud</p> [Tutorial 07] Desnormalizar Filastag:openbi.ning.com,2013-06-25:2400100:Topic:982602013-06-25T14:17:51.562ZBernabeu R. Dariohttp://openbi.ning.com/profile/BernabeuRDario
<p>En este tutorial veremos cómo <strong>Desnormalizar</strong> nuestros datos mediante PDI. Los datos con los que contaremos al inicio serán:</p>
<p><a href="http://storage.ning.com/topology/rest/1.0/file/get/2060482420?profile=original" target="_self"><img class="align-center" src="http://storage.ning.com/topology/rest/1.0/file/get/2060482420?profile=original" width="451"></img></a></p>
<p>Lo que se hará será desnormalizar la columna <span style="color: #008000;">estacionNumero</span> (número de estación del año), para que de acuerdo a cada valor de este (<span style="color: #ff0000;">1</span>,…</p>
<p>En este tutorial veremos cómo <strong>Desnormalizar</strong> nuestros datos mediante PDI. Los datos con los que contaremos al inicio serán:</p>
<p><a href="http://storage.ning.com/topology/rest/1.0/file/get/2060482420?profile=original" target="_self"><img src="http://storage.ning.com/topology/rest/1.0/file/get/2060482420?profile=original" width="451" class="align-center"/></a></p>
<p>Lo que se hará será desnormalizar la columna <span style="color: #008000;">estacionNumero</span> (número de estación del año), para que de acuerdo a cada valor de este (<span style="color: #ff0000;">1</span>, <span style="color: #ff0000;">2</span>, <span style="color: #ff0000;">3</span>, <span style="color: #ff0000;">4</span>) se cree una nueva columna con su respectivo valor de <span style="color: #008000;">ventas</span>. El resultado que obtendremos será el siguiente:</p>
<p><a href="http://storage.ning.com/topology/rest/1.0/file/get/2060482459?profile=original" target="_self"><img src="http://storage.ning.com/topology/rest/1.0/file/get/2060482459?profile=original" width="453" class="align-center"/></a></p>
<p>Veremos también el funcionamiento de los pasos:</p>
<ul>
<li><span style="color: #008000;">Data Grid.</span></li>
<li><span style="color: #008000;">Des-Normalización de Fila</span></li>
<li><span style="color: #008000;">If field value is null.</span></li>
<li><span style="color: #008000;">Transformación Simulada.</span></li>
</ul>
<p> </p>
<p><strong><span class="font-size-5">Transformación</span></strong></p>
<p>La transformación utilizada es la que se muestra en la imagen:</p>
<p><a href="http://storage.ning.com/topology/rest/1.0/file/get/2060482531?profile=original" target="_self"><img src="http://storage.ning.com/topology/rest/1.0/file/get/2060482531?profile=original" width="580" class="align-center"/></a></p>
<p>Esta transformación esta adjunta a este post (<a href="http://storage.ning.com/topology/rest/1.0/file/get/2060482622?profile=original" target="_self">desnormalizar_filas.ktr</a>), así que puede descargarse.</p>
<p> </p>
<p><strong><span class="font-size-5">Paso a Paso</span></strong></p>
<p>A continuación se explicará paso a paso el funcionamiento de cada paso.</p>
<p><a href="http://storage.ning.com/topology/rest/1.0/file/get/2060482708?profile=original" target="_self"><img width="300" src="http://storage.ning.com/topology/rest/1.0/file/get/2060482708?profile=RESIZE_320x320" width="300" class="align-center"/></a></p>
<p>1) El paso <strong><span style="color: #008000;">Data Grid</span></strong>, perteneciente a la categoría <span style="color: #008000;">Entrada</span>, se utiliza usualmente para crear datos de ejemplo o para realizar testing, y otras veces para crear un pequeño conjunto de datos predefinidos, esto se debe a que los datos que se obtengan de este paso serán totalmente estáticos.</p>
<p>Se ha configurado este paso de la siguiente manera.</p>
<p><a href="http://storage.ning.com/topology/rest/1.0/file/get/2060482681?profile=original" target="_self"><img src="http://storage.ning.com/topology/rest/1.0/file/get/2060482681?profile=original" width="561" class="align-center"/></a></p>
<p>En la pestaña <span style="color: #008000;">Meta</span>, es en donde se definen las columnas (<span style="color: #008000;">Nombre</span>) y el tipo de datos que contendrá (<span style="color: #008000;">Tipo</span>), entre otros datos (<span style="color: #008000;">Formato</span>, <span style="color: #008000;">Longitud</span>, etc.). En este caso se definieron tres columnas (<span style="color: #ff0000;">zona</span>, <span style="color: #ff0000;">estacionNumero</span> y <span style="color: #ff0000;">ventas</span>) y se definió su tipo de datos. </p>
<p>Luego, en la pestaña <span style="color: #008000;">Datos</span> se creó un conjunto de datos correspondientes a las columnas creadas:</p>
<p><a href="http://storage.ning.com/topology/rest/1.0/file/get/2060482903?profile=original" target="_self"><img src="http://storage.ning.com/topology/rest/1.0/file/get/2060482903?profile=original" width="561" class="align-center"/></a></p>
<p>Como puede apreciarse los datos representan las <span style="color: #008000;">ventas</span> realizadas en cada <span style="color: #008000;">estacionNumero</span> de cada <span style="color: #008000;">zona</span>.</p>
<p> </p>
<p><a href="http://storage.ning.com/topology/rest/1.0/file/get/2060482926?profile=original" target="_self"><img width="300" src="http://storage.ning.com/topology/rest/1.0/file/get/2060482926?profile=RESIZE_320x320" width="300" class="align-full"/></a></p>
<p>2) El paso <span style="color: #008000;"><strong>Des-Normalización de Fila</strong></span>, perteneciente a la categoría <span style="color: #008000;">Transformar</span>, se emplea para crear nuevas columnas, a partir de los valores presentes en una columna.</p>
<p>Este paso se ha configurado de la siguiente manera:</p>
<p><a href="http://storage.ning.com/topology/rest/1.0/file/get/2060483037?profile=original" target="_self"><img src="http://storage.ning.com/topology/rest/1.0/file/get/2060483037?profile=original" width="542" height="264" class="align-center"/></a></p>
<p>2.1) En <span style="color: #008000;">campo clave</span> seleccionamos <span style="color: #ff0000;">estacionNumero</span>, que será la columna de la cual se analizarán sus valores para la creación de nuevas columnas.</p>
<p>2.2) En <span style="color: #008000;">campos que definen la agrupación</span>, seleccionaremos el criterio de agrupación que tendrán nuestros datos a la hora de desnormalizar. En este caso agruparemos por <span style="color: #ff0000;">zona</span>.</p>
<p>2.3) En <span style="color: #008000;">campos destino</span>, se definirán las nuevas columnas y la lógica de desnormalización. Analizaremos el contenido de la grilla:</p>
<ul>
<li>En <span style="color: #008000;">nombre de campo destino</span> se coloca el nombre la nueva columna.</li>
<li>En <span style="color: #008000;">valor de campo destino</span> se coloca el valor que tendrá la nueva columna.</li>
<li>En <span style="color: #008000;">valor clave</span> se mapean los valores de la columna que se ha configurado previamente en campo clave (<strong>punto 2.1</strong>).</li>
<li>En <span style="color: #008000;">tipo</span>, se especifica el tipo de datos de las nuevas columnas.</li>
<li>En <span style="color: #008000;">agregación</span> se selecciona <span style="color: #ff0000;">Suma</span>, para que todos los valores de las <span style="color: #ff0000;">ventas</span> de una misma <span style="color: #ff0000;">zona</span> (criterio de agrupación) se sumen al momento de convertirse en el valor de la nueva columna.</li>
</ul>
<p>El comportamiento de este paso es el siguiente:</p>
<ul>
<li>Agrupa los datos por <span style="color: #ff0000;">zona</span>.</li>
<li>La <span style="color: #ff0000;">Suma</span> de los valores de <span style="color: #ff0000;">ventas</span> cuando <span style="color: #ff0000;">estacionNumero</span> es igual a <span style="color: #ff0000;">1</span> se mapean en la columna <span style="color: #008000;">primavera</span>; cuando <span style="color: #ff0000;">estacionNumero</span> es igual a <span style="color: #ff0000;">2</span> en la columna <span style="color: #008000;">verano</span>; y así sucesivamente.</li>
</ul>
<p>Los datos que se obtienen hasta el momento son:</p>
<p><a href="http://storage.ning.com/topology/rest/1.0/file/get/2060483839?profile=original" target="_self"><img src="http://storage.ning.com/topology/rest/1.0/file/get/2060483839?profile=original" width="454" class="align-center"/></a></p>
<p> </p>
<p style="text-align: left;"><a href="http://storage.ning.com/topology/rest/1.0/file/get/2060484647?profile=original" target="_self"><img width="300" src="http://storage.ning.com/topology/rest/1.0/file/get/2060484647?profile=RESIZE_320x320" width="300" class="align-center"/></a></p>
<p style="text-align: left;">3) El paso <strong><span style="color: #008000;">If field value is null</span></strong>, perteneciente a la categoría <span style="color: #008000;">Utilidad</span>, se emplea para asignar valores a aquellos campos cuyo valor sea null.</p>
<p style="text-align: left;">Se ha configurado este paso de la siguiente manera:</p>
<p style="text-align: left;"><a href="http://storage.ning.com/topology/rest/1.0/file/get/2060485078?profile=original" target="_self"><img src="http://storage.ning.com/topology/rest/1.0/file/get/2060485078?profile=original" width="491" height="408" class="align-center"/></a></p>
<p style="text-align: left;">3.1) Seleccionamos la opción <span style="color: #008000;">Seleccionar campos</span>, para asignar valores a los campos cuyo valor sea igual a null. La opción <span style="color: #008000;">Seleccionar tipos de valor</span> se emplea para colocar un valor cuando los datos de determinado tipo (Integer, String, etc.) sean nulos.</p>
<p style="text-align: left;">3.2) En la grilla seleccionamos los campos que con los que se trabajarán (<span style="color: #008000;">Campos</span>) y colocamos los valores que serán empleados en el caso que el valor del campo sea null (<span style="color: #008000;">Reemplazar con valor</span>).</p>
<p style="text-align: left;">Este paso rellenará con <span style="color: #ff0000;">0</span> los valores de los campos <span style="color: #008000;">primavera</span>, <span style="color: #008000;">verano</span>,... que sean null. Si vemos los resultados obtenidos en el paso anterior se puede apreciar que la segunda fila (<span style="color: #ff0000;">Zona 2</span>) posee un valor null para <span style="color: #ff0000;">invierno</span>:</p>
<p style="text-align: left;"><a href="http://storage.ning.com/topology/rest/1.0/file/get/2060485157?profile=original" target="_self"><img src="http://storage.ning.com/topology/rest/1.0/file/get/2060485157?profile=original" width="454" class="align-center"/></a></p>
<p style="text-align: left;">Este valor null se debe a que cuando desnormalizamos los datos no existía ningún valor de <span style="color: #ff0000;">estacionNumero</span> igual a <span style="color: #ff0000;">4</span> en la <span style="color: #ff0000;">Zona 2</span>.</p>
<p style="text-align: left;"><a href="http://storage.ning.com/topology/rest/1.0/file/get/2060485339?profile=original" target="_self"><img width="300" src="http://storage.ning.com/topology/rest/1.0/file/get/2060485339?profile=RESIZE_320x320" width="300" class="align-center"/></a></p>
<p style="text-align: left;">4) El paso <strong><span style="color: #008000;">Transformación Simulada</span></strong>, perteneciente a la categoría <span style="color: #008000;">Flujo</span>, generalmente se emplea para realizar ejemplos o testing, pero también para que los flujos de datos de diferentes pasos se unan. Este paso no requiere ninguna configuración.</p>
<p style="text-align: left;">5) Realizaremos una vista previa sobre el último paso para analizar los resultados obtenidos:</p>
<p style="text-align: left;"><a href="http://storage.ning.com/topology/rest/1.0/file/get/2060485489?profile=original" target="_self"><img src="http://storage.ning.com/topology/rest/1.0/file/get/2060485489?profile=original" width="496" height="113" class="align-center"/></a></p>
<p style="text-align: left;">Los datos son los siguientes:</p>
<p style="text-align: left;"><a href="http://storage.ning.com/topology/rest/1.0/file/get/2060485542?profile=original" target="_self"><img src="http://storage.ning.com/topology/rest/1.0/file/get/2060485542?profile=original" width="370" height="177" class="align-center"/></a></p>
<p style="text-align: left;"></p>
<p style="text-align: left;">Bueno, eso es todo, animo a quien tenga deseos de hacer su propio tutorial a compartirlo con el resto de la comunidad.</p>
<p style="text-align: left;">Espero les sea de utilidad.</p>
<p style="text-align: left;">Salud</p>
<p style="text-align: left;"></p> [Tutorial 06] Conexión (ODBC y JDBC) con M$ SQL Server 2000tag:openbi.ning.com,2011-06-07:2400100:Topic:365062011-06-07T14:03:36.149ZBernabeu R. Dariohttp://openbi.ning.com/profile/BernabeuRDario
<p><em>Aclaración: este tutorial fue publicado inicialmente en el grupo Pentaho.</em></p>
<p> </p>
<p>Buenas.<br></br> Debido a preguntas concurrentes acerca de este tema y el de las conexiones en general, conjuntamente con mi colega <a href="http://www.redopenbi.com/profile/Mariano">Ing. Mariano García Mattío</a> hemos realizado un pequeño manual, en el que explicaremos mediante ejemplos gráficos como establecer desde Pentaho Data Integration 3.2.0 stable conexiones ODBC y JDBC con M$ SQL Server…</p>
<p><em>Aclaración: este tutorial fue publicado inicialmente en el grupo Pentaho.</em></p>
<p> </p>
<p>Buenas.<br/> Debido a preguntas concurrentes acerca de este tema y el de las conexiones en general, conjuntamente con mi colega <a href="http://www.redopenbi.com/profile/Mariano">Ing. Mariano García Mattío</a> hemos realizado un pequeño manual, en el que explicaremos mediante ejemplos gráficos como establecer desde Pentaho Data Integration 3.2.0 stable conexiones ODBC y JDBC con M$ SQL Server 2000.<br/>
<br/>
SQL Server Enterprise Manager:</p>
<p style="text-align: left;"><img height="176" width="231" src="http://storage.ning.com/topology/rest/1.0/file/get/2060479226?profile=original"/></p>
<br/>
Administrador de servicios de SQL Server:<br/>
<p style="text-align: left;"><img height="262" width="366" src="http://storage.ning.com/topology/rest/1.0/file/get/2060479230?profile=original"/></p>
<br/>
<b>Conexión ODBC</b><br/>
<br/>
<i>1) Establecer orígen de datos ODBC:</i><br/>
* Ir a Panel de control → Herramientas Administrativas → Orígenes de datos (ODBC)<br/>
* Seleccionar la pestaña “DNS de Sistema” y presionar el botón “Agregar...”.<br/>
* Seleccionar el controlador “SQL Server” y presionar el botón “Finalizar”.<br/>
* Completar la ficha para la creación del origen de datos:<br/>
** Nombre: datawarehouseODBC<br/>
** Descripción: Conexión ODBC a datawarehouse<br/>
** Servidor: TGX<br/>
* Una vez completada la ficha presionar el botón “Siguiente >”.<br/>
* Completar la información de esta pantalla de acuerdo lo crean conveniente y presionar el botón “Siguiente >”.<br/>
* Tildar la opción “Establecer la siguiente base de datos como predeterminada” y seleccionar “datawarehouse”. Presionar el botón “Siguiente >”.<br/>
* Completar la información de esta pantalla de acuerdo lo crean conveniente y presionar el botón “Finalizar”.<br/>
Finalmente deberíamos tener algo como esto:<br/>
<p style="text-align: left;"><img height="139" width="462" src="http://storage.ning.com/topology/rest/1.0/file/get/2060479353?profile=original"/></p>
<br/>
<i>2) Establecer conexión ODBC en Pentaho Data Integration 3.2.0 stable:</i><br/>
* En la “Transformación” o “Trabajo” que estemos utilzando, ir a la pestaña “View”:<br/>
<p style="text-align: left;"><img height="279" width="554" src="http://storage.ning.com/topology/rest/1.0/file/get/2060479404?profile=original"/></p>
* Presionar el botón derecho sobre “Conexiones a base de datos” y seleccionar “Nuevo”.<br/>
* A continuación llenaremos solo los campos necesarios para establecer la conexión, es decir, los campos de la pestaña “General”:<br/>
** Connection Name: Conexión ODBC a datawarehouse<br/>
** Connection Type: MS SQL Server<br/>
** Access: ODBC<br/>
** ODBC DNS Source Name: datawarehouseODBC<br/>
<p style="text-align: left;"><img height="521" width="550" src="http://storage.ning.com/topology/rest/1.0/file/get/2060479295?profile=original"/></p>
* Es conveniente presionar el botón “Probar” para asegurarnos de la conexión es correcta.<br/>
* Finalmente presionar “OK”.<br/>
<br/>
<br/>
<b>Conexión JDBC</b><br/>
<br/>
<i>1) Configurar Driver JDBC:</i><br/>
* Copiar el driver “sqljdbc.jar” en “[data-integration_home]\libext\JDBC”<br/>
* Reiniciar Pentaho Data Integration si es que ya estaba ejecutándose.<br/>
<br/>
<i>2) Habilitar la autentificación estándar en M$ SQL Server 2000:</i><br/>
Este paso es llevado a cabo para que cuando intentemos establecer la conexión con la base de datos no nos arroje el siguiente error: <i>Error de inicio de sesión del usuario 'sa'. Motivo: no está asociado a una conexión de SQL Server de confianza.</i><br/>
* Abrir SQL Server Enterprise Manager.<br/>
* Botón derecho sobre el servidor, en nuestro caso: (local)(Windows NT).<br/>
* Seleccionar la opción “Propiedades”.<br/>
* Ir a la pestaña “Seguridad” y seleccionar la opción “SQL Server y Windows”.<br/>
* Presionar el botón “Aceptar” y reiniciar el servicio.<br/>
<br/>
<i>3) Establecer conexión JDBC en Pentaho Data Integration 3.2.0 stable:</i><br/>
*En la “Transformación” o “Trabajo” que estemos utilzando, ir a la pestaña “View”:<br/>
<p style="text-align: left;"><img height="279" width="554" src="http://storage.ning.com/topology/rest/1.0/file/get/2060479404?profile=original"/></p>
* Presionar el botón derecho sobre “Conexiones a base de datos” y seleccionar “Nuevo”.<br/>
* A continuación llenaremos solo los campos necesarios para establecer la conexión, es decir, los campos de la pestaña “General”:<br/>
** Connection Name: Conexión JDBC a datawarehouse<br/>
** Connection Type: Generic database<br/>
** Access: Natie (JDBC)<br/>
** Custom Connection URL: jdbc:sqlserver://localhost:1433;databasename=datawarehouse;responseBuffering=adaptive<br/>
** Custom Driver Class Name: com.microsoft.sqlserver.jdbc.SQLServerDriver<br/>
** User Name: sa<br/>
** Password: sa<br/>
<p style="text-align: left;"><img height="534" width="646" src="http://storage.ning.com/topology/rest/1.0/file/get/2060479518?profile=original"/></p>
* Es conveniente presionar el botón “Probar” para asegurarnos de la conexión es correcta.<br/>
* Finalmente presionar “OK”.<br/>
<br/>
<br/>
Esperamos les sea útil.<br/>
Saludos. Manual de Usuari@ de Spoon en españoltag:openbi.ning.com,2010-01-04:2400100:Topic:115732010-01-04T14:31:33.000ZBernabeu R. Dariohttp://openbi.ning.com/profile/BernabeuRDario
Buenas.<br />
Acabo de finalizar la actualización del <span style="font-weight: bold;font-size:130%;"><span style="color: rgb(204, 0, 0);">Manual de Usuari@ de Spoon en español</span></span>.<br />
<a href="http://wiki.pentaho.com/display/EAIes/Manual+del+Usuario+de+Spoon">(ver manual..)</a><br />
<br />
El manual ha sido confeccionado en su totalidad, tomando como base la traducción que me ha sido provista por <a href="http://www.redopenbi.com/profile/LeonardoMTito"><b>Leonardo M. Tito</b></a> y…
Buenas.<br />
Acabo de finalizar la actualización del <span style="font-weight: bold;font-size:130%;"><span style="color: rgb(204, 0, 0);">Manual de Usuari@ de Spoon en español</span></span>.<br />
<a href="http://wiki.pentaho.com/display/EAIes/Manual+del+Usuario+de+Spoon">(ver manual..)</a><br />
<br />
El manual ha sido confeccionado en su totalidad, tomando como base la traducción que me ha sido provista por <a href="http://www.redopenbi.com/profile/LeonardoMTito"><b>Leonardo M. Tito</b></a> y <a href="http://www.redopenbi.com/profile/FelipeMullicundo"><b>Felipe Mullicundo</b></a>:<br />
<a href="http://4.bp.blogspot.com/_785Ersi9KUg/S0H5zS0rXSI/AAAAAAAAAJ0/V0vnu5cnQsM/s1600-h/tuxbatman.png"><img style="cursor: pointer; width: 70px; height: 70px;" src="http://4.bp.blogspot.com/_785Ersi9KUg/S0H5zS0rXSI/AAAAAAAAAJ0/V0vnu5cnQsM/s200/tuxbatman.png" alt="" id="BLOGGER_PHOTO_ID_5422890085952216354" border="0" name="BLOGGER_PHOTO_ID_5422890085952216354"/></a><a href="http://3.bp.blogspot.com/_785Ersi9KUg/S0H55JA7lrI/AAAAAAAAAJ8/o4HWUQ9AULU/s1600-h/rambotux.png"><img style="cursor: pointer; width: 70px; height: 70px;" src="http://3.bp.blogspot.com/_785Ersi9KUg/S0H55JA7lrI/AAAAAAAAAJ8/o4HWUQ9AULU/s200/rambotux.png" alt="" id="BLOGGER_PHOTO_ID_5422890186398471858" border="0" name="BLOGGER_PHOTO_ID_5422890186398471858"/></a><br />
<br />
<a href="http://1.bp.blogspot.com/_785Ersi9KUg/S0H7Io1rKHI/AAAAAAAAAKM/8e468fUNQ98/s1600-h/spoon+-+catalogo.png"><img style="cursor: pointer; width: 400px; height: 308px;" src="http://1.bp.blogspot.com/_785Ersi9KUg/S0H7Io1rKHI/AAAAAAAAAKM/8e468fUNQ98/s400/spoon+-+catalogo.png" alt="" id="BLOGGER_PHOTO_ID_5422891552150857842" border="0" name="BLOGGER_PHOTO_ID_5422891552150857842"/></a><br />
<br />
<br />
Los <span style="font-weight: bold; color: rgb(204, 0, 0);">temas principales</span> de este manual son los siguientes:<br />
<ul>
<li><a href="http://wiki.pentaho.com/pages/viewpage.action?pageId=14844841" title=".01 Introducción a Spoon">.01 Introducción a Spoon</a></li>
<li><a href="http://wiki.pentaho.com/pages/viewpage.action?pageId=14845731" title=".02 Crear una Transformación o Trabajo">.02 Crear una Transformación o Trabajo</a></li>
<li><a href="http://wiki.pentaho.com/display/EAIes/.03+Conexiones+a+Bases+de+Datos" title=".03 Conexiones a Bases de Datos">.03 Conexiones a Bases de Datos</a></li>
<li><a href="http://wiki.pentaho.com/display/EAIes/.04+Editor+SQL" title=".04 Editor SQL">.04 Editor SQL</a></li>
<li><a href="http://wiki.pentaho.com/display/EAIes/.05+Explorador+de+Bases+de+Datos" title=".05 Explorador de Bases de Datos">.05 Explorador de Bases de Datos</a></li>
<li><a href="http://wiki.pentaho.com/display/EAIes/.06+Saltos" title=".06 Saltos">.06 Saltos</a></li>
<li><a href="http://wiki.pentaho.com/display/EAIes/.07+Variables" title=".07 Variables">.07 Variables</a></li>
<li><a href="http://wiki.pentaho.com/pages/viewpage.action?pageId=14846537" title=".08 Configuración de Transformaciones">.08 Configuración de Transformaciones</a></li>
<li><a href="http://wiki.pentaho.com/display/EAIes/.09+Pasos+de+Transformaciones" title=".09 Pasos de Transformaciones">.09 Pasos de Transformaciones</a></li>
<li><a href="http://wiki.pentaho.com/pages/viewpage.action?pageId=14846754" title=".10 Configuración de Trabajos">.10 Configuración de Trabajos</a></li>
<li><a href="http://wiki.pentaho.com/display/EAIes/.11+Entradas+de+Trabajos" title=".11 Entradas de Trabajos">.11 Entradas de Trabajos</a></li>
<li><a href="http://wiki.pentaho.com/pages/viewpage.action?pageId=14846773" title=".12 Vista Gráfica">.12 Vista Gráfica</a></li>
<li><a href="http://wiki.pentaho.com/pages/viewpage.action?pageId=14847186" title=".13 Ejecutar una Transformación o Trabajo">.13 Ejecutar una Transformación o Trabajo</a></li>
<li><a href="http://wiki.pentaho.com/display/EAIes/.14+Logs" title=".14 Logs">.14 Logs</a></li>
<li><a href="http://wiki.pentaho.com/display/EAIes/.15+Grillas" title=".15 Grillas">.15 Grillas</a></li>
<li><a href="http://wiki.pentaho.com/pages/viewpage.action?pageId=14847486" title=".16 Catálogo">.16 Catálogo</a></li>
<li><a href="http://wiki.pentaho.com/display/EAIes/.17+Objetos+Compartidos" title=".17 Objetos Compartidos">.17 Objetos Compartidos</a></li>
<li><a href="http://wiki.pentaho.com/display/EAI/.18+Appendix+LGPL+License" rel="nofollow">.18 Apéndice: Licencia LGPL</a></li>
</ul>
Espero les sea útil.<br />
<span style="font-weight: bold;">Muchas gracias Leonardo M. Tito y Felipe Mullicundo por <a href="http://www.redopenbi.com/profiles/blogs/iniciativa-aprender-y">seguir compartiendo</a>!!!</span>