Hitachi Vantara Pentaho Community Forums
Results 1 to 8 of 8

Thread: puedo hacer auditoria

  1. #1
    Join Date
    Jul 2008
    Posts
    5

    Default puedo hacer auditoria

    hola, puedo hacer auditoria de una migración de datos, el proyecto de migración lo hice con pentaho, ahora quiero comprobar que este bien migrado. las plataformas que migre son de anywhere a mysql por favor si me pueden ayudar con u n ejemplo, ya he intentado y no lo he logrado
    Att
    marthy

  2. #2
    Join Date
    Jul 2008
    Posts
    5

    Default Auditoria

    Chicos, Es posible hacer auditoria en esta herraminta de un proyecto de migración de datos ???????ayuda por favor.

  3. #3

    Default Explicitar

    Hola Marthy:

    Podr

  4. #4
    Join Date
    Jul 2008
    Posts
    5

    Default Auditor

    Utilicé el Spoon de Pentaho. Los datos ya están migrados de una base Anywhere a otra Mysql. El problema en s
    Attached Files Attached Files

  5. #5

    Default

    Estimada:
    El control que pretendes hacer, es a nivel de fila, es lo que hace data validator, con este artefacto puedes desviar filas que no cumplan algunos criterios a otro flujo, pero no creo que sea lo que estás necesitando. Particularmente, cuan debo hacer ese tip de controles utilizo SQL, con esto puedes generar resultados que puedes almacenar en tablas y puedo hacer un reporte de los mismos. Los SQL que utilizo son al estilo de:

    SELECT (SELECT COUNT(*) FROM tablaOrigen) AS cantOrigen - (SELECT COUNT(*) FROM tablaDestino) AS cantDestino
    Si la diferencia es 0, tienes la misma cantidad de filas.
    Otra posibilidad es crear una gran clave por fila:

    SELECT * FROM TablaOrigen WHERE col1+CAST(col2 AS VARCHAR(3))+col3+...... NOT IN (SELECT col1+CAST(col2 AS VARCHAR(3))+col3+...... FROM tablaDestino)
    Esta dará como resultado las filas que no fueron insertadas en el destino. Si das vuelta las tablas harás al revés. Si tu motor soporta (c1,c2,c3) IN (F1,f2,f3), o sea, múltiples columnas, no debes preocuparte en castear las y concatenar los valores.
    Puedes utilizar SUMs para verificar igualdad de sumatrorias.
    Puedes agrupar primero por algún criterio y luego hacer un inner join y ver si tienes las mismas filas o bien alguna sumatoria.
    En fin se puede realizar una gran cantidad de controles con SQL.
    Por ejemplo, yo utilizo para los modelos estrella de los datawarehoses un control muy rápido para verificar las relaciones foraneas:
    (SELECT COUNT(*)*cantDim FROM tablaHechos) -
    (SELECT COUNT(*) FROM tablaHechos a INNER JOIN dim1 b ON a.fk1=b.id) -
    (SELECT COUNT(*) FROM tablaHechos a INNER JOIN dim2 b ON a.fk2=b.id) -
    (SELECT COUNT(*) FROM tablaHechos a INNER JOIN dim3 b ON a.fk3=b.id) -
    (SELECT COUNT(*) FROM tablaHechos a INNER JOIN dim4 b ON a.fk4=b.id)
    Para este caso cantDim debe ser reemplazado por 4, ya que son 4 las dimensiones, la sentencia es muy sencilla, simplemente calcula la cantidad de hechos y los multiplica por la cantidad de dimensiones, luego resta la cantidad de filas resultantes de la unión entre la tabla de hechos y cada dimensión, si existe una clave foránea para cada clave principal dará la misma cantidad de filas que la tabla de hechos sola.
    Espero te sean de utilidad estos ejemplos, con artefactos Spoon puede hacerse, pero es muy engorroso, yo coloco estas sentencias como entradas de tabla y luego las derivo donde me quede cómodo.
    Las sentencias son solo ejemplos, para hacerlas funcionar bien en MySQL, deberás acomodar la sintáxis.

    Saludos

    Mariano

  6. #6
    Join Date
    Jul 2008
    Posts
    5

    Default gracias

    Hola, gracias por ayudarme voy a intentar la idea que me diste
    saludos
    Marthy

  7. #7

    Default Una contribución más

    Olvidé comentar algo, si bien es trivial, sirve.
    Si quieres generar un único reporte puedes crear flujos que tengan siempre el mismo formato, por ejemplo, estas 3 columnas: detalle, valorNumerico, valorBooleano.
    Cada sentencia SQL (me refiero a las que comenté en la primera respuesta), debe mantener esa forma, por ejemplo:
    SELECT “Si todos los hechos tienen su dimensión, valorNumerico=0” AS observaciones,
    (SELECT COUNT(*)*cantDim FROM tablaHechos) -
    (SELECT COUNT(*) FROM tablaHechos a INNER JOIN dim1 b ON a.fk1=b.id) -
    (SELECT COUNT(*) FROM tablaHechos a INNER JOIN dim2 b ON a.fk2=b.id) -
    (SELECT COUNT(*) FROM tablaHechos a INNER JOIN dim3 b ON a.fk3=b.id) -
    (SELECT COUNT(*) FROM tablaHechos a INNER JOIN dim4 b ON a.fk4=b.id)
    AS valorNumerico, CAST(NULL as TINYINT) AS valorBooleano

    El resultado de lo anterior ser�*a por ejemplo:

    Observaciones valorNumero valorBooleano
    ----------------------------------------------------------------------------------------------------------
    Si todos los hechos....ón, valorNumerico=0 0 null

    Por cada sentencia, hay que conservar la forma, la columna observaciones contendrá una explicación de cómo leer las otras columnas y que valores deben tener en caso de éxito o error, puede que necesites más o menos columnas valor, eso depende del caso. Cada una de las sentencia, como dije en el primer post, debe ser una entrada de tabla, y las distintas entradas debe ser unidas utilizando artefactos Append Stream, solo hay que tener en cuenta que un Append Stream solo une dos flujos iguales, por lo tanto si tienes 3 entradas de tabla (o tres flujos cualquiera), por ejemplo Flujo1, Flujo2 y Flujo3 necesitas 2 Appends, el primero puede unir Flujo1 y Flujo2, la salida de este, por ejemplo llamada Append Stream 1, será una de las entradas para el otro Append Stream que unirá Append Stream1 y Flujo 3.

    Espero haberme explicado y que sirva.

    Mariano
    Last edited by magm; 08-01-2008 at 08:50 AM.

  8. #8
    Join Date
    Jul 2008
    Posts
    5

    Default Muchas gracias te seguire molestando

    Hola, mil gracias por tu ayuda
    Att
    Marthy

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Privacy Policy | Legal Notices | Safe Harbor Privacy Policy

Copyright © 2005 - 2019 Hitachi Vantara Corporation. All Rights Reserved.