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:
Tan pronto como expando este registro y selecciono cualquiera de estas columnas (en negrita a continuación) la consulta se ralentiza:
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
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.