Prevención y administración de errores de actualización en Power BI

Share on facebook
Share on twitter
Share on linkedin
Share on telegram
Share on whatsapp

Contenidos

En este artículo, voy a compartir con ustedes un concepto para administrar fallas de actualización en informes de producción de PowerBI.com. En un mundo perfecto, debe configurar sus consultas para que Ellos «evitan» que ocurran posibles problemas de falla de actualización., sino también para notificarte cuando algo sale mal sin que la actualización del informe falle en primer lugar. Hay muchas cosas que pueden salir mal con las actualizaciones de informes y probablemente no pueda evitar que ocurran todas. En el ejemplo que utilizo en este artículo, le mostraré cómo evitar una falla de actualización causada por duplicados que aparecen en una tabla de búsqueda después de que se ha creado el informe, se ha cargado el modelo en PowerBI.com y se ha configurado la actualización programada. usando una puerta de enlace. Si durante la actualización se produce una clave duplicada en cualquiera de las tablas de búsqueda en el modelo de datos, la actualización falla y los datos actualizados no se publican.

Para resolver este problema en particular, necesito:

  1. Elimine de forma preventiva los posibles duplicados para permitir que la actualización se complete sin fallas.
  2. Realice un seguimiento de las claves duplicadas que puedan aparecer en las tablas de búsqueda después de que el informe se ponga en producción.

Explicaré cómo manejar tal situación con la base de datos Adventure Works como ejemplo. El estado final es tener un conjunto de consultas que:

  1. Prepara las tablas de búsqueda (no cargue esta consulta de preparación)
  2. Ramifique una tabla de búsqueda para cargar (Productos en este ejemplo). Asegúrese de que se eliminen los duplicados antes de cargar
  3. Ramifique una tabla de auditoría manteniendo solo los duplicados para saber que se ha producido un problema.

Consulte el flujo de trabajo de consulta final a continuación.

query-dep-1-1-2075514

El problema

En la base de datos de Adventure Works, tenemos 4 tablas de búsqueda y 1 tabla de datos. Cada una de las tablas de búsqueda tiene una relación de uno a varios con la tabla de datos, como se muestra a continuación.

refresh-failure-alerts-1-7464722

Consideremos, por ejemplo, la tabla Productos (lo mismo se aplica a todas las tablas de búsqueda en el modelo de datos). Inicialmente con este modelo de datos no hay duplicados en los Productos[ProductKey] – de lo contrario, no podría crear la relación. Pero puede surgir un problema mientras el informe está en producción con actualizaciones programadas. Si una actualización crea un duplicado en la tabla Productos, es decir, la ProductKey aparece dos veces, la actualización falla y evita que los nuevos datos se publiquen.

refresh-failure-alerts-2-1661616

La solución

La solución, como se sugirió anteriormente, es ramificar la consulta de la tabla de búsqueda, luego

  1. Elimine de forma preventiva los duplicados para permitir la actualización sin fallas.
  2. Realice un seguimiento de las claves duplicadas que puedan aparecer en las tablas de búsqueda después de que el informe se ponga en producción.

Editar la consulta de productos

Para crear la tabla de preparación:

  • Lanzar Power Query
  • Seleccione la tabla Productos.
  • Vaya al último paso de la consulta Productos, haga clic con el botón derecho y seleccione Extraer anterior. Esto moverá todos los pasos anteriores de la tabla Productos actual a una nueva consulta.
  • Llámelo ProductsStaging.

Ahora, la nueva consulta ProductsStaging contiene todos los pasos que formaban parte de la consulta de Productos y la consulta de Productos se refiere a ProductsStaging en el primer paso. Debe configurar la consulta de ensayo para que no se cargue (desactive la habilitación de carga).

En la vista Dependencias de consultas, puede encontrar que la tabla ProductsStaging ahora alimenta la tabla Products.

query-dep-2-5091955

El truco ahora es eliminar cualquier duplicado potencial de la tabla Productos de forma preventiva para que no haya fallas de actualización.

  • Seleccione la tabla Productos.
  • Haga clic con el botón derecho en la columna ProductKey y seleccione Eliminar duplicados.

