429 Error Fuente de la lista de SharePoint

Un usuario Pregunto ✅

Cigo

Hola

Soy relativamente nuevo en PBI y consultas y trato de resolver un problema que mi organización tiene actualmente con errores 429 en flujos de datos que acceden a múltiples listas de SharePoint como fuente. La configuración actual es que hay un flujo de datos con una entidad para cada una de las 15 listas a las que se accede, que luego alimenta los flujos de datos secundarios para manipular y formatear los datos antes de presentarlos en los informes.

La mayoría de estas listas actualmente tienen menos de 1000 filas de datos, una de las cuales contiene 3500. Regularmente recibimos 429 errores para la lista con 3500 filas. Desafortunadamente, actualmente estamos restringidos a usar listas de SP como la fuente de datos principal y nos sorprendió que estemos enfrentando estos problemas en un volumen de datos tan pequeño. Los flujos de datos se ejecutan actualmente cuatro veces al día con alrededor de 3 horas entre cada actualización.

Para evitar esto, actualmente estoy buscando retrasar las llamadas al servicio SP para evitar el problema de la limitación. Eché un vistazo a las diversas publicaciones realmente útiles de Chris Webb para usar la función InvokeAfter, pero estoy luchando por ver cómo integrar esto con la fuente de la tabla SP.

Probé lo siguiente, pero no parece haber afectado los tiempos de actualización, por lo que asumo que el retraso solo se aplica a nivel de tabla y no por fila. Me imagino que probablemente lo estoy insertando en el paso equivocado o necesito agregar una columna de índice/personalizada para hacer referencia. También estoy bastante restringido debido a las políticas de la organización en lo que puedo hacer e, idealmente, necesito encontrar una solución que se pueda lograr desde dentro de la consulta. Si alguien pudiera ofrecer algún consejo sobre cómo se puede hacer esto o una alternativa para evitar estos errores, sería muy apreciado.

