Anónimo
Como dice el título.
He visto este problema publicado varias veces, pero nunca encontré nada que pueda ayudar.
Mis informes se extraen tanto de una base de datos SQL como de varias listas de SharePoint. SQL dbs importará 100 000 de registros, normalmente más rápido que el tiempo que tarda la lista de SharePoint, que extrae 25 000 filas. Puedo ver en la actualización de datos el tamaño que se ha descargado para la lista de SharePoint, y parece estar extrayendo los datos a una velocidad inferior a 500 kb/s. ¿Qué es esto?
En mi versión de Excel de esta hoja, puedo usar el
let Source = Table.Combine ({ OData.Feed("mysite/_api/web/lists/GetByTitle('mylist')/Items?$filter= Date ge '" & DateSplit(1) & "' and Date le '" & DateSplit(2) & "'"), OData.Feed("mysite/_api/web/lists/GetByTitle('mylist')/Items?$filter= Date ge '" & DateSplit(3) & "' and Date le '" & DateSplit(4) & "'"), OData.Feed("mysite/_api/web/lists/GetByTitle('mylist')/Items?$filter= Date ge '" & DateSplit(5) & "' and Date le '" & DateSplit(6) & "'") }),
Donde el usuario elegirá una fecha y llenará una tabla con las fechas del mes. Básicamente, divide la consulta en tres, debido al umbral límite de 5000, pero es más rápido de lo que sería de otro modo.
Para BI, donde la expectativa es que el usuario pueda elegir cualquier fecha (rango), necesitaré importar todos los datos preferiblemente.
No hay nada exigente en mi consulta,
let Source = SharePoint.Tables("mysite", [ApiVersion = 15]), #"GUID" = Source{[Id="myGUID"]}[Items],
Entonces, ¿qué pasa con el SQL db siendo entonces mucho más rápido que SharePoint Online? ¿Es porque a SharePoint Online se le otorgan menos recursos debido a que no es premium?
mahoneypat
Consulte esta publicación sobre una forma mucho más rápida de extraer datos de la lista SP.
https://community.powerbi.com/t5/Desktop/SharePoint-list-query-alternative-or-optimization/mp/10926…
Saludos,
Palmadita
Hola
En respuesta a mahoneypat
A un alto nivel, ¿cuáles son los pasos que debo seguir para implementar esto?
Estoy iniciando en PBI Desktop
mahoneypat
En respuesta a Hola
En ese enlace, proporcioné un código M tanto en forma de consulta como en forma de función. A continuación se muestra el formulario de consulta. Simplemente péguelo en una consulta en blanco en el Editor avanzado en el editor de consultas sobre el texto existente. Reemplace el texto entre comillas en el sitio, el arrendatario y la lista. Mire la URL de su lista de SharePoint como referencia. Es posible que también deba adaptar la parte codificada de la URL si no coincide. Esto devolverá una Lista, en la que puede hacer clic para obtener una lista de registros, luego convertir esa lista en una tabla y luego expandir los registros eligiendo los campos de interés.
dejar
Fuente =
dejar
sitio = «NombreDeMiSitio»,
inquilino = «NombreDeMiInquilino»,
lista = «NombreDeMiLista»,
getdata = Json.Document(Web.Contents(«https://» & inquilino & «.sharepoint.com/sites/» & sitio & «/_api/web/lists/GetByTitle(‘» & list & «‘)/ artículos?$top=5000″, [Headers=[Accept=»application/json»]]))
en
obtener datos
en
Fuente
Tenga en cuenta que lo anterior devolverá hasta 5000 registros. Si desea usar la paginación para obtener muchos más, debe usar un código M y una llamada web como la siguiente (todavía no he adaptado el formulario amigable anterior para que funcione así). Actualice las partes en <> (elimine el <>). Esto obtiene el conteo de elementos en su lista, hace una lista de números hasta ese conteo por 5000, realiza cada llamada web para que pueda expandir todos los resultados juntos.
Tenga en cuenta que hay tres filas llamadas «fieldselect»; dos deben ser comentados en cualquier momento. Debe elegir dependiendo de si tiene columnas de búsqueda/elección en su lista. Hay una sintaxis de ejemplo en los dos últimos sobre cómo elegir qué campos expandir en la declaración.
Todavía planeo escribir una entrada de blog sobre esto algún día…
dejar
nombre del sitio =»
nombre de lista = «
baseurl = «https://
itemcount = Json.Document(Web.Contents(baseurl&»ItemCount», [Headers=[Accept=»application/json»]]))[value],
skiplist = List.Numbers(0, Number.RoundUp(itemcount/5000), 5000),
#»Convertido a tabla» = Table.FromList(skiplist, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#»Columnas renombradas» = Table.RenameColumns(#»Converted to Table»,{{«Column1», «Skip»}}),
#»Tipo cambiado» = Table.TransformColumnTypes(#»Columnas renombradas»,{{«Omitir», escriba texto}}),
fieldselect = «&$top=5000», // todos los campos sin expansión
//fieldselect = «&$top=5000&$select = Id,Title,Person,Date», // enumera los campos deseados (sin expansión)
//fieldselect = «&$top=5000&$select = Id,Título,Persona/Apellido,Persona/Nombre,Fecha&$expand = Persona», //expandir campos de lista
#»Personalizado agregado» = Table.AddColumn(#»Tipo cambiado», «Elementos», cada Json.Document(Web.Contents(baseurl& «/items?$skipToken=Paged=TRUE%26p_ID=» & [Skip] & selección de campo, [Headers=[Accept=»application/json»]]))),
#»Elementos ampliados» = Table.ExpandRecordColumn(#»Personalizado agregado», «Elementos», {«valor»}, {«valor»}),
#»Valor ampliado» = Table.ExpandListColumn(#»Elementos ampliados», «valor»),
#»Valor1 ampliado» = Table.ExpandRecordColumn(#»Valor ampliado», «valor», {«Id», «Título», «Persona», «Fecha»}, {«Id», «Título», «Persona» , «Fecha»})
en
#»Valor ampliado1″
Saludos,
Palmadita
hugo50
Lo mismo aquí, se tarda años en cargar el archivo CSV de SharePoint al modelo de datos de PowerBI. Es terrible, por favor, Microsoft, haz algo, es tan molesto. Ni siquiera tengo una transformación de datos complicada en la consulta.
joorge_c
Así que usé esto como solución y la actualización toma menos de un minuto.
Estoy exportando cada 7 minutos el par de listas de puntos compartidos a un archivo CSV y volcandolas en una unidad compartida, donde configuro las conexiones PBI.
Hay algunos enlaces para referencia en este flujo. Esto es lo que usé.
http://www.sharepointsamples.com/export-sharepoint-list-items-as-csv-using-microsoft-flow/
Hola
En respuesta a joorge_c
¿Has probado esto con una lista/biblioteca con más de 100k elementos? Al usar PowerShell desde mi escritorio, puedo exportar rápidamente los datos de la lista, pero tengo miedo de usar Flow debido a la posibilidad de que se limite.
Una vez que se configura el informe, espero que una actualización incremental ayude a cerrar la brecha de tiempo de carga.
jonathantr
En respuesta a joorge_c
Gracias @Joorge_C parece que es la única solución. Es bastante decepcionante que tengamos que recurrir a soluciones alternativas tan drásticas para lograr que dos entornos de Microsoft se comuniquen entre sí…
guillermo
Lo mismo aquí, hasta el punto en que se vuelve inutilizable cuando la velocidad de mi línea disminuye, lo que desafortunadamente suele ser el caso. Mi problema no es tanto la lentitud de la consulta, sino el hecho de que no sé cómo evitar que realice la consulta cada vez que presiono Intro para agregar una nueva línea. Se tarda entre 10 y 40 minutos (sí, minutos) en actualizar y aplicar los cambios de la consulta; no es un conjunto de datos grande, solo algunos datos de proyectos que traigo de Microsoft Project (en línea). Seguramente, dado que los datos ya están cargados en la memoria, debería haber una manera de configurarlos para usar la memoria en lugar de consultar la fuente, hasta el momento en que realmente quiera actualizar desde SharePoint, ¿verdad? ¿Quizás alguien de Microsoft podría ayudarnos a explicarnos esto?
guillermo
Lo mismo aquí, hasta el punto en que se vuelve inutilizable cuando la velocidad de mi línea disminuye, lo que desafortunadamente suele ser el caso. Mi problema no es tanto la lentitud de la consulta, sino el hecho de que no sé cómo evitar que realice la consulta cada vez que presiono Intro para agregar una nueva línea. Se tarda entre 10 y 40 minutos (sí, minutos) en actualizar y aplicar los cambios de la consulta; no es un conjunto de datos grande, solo algunos datos de proyectos que traigo de Microsoft Project (en línea). Seguramente, dado que los datos ya están cargados en la memoria, debería haber una manera de configurarlos para usar la memoria en lugar de consultar la fuente, hasta el momento en que realmente quiera actualizar desde SharePoint, ¿verdad? ¿Quizás alguien de @microsoft podría ayudarnos a explicarnos esto?
ChrisW3
Estoy teniendo este mismo problema. ¿Se pregunta si solo sucede cuando supera el límite de visualización de la lista de 5000 elementos en Sharepoint en línea? La lista con la que estoy trabajando actualmente tiene alrededor de 11k registros. No es que realmente importe, solo curiosidad. Me encantaría ver esto arreglado. No creo que la otra forma de hacerlo a través de la consulta OData le brinde tantos datos. Ejemplo, tengo muchos elementos en mi lista con permisos personalizados (compartidos con personas específicas) y tirando con Power Query a través del conector estándar permite el acceso a esas asignaciones de roles de seguridad por elemento.
artio
Hola a todos,
Experimento el mismo problema particularmente con los archivos CSV. ¿Alguien ha encontrado una solución? Ya actualicé el escritorio de PowerBi a la versión de marzo de 2020. La actualización de cada paso puede durar hasta 10 minutos. Si voy a Sharepoint (Cloud) a través de Internet Explorer, el acceso al sitio y los archivos es rápido. Gracias.
leigh_yh
Tengo el mismo problema. Mi informe está conectado a 8 listas en línea de SharePoint que luego se agregan. ¿Habría alguna diferencia si me conecto usando el feed de Odata?
v-yulgu-msft
Hola @Anónimo,
Verifique si existe algún paso en Power Query consumiendo demasiada CPU o memoria. E intente usar Table.Buffer para mejorar el rendimiento de la carga de datos.
Lista de SharePoint Online – Power BI – actualización de consulta lenta
Actualización lenta de los datos de la lista de SharePoint
Atentamente,
Yuliana Gu
Anónimo
En respuesta a v-yulgu-msft
Hola Yuliana,
No tengo nada complicado sucediendo en mis consultas.
Este problema se replica simplemente mediante: Nueva consulta -> Lista de SharePoint -> Examinar a la lista. Eso es todo lo que estoy haciendo y lleva una eternidad.
Otro problema puede ser que SharePoint extraiga todos los datos antes de filtrarlos, a diferencia de SQL.
Anónimo
En respuesta a Anónimo
golpeando esto
Anónimo
En respuesta a Anónimo
Volverá a chocar.
Seguramente otros que usan SharePoint Online tienen la misma preocupación con respecto a cómo el PowerQuery estándar (Excel y BI) descarga tanto tamaño de archivo y tan lentamente.
Nuevamente, en Excel se puede solucionar, pero no en BI por lo que puedo ver, por lo que actualizar los conjuntos de datos será cada vez más lento.
Parece que SharePoint en línea no filtrará los datos en la consulta estándar hasta que se haya descargado todo. Puedo ver esto, en vista previa, cuando filtro una columna y encuentro que descarga el mismo tamaño de archivo nuevamente antes de completar el filtro
Anónimo
En respuesta a Anónimo
Estoy teniendo exactamente el mismo problema,
Originalmente, pensé que era un archivo antiguo de powerbi con demasiadas cosas (consultas, etc.), así que comencé uno desde cero para usar solo dos listas y es insoportablemente lento, la descarga de sharepoint a powerbi va a una velocidad de 500 Kb/s ( no es mi conexión, lo intenté con dos muy buenas conexiones a Internet)
¿Cómo diablos se supone que debo hacer informes muy simples en listas grandes? (son más de 30000+ entradas)
@Anonimo escribió:
Volverá a chocar.
Seguramente otros que usan SharePoint Online tienen la misma preocupación con respecto a cómo el PowerQuery estándar (Excel y BI) descarga tanto tamaño de archivo y tan lentamente.
Nuevamente, en Excel se puede solucionar, pero no en BI por lo que puedo ver, por lo que actualizar los conjuntos de datos será cada vez más lento.
Parece que SharePoint en línea no filtrará los datos en la consulta estándar hasta que se haya descargado todo. Puedo ver esto, en vista previa, cuando filtro una columna y encuentro que descarga el mismo tamaño de archivo nuevamente antes de completar el filtro
Anónimo
En respuesta a Anónimo
¿Es posible tener una respuesta oficial sobre esto?
¿Es que el conector está simplemente mal hecho, es un fallo de nuestros lados, o es otra cosa?
Y sí, @Anónimo, noto lo mismo con la velocidad de conexión lenta. Es apenas 400 KB/s, lo que es inaceptable.
Para ser claros: si escribo una conexión VBA SQL, la extrae mucho más rápido.
Otra cosa: Vaya a SharePoint Online -> Su lista -> Exportar a Excel. Notarás que lo tira mucho más rápido, entonces, ¿qué pasa con la conexión lenta de PowerQuery?
jvondermans
En respuesta a Anónimo
Tengo el mismo problema, a veces la velocidad de descarga cae a 2 KB/s, por lo que los 10 MB que intento recuperar tardan años…
Anónimo
En respuesta a jvondermans
Tener el mismo problema y nunca encontrar una solución. Experimento las mismas velocidades que mencionó @jvondermans sin solución. Intenté cambiar algunas de las configuraciones de opciones relacionadas con la carga de datos, pero eso nunca mostró cambios significativos.