Múltiples solicitudes para obtener datos y actualizar datos con origen de datos web

Un usuario Pregunto ✅

kinkheong

Parece que para una sola consulta de fuente de datos web, Power BI Desktop emite una cantidad de solicitudes de URL y la cantidad de solicitudes de URL para una sola consulta aumenta a medida que aumentan los registros que se devolverán.

Tenemos un servidor API REST interno que devuelve un conjunto de datos de valores separados por conductos al recibir una solicitud de URL.
Con fines de prueba, activamos el inicio de sesión en la aplicación REST API para que capture las solicitudes de obtención que se reciben.

Los siguientes son los resultados de los escenarios de prueba con diferentes tamaños de registros y el tiempo de espera establecido en 30 minutos:

  1. Solicitud web que devuelve 9 registros.
    una. Desde que se invoca Obtener datos hasta que se muestra el cuadro de diálogo Cargar, el servidor API REST recibe 3 solicitudes.
    B. Al hacer clic en CARGAR en el cuadro de diálogo, el servidor API REST recibe 2 solicitudes adicionales.
    C. Con cada clic de Actualizar, el servidor API REST recibe 2 solicitudes adicionales.
  2. Solicitud web que devuelve 500K registros
    una. Desde que se invoca Obtener datos hasta que se muestra el cuadro de diálogo Cargar, el servidor API REST recibe 11 solicitudes.
    B. Al hacer clic en CARGAR en el cuadro de diálogo, el servidor API REST recibe 4 solicitudes adicionales.
    C. Con cada clic de Actualizar, el servidor API REST recibe 4 solicitudes adicionales.
  3. Solicitud web que devuelve 1 millón de registros.
    una. La obtención de datos dio como resultado lo que parece un ciclo interminable de solicitudes de obtención de la URL hasta que se agotó el tiempo de espera de 30 minutos.

Si la observación anterior es correcta, entonces para 500 000 registros que tardan aproximadamente unos minutos en responder el servidor, se tardaron 20 minutos en cargarse en Power BI Desktop. Será bastante imposible cargar un conjunto de registros aún más grande.

¿Alguien ha experimentado algo similar?

Gracias por adelantado

Kin Kheong

Mornagli

Hola @kinkheong

Tengo el mismo problema, encontraste solucion?

mabottiglieri

Hola, tengo el mismo problema, Power BI Desktop realiza varias consultas a la misma API.
siempre que el servicio API tarde en responder, PowerBI inicia una nueva consulta a la misma API.

este es el código que estoy usando para hacer la consulta:
Json.Document(Web.Contents(«http://localhost:5001/api/crud/v2/read/bookingDesk»))

¿Hay alguna configuración que pueda establecer para solucionar este problema? algún límite al número máximo de solicitudes?

gracias y saludos,
Manuel André Bottiglieri

pensador profundo

Hola a todos

Después de ponerme en contacto con Microsoft, ¡me proporcionaron una solución que funciona!

Solución:

Excel.Libro(Búfer.binario(Web.Contents(«http://….

Microsoft:

«Binary.Buffer transmite en la memoria el contenido binario pasado a la función, lo que evita que el código M posterior (dependiendo de las funciones utilizadas) genere llamadas adicionales para el mismo contenido binario (PromoteHeaders en su Mquery)».

Espero que esto te ayude a ti también.

jweston

El mismo problema aqui. Hacer ping a nuestra API REST interna y Excel/PowerBI envía varias solicitudes. Cuando la solicitud es para una consulta costosa, mata efectivamente a nuestro servidor. Tenemos los resultados configurados para transmitir, por lo que el servidor no está sobrecargado, pero cuando Excel/PowerBI envía una docena de solicitudes que se abandonan, las consultas aún se ejecutan y las canalizaciones se llenan sin descargar los datos. La opción de tiempo de espera no hace nada. Esto mastica la memoria de nuestro servidor con bastante rapidez. Este es un problema muy frustrante. ¿Hay alguna solución?

pensador profundo

¡2020 y este problema todavía existe! ¿Sin solución?

dpiret

Aquí igual. Power BI con Excel, llamando a un método API RESTful que devuelve un objeto JSON que tarda mucho (tres minutos) en responder.

Parece que Power Query se pone nervioso y envía varias veces la misma solicitud, empeorando las cosas.

La consulta M es así

= Json.Document(Web.Contents("http://domain.com/endpoint",[Timeout=#duration(0,2,0,0)]))

adulto

En respuesta a dpiret

dpiret, ¿obtuviste una solución a este problema? También veo varias solicitudes (tres) cada vez que intento actualizar una determinada consulta y luego se agota el tiempo de espera, pero sigo enviando solicitudes incluso después de eso. Esto es sobrecargar los recursos del servidor con múltiples llamadas.

robinsedlaczek

En respuesta a adulto

Aquí igual. Hay alguna solución a esto ahora???

Mogura27

Estamos teniendo el mismo problema, tengo una única tabla de consulta que es una consulta web a un servidor REST de terceros con una limitación estricta del tráfico. Si PBI solo estuviera haciendo una sola solicitud para esa tabla, estaría bien. En cambio, lo que estoy viendo es que en las tablas dependientes que consisten solo en List.Distinct(PrimaryTable[InterestingColumn]) además genera una consulta duplicada completa de la tabla maestra. Como resultado, mi proveedor recibe 10 llamadas simultáneas en lugar de 1 (rompiendo las limitaciones generales), y no solo eso, PBI sigue regresando para más y más iteraciones de lo mismo mientras construye los modelos de conexión.

Terminé teniendo que implementar un sistema de caché que consultaba a mi proveedor, almacenaba los datos localmente y luego respondía a las llamadas excesivas de PBI localmente a través de la puerta de enlace local. De todos modos, necesitaba la puerta de enlace para envolver las solicitudes, ya que PBI no es compatible con Oauth y mi proveedor lo requiere. Los conjuntos de muestra regresaron lo suficientemente rápido del proveedor como para que no se detuvieran, los conjuntos de producción completos es donde se detuvo y comencé a buscar en el tráfico de consultas.

daxston

hola alguna vez te diste cuenta de esto?

Obtengo lo mismo con una API de MVC. La actualización de Power BI Desktop llega al origen de datos web varias veces.

Gracias,

dax

kinkheong

En respuesta a daxston

Hola dax,

Sospecho que es un error con Power BI Web Data Source ya que las solicitudes repetidas son mucho más cortas que el valor de Tiempo de espera del comando que se especifica en la opción Avanzar.

Por el momento, estoy probando una solución al implementar Varnish Cache Server para la aplicación REST API.
Ayuda al reducir la carga de la aplicación REST API y responder a las solicitudes posteriores de Power BI en cuestión de segundos.
El problema es que Varnish Cache Server no es compatible con SSL y espero que Power BI tenga una solución para esto.

Atentamente
Kin Kheong

@kinkheong

Si está utilizando el modo de importación, puede intentar usar el modo de consulta directa para obtener datos de un conjunto de datos más grande.

Atentamente,

Herbert

rpai27

En respuesta a v-haibl-msft

¿Puede explicar qué quiere decir con modo de importación?

PowerbI acceder a la API varias veces es un gran problema cuando intenta obtener una gran carga útil.

kinkheong

En respuesta a v-haibl-msft

Soy un principiante en Power BI y estoy probando una solución que se basará en extraer datos de una URL.

No parece haber un modo de conectividad de datos para la fuente de datos web.

Gracias y saludos

Kin Kheong

Deja un comentario

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