Paralelismos en el diagnóstico de Datos de Power Query. Función M

La mayor parte del tiempo que vemos a los datos en el Diagnóstico de queries de Power Query nos encontramos mirando los datos de un solo query. ¿Pero qué pasa con los datos de todos los queries que ejecutamos por cada actualización al conjunto de datos?

Para realizar esta demostración, vamos a importar cualquier base con el diagnóstico de Datos de Power Query en BI. Vamos a la pestaña Herramintas y presionamos en «Iniciar Diagnóstico».

Ahora, importa cualquier base de Datos. Yo he creado una consulta con mi Localhost y la base WideWorldImportersDW de la cual ya hablamos en esta entrada.

diagnóstico de Datos Power BI

Cuando termines de importar, presiona en detener diagnóstico y te apareceran las siguientes bases de consulta. Estas bases nos serviran para analizar el paralelismo de los Datos.

Analizando el Paralelismo del diagnóstico de Datos en Power Query.

Para poder analizar el paralelismo en el diagnóstico de Datos tenemos la siguiente función M:

(InputTable as table) => 
   let
     Source = InputTable,
     EarliestStart = List.Min(Source[Start Time]),
     AddRelativeStart = Table.AddColumn(
         Source, 
         "Relative Start", 
         each [Start Time] - EarliestStart
       ),
     AddRelativeEnd = Table.AddColumn(
         AddRelativeStart, 
         "Relative End", 
         each [End Time] - EarliestStart
       ),
     SetToDurations = Table.TransformColumnTypes(
         AddRelativeEnd, 
         {
           {"Relative Start", type duration}, 
           {"Relative End", type duration}
         }
       ),
     CalculatedTotalSeconds
       = Table.TransformColumns(
           SetToDurations, 
           {
             {
               "Relative Start", 
               Duration.TotalSeconds, 
               type number
             }, 
             {
               "Relative End", 
               Duration.TotalSeconds, 
               type number
             }
           }
         ),
     GroupedRows = Table.Group(
         CalculatedTotalSeconds, 
         {"Id", "Query"}, 
         {
           {
             "Relative Start", 
             each List.Min([Relative Start]), 
             type number
           }, 
           {
             "Relative End", 
             each List.Max([Relative End]), 
             type number
           }
         }
       ),
     MergeColumns = Table.AddColumn(
         GroupedRows, 
         "Id Query", 
         each Text.Combine({[Id], [Query]}, " "), 
         type text
       ),
     IdToNumber = Table.TransformColumnTypes(
         MergeColumns, 
         {{"Id", type number}}
       )
   in
     IdToNumber

Si invocamos esta función y la pasamos en el diagnóstico de queries «Detallado» tenemos lo siguiente:

Y obtendremos un query que nos da una tabla que se ve así:

diagnóstico de Datos Power Query

Esta tabla tiene una fila por cada query de Power Query que fue ejecutado mientras que el seguimiento de diagnóstico de Datos estaba corriendo, así como también:

  • Una columna de IDs para identificar cada ejecución única.
  • El nombre del query que hemos ejecutado.
  • Una columna de ID de Query que vincula las dos columnas anteriores y
  • Columnas de Inicio Relativo y Final Relativo. Que nos dan el número de segundos desde el tiempo de inicio del primer query ejecutado hasta el tiempo final del query en la fila actual.

Visualizar el diagnóstico de Datos.

Cargar los datos en Power BI nos permite crear un gráfico de barras apiladas con ID Query en el eje e Inicio Relativo y Fin Relativo juntos en los valores:

Si establecemos:

  • La propiedad «Color de Datos» de los valores de Inicio Relativo a blanco (o cual sea el color de fondo) para que sea invisible, y
  • El eje de nuestro gráfico de barras apilado para que esté ordenado por Inicio Relativo en orden ascendente.

Obtendremos un visual que se vea de esta forma:

diagnóstico de Datos Power Query 2

Tenemos una especie de gráfico de Gantt en donde el eje X nos muestra el número de segundos desded el inicio de la ejecución del primer query y cada barra nos muestra los tiempos de inicio y fin de cada query, haciendo fácil el poder ver cuáles queries son ejecutados en paralelo.

Paralelismos en el diagnóstico de Datos de Power Query. Función M

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll hacia arriba