No importa si hay duplicados o no en este momento. La tabla Productos ahora tiene el paso Eliminar duplicados incluido como última tarea, y eso evitará que los duplicados fluyan durante una actualización. Esta eliminación de duplicados es bastante brutal: solo conserva el primero y elimina el segundo. Tal vez mantenga el correcto, tal vez no, pero lo más importante es que el informe se actualizará. Entonces, en este punto, me gustaría saber si se produjo algún duplicado pero se eliminó con éxito mediante el paso preventivo para poder ir y solucionar el problema. Para esto, creo una segunda tabla (ramificada desde la tabla ProductsStaging) que captura la información sobre cualquier aparición de duplicados.

  • Haga clic con el botón derecho en la tabla ProductsStaging y seleccione Referencia.
  • Esto crea una nueva consulta, llámela ProductAudit.

Utilizo la tabla ProductAudit para capturar cualquier aparición de duplicados que ocurra después de una actualización.

  • En la tabla ProductAudit, haga clic en la columna ProductKey.
  • En el menú, haga clic en Inicio -> Agrupar por.
  • La agrupación es por ProductKey y seleccione la columna Count por Count Rows.
  • Esto crea una tabla de 2 columnas que contiene todas las claves de producto y una nueva columna que indica el número de apariciones de cada clave. Inicialmente, la columna estará formada solo por unos, ya que inicialmente no hay duplicados.
  • A continuación, filtre la columna Recuento para mantener solo las filas con valor> 1, es decir, retendrá solo las claves de producto que tienen duplicados. La tabla está vacía en este momento ya que no hay duplicados.

Cerrar y aplicar los cambios.

Pasos para crear una alerta

En la tabla ProductsAudit, cree una nueva medida

Product Duplicates = COUNTROWS(ProductsAudit) + 0

El +0 es solo cosmético. Obliga a un resultado 0 en lugar de un espacio en blanco.

  • Cree una página de auditoría en el informe.
  • Coloque una imagen de tarjeta en la página del informe y agregue la medida [Product Duplicates] al Card.

La tarjeta muestra 0 ya que no hay duplicados en este momento. Si una actualización crea duplicados, la tarjeta mostrará un número> = 1.

Con todo esto configurado, publique el informe en Power BI y asegúrese de que la puerta de enlace y la actualización programada estén configuradas.

Administrar alertas

Las alertas se configuran en un panel en PowerBI.com. Así que después de publicar el nuevo informe.

  • Fije el objeto visual de la tarjeta a un panel de auditoría.
  • Haga clic con el botón derecho en la Tarjeta y seleccione Administrar alertas.
  • En el Panel de administración de alertas, haga clic en Agregar regla de alerta.
  • Establezca la condición como Umbral en 0. es decir, si el producto se duplica> 0, se me enviará un correo electrónico de alerta.

refresh-failure-alerts-5-7372640

Después de configurar esta alerta, simulé un problema cambiando mi fuente de datos y agregando una clave de producto duplicada en la tabla Productos.

¡Bingo! Recibí el siguiente correo electrónico.

alert-for-duplicates-4558690

Por lo tanto, el informe de producción se actualizará según lo planeado y, además, recibo una alerta para que sepa que hubo un problema y puedo comenzar a solucionarlo.

Envolver

He mostrado la técnica en una sola tabla de búsqueda. En realidad, lo construiría en todas y cada una de las tablas de búsqueda que puedan ser un problema. También puede aplicar esta técnica a cualquier otro defecto de datos rastreable que pueda ocurrir en su entorno. Si tiene muchos casos de uso diferentes, puede modificar la técnica para agregar todas las tablas de auditoría en una sola tabla final que enumere una fila para cada error y algún tipo de mensaje de error para usted.

Comentarios

¿Qué piensas? ¿Qué otros problemas de actualización de producción necesita atrapar y prevenir? ¿Algún otro comentario?

¿Quiere aprender más trucos y sugerencias de Power Query?

Puedes aprender inscribiéndote en mi Capacitación en línea de Power Query. Es un curso a su propio ritmo que tiene 7.5 horas de contenido de video, ejemplos resueltos y material del curso para que practique sus nuevas habilidades.

!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version=’2.0′;
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window,document,’script’,
‘https://connect.facebook.net/en_US/fbevents.js’);
fbq(‘init’, ‘639916389503636’);
fbq(‘track’, ‘PageView’);

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.