cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Syndicate_Admin
Administrator
Administrator

Consultas anidadas y actualización lenta de datos

Hola a todos,

Esperando ayuda sobre un problema que tengo con tablas anidadas /records /lists en Power BI.

Estoy usando el conector de Active Directory en Power BI para obtener miembros de grupos de AD. Para obtener los nombres de usuario de los miembros es necesario expandir la columna de grupo y, a continuación, volver a expandirse para acceder a la columna group.member. Si se detiene allí, la consulta se ejecuta en unos minutos.

Sin embargo, para obtener el siguiente nivel y obtener los datos requeridos de esa columna, se requiere otro procedimiento de expansión para obtener givenname y distinguishedname u otras columnas (#"Expanded group.member1") en el ejemplo siguiente.

He leído que la consulta lenta se debe a "Desafortunadamente, este método genera una llamada individual a la segunda tabla para cada fila de la primera tabla".

https://learn.microsoft.com/en-us/power-query/optimize-expanding-table-columns

El artículo indica dividir la consulta para evitar estas llamadas individuales. Como principiante, aquí es donde me estoy quedando atascado. No puedo encontrar la manera de obtener estos datos sin terminar con las llamadas individuales. ¿Alguien puede ayudar con cómo cambiaría la consulta a continuación u obtendría la información requerida?

He intentado copiar los datos o hacer un Table.ExpandRecordColumn en una consulta independiente, pero no puedo resolver las llamadas y la consulta lenta. Cada vez que intento algo, me atrapa tener que expandir los datos anidados y ralentizar todo (tarda más de 12 horas en ejecutar la consulta)

Gracias por cualquier consejo o ideas de transformación.

Cuando expando la columna group.member todo se ralentiza:

TonyT2232_0-1678789695288.png

Tan pronto como expando este registro y selecciono cualquiera de estas columnas (en negrita a continuación) la consulta se ralentiza:

TonyT2232_1-1678789842404.png


dejar
Origen = ActiveDirectory.Domains("us.domain.com"),
#"us.domains.com" = Source{[Domain="us.domain.com"]}[#"Categorías de objetos"],

group1 = #"us.domain.com"{[Category="group"]}[Objetos],

#"Expanded securityPrincipal" = Table.ExpandRecordColumn(group1, "securityPrincipal", {"sAMAccountName"}, {"securityPrincipal.sAMAccountName"}),
#"Grupo expandido" = Table.ExpandRecordColumn(#"SecurityPrincipal expandido", "grupo", {"miembro"}, {"grupo.miembro"}),
#"Expanded group.member" = Table.ExpandListColumn(#"Grupo expandido", "group.member"),
#"Expanded group.member1" = Table.ExpandRecordColumn(#"Expanded group.member", "group.member", {"givenName", "distinguishedName"}, {"group.member.givenName", "group.member.distinguishedName"})
en
#"Expandido group.member1"

Gracias

Tony

1 REPLY 1
Syndicate_Admin
Administrator
Administrator

Esto es inútil en Power BI. Obtiene un rendimiento ligeramente mejor en Powershell. ¡Cuidado con la recursividad!!! Idealmente, su empresa proporciona exportaciones regulares de AD para obtener la información que necesita.

Helpful resources

Announcements
Winner of T-Shirt Design

Power BI T-Shirt Design Challenge 2023

Find out who won the T-Shirt Design Challenge and the top 3 finalists.

March 2023 Update3

Power BI March 2023 Update

Find out more about the March 2023 update.

Top Kudoed Authors