dejar
Fuente = Función.InvocarDespués(
()=>SharePoint.Tablas(«https://»URL DE LA ORGANIZACIÓN AQUÍ»», [ApiVersion = 15]),
#duración(0,0,0,1)
),
#»Navegación 1″ = Fuente{[Id = «——————–«]}[Items],

mahoneypat

El problema parece ser que cada una de las llamadas de su lista de SP está hablando demasiado tiempo. Consulte este artículo/video para saber cómo obtener datos de las listas de SharePoint mucho más rápido.

Obtenga datos de listas de SharePoint… pero rápido: Hoosier BI

Además, ¿cómo combina las 15 listas/consultas? Con suerte, los está agregando y no fusionando (lo que puede ralentizar las cosas).

Saludos,

Palmadita

En respuesta a Cigo

Suspiro.

Lamentablemente, recibe el mensaje 429 Demasiadas solicitudes porque SharePoint cree que está realizando demasiadas llamadas a la vez y lo está limitando. Tengo un ticket abierto en esto. La versión 2 del conector de listas de SharePoint eventualmente corregirá esto, pero actualmente faltan datos que necesito para los informes de producción.

Si puede usar el conector de listas v2, inténtelo.

¡Gracias!

–Treb

mahoneypat

El problema parece ser que cada una de las llamadas de su lista de SP está hablando demasiado tiempo. Consulte este artículo/video para saber cómo obtener datos de las listas de SharePoint mucho más rápido.

Obtenga datos de listas de SharePoint… pero rápido: Hoosier BI

Además, ¿cómo combina las 15 listas/consultas? Con suerte, los está agregando y no fusionando (lo que puede ralentizar las cosas).

Saludos,

Palmadita

Cigo

En respuesta a mahoneypat

Hola Pat

Gracias por la respuesta. Por lo tanto, el flujo de datos en cuestión no está realizando ningún tipo de fusión o agregación entre las listas, eso se lleva a cabo en flujos de datos separados que usan las entidades vinculadas de este flujo de datos que estamos discutiendo. Los flujos de datos que completan la fusión/añadidos y otros pasos similares están configurados para actualizarse una hora más tarde y tienen un promedio de menos de cinco minutos para los tiempos de actualización.

El flujo de datos con los errores 429 simplemente se configura con una entidad conectada a cada lista de SP y la mayoría de ellos se actualizan con relativa rapidez. Sin embargo, el que está conectado a la lista de SP con 3500 registros tarda entre 15 y 20 minutos (también hay una lista con más de 2000 registros y esto también tarda 15 minutos impares). La lista de SP en cuestión consta de 40 campos de una sola línea de texto, varias líneas de texto o formatos de elección.

¿Estoy malinterpretando que el error 429 se debe a demasiadas solicitudes al servicio SP en un corto espacio de tiempo? Si no, ¿no me gustaría tratar de reducir el número agregando un retraso en lugar de tratar de hacer que las solicitudes sean más rápidas?

También noté que cuando se usan flujos de datos en lugar del escritorio PBI, no parece haber una opción para seleccionar la versión del conector que aparece en su video. ¿Sabe si hay alguna forma de seleccionar la versión del conector en un flujo de datos y si puede cambiar de v1 a v2 en un flujo de datos existente?

Intenté los pasos en su video y logré que los datos aparecieran en la consulta usando lo siguiente, sin embargo, cuando intento guardar el flujo de datos, aparece el error «No se puede guardar el flujo de datos. Una o más tablas hacen referencia a datos dinámicos». fuente.»

dejar
nombre del sitio = «https:// «,
// si un subsitio usa «Sitio/Subsitio»
nombre de lista = « «,
baseurl = nombre del sitio & «/_api/web/lists/GetByTitle(‘» & Lista de nombres & «‘)/»,
itemcount = Json.Documento(
Web.Contents(baseurl & «Recuento de elementos», [Headers = [Accept = «application/json»]])
)[value],
skiplist = Lista.Números(0, Number.RoundUp(itemcount / 5000), 5000),
#»Convertido a tabla» = Table.FromList(skiplist, Splitter.SplitByNothing(), nulo, nulo, ExtraValues.Error),
#»Columnas renombradas» = Table.RenameColumns(#»Converted to Table», {{«Columna1», «Saltar»}}),
#»Tipo cambiado» = Table.TransformColumnTypes(#»Columnas renombradas», {{«Saltar», escribe texto}}),
camposeleccionar = «&$superior=5000»,
// todos los campos sin expansión
// selección de campos = «&$top=5000&$select = Id,Title,Person,Date», // enumera los campos deseados (sin expansión)
//fieldselect = «&$top=5000&$select=Id,Title,Choice,LookupColumn/Title,LookupColumn/Project,LookupColumn/ProjectStatus,Date,Person/LastName,Person/FirstName,Person/EMail&$expand=LookupColumn,Person «,
Custom1 = Table.AddColumn(#»Tipo cambiado», «Elementos», cada Json.Documento(
Web.Contents(
baseurl & «/elementos?$skipToken=Paged=TRUE%26p_ID=» & [Skip] & selección de campo,
[Headers = [Accept = «application/json»]]
)
)),
#»Elementos ampliados» = Table.ExpandRecordColumn(Custom1, «Elementos», {«valor»}, {«valor»}),
#»Valor expandido» = Table.ExpandListColumn(#»Elementos expandidos», «valor»)
en
#»Valor expandido»

¡Gracias de nuevo!

En respuesta a Cigo

Suspiro.

Lamentablemente, recibe el mensaje 429 Demasiadas solicitudes porque SharePoint cree que está realizando demasiadas llamadas a la vez y lo está limitando. Tengo un ticket abierto en esto. La versión 2 del conector de listas de SharePoint eventualmente corregirá esto, pero actualmente faltan datos que necesito para los informes de producción.

Si puede usar el conector de listas v2, inténtelo.

¡Gracias!

–Treb

Deja un comentario

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