Varias solicitudes para obtener datos y actualizar datos con fuente de datos web

Un usuario Pregunto ✅

kinkheong

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

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

A continuación se muestran los resultados de los escenarios de prueba con diferentes tamaños de registros y 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 de la 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 Refresh, el servidor de 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 de la 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 Refresh, 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 parecía un bucle sin fin de solicitudes de obtención a la URL hasta un tiempo de espera de 30 minutos.

Si la observación anterior es correcta, para los registros de 500K, que demoran aproximadamente un minuto en responder el servidor, se cargaron 20 minutos en Power BI Desktop. Será absolutamente imposible cargar un juego de registros aún mayor.

¿Alguien ha experimentado algo similar?

Gracias por adelantado

Kin Kheong

Mornagli

Hola @kinkheong

Tengo el mismo problema, ¿encontraste una solución?

MABottiglieri

Hola, tengo el mismo problema, Power BI Desktop realiza varias consultas a la misma API.
Siempre que el servicio de 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’e Bottiglieri

pensador profundo

Hola a todos

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

Solución:

Excel.Workbook (Binary.Buffer(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 (según las funciones utilizadas) genere llamadas adicionales para el mismo contenido binario (PromuevaHeaders en su Mquery)».

Espero que esto también te ayude.

jweston

El mismo problema aqui. Hacer ping a nuestra API REST interna y Excel / PowerBI envía múltiples solicitudes. Cuando la solicitud es para una consulta costosa, efectivamente mata a nuestro servidor. Tenemos los resultados configurados para transmitir para 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 tuberías 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 de 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)]))

aduval

En respuesta a dpiret

dpiret, ¿obtuvo una resolución para 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 continúo enviando solicitudes incluso después de eso. Esto es sobrecargar los recursos del servidor con las múltiples llamadas.

Robinsedlaczek

En respuesta a aduval

Aquí igual. ¿Hay alguna solución para 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 estricta limitación de tráfico. Si PBI solo hiciera una solicitud para esa tabla, estaría bien. En cambio, lo que veo es que en las tablas dependientes que constan solo de 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 los aceleradores generales), y no solo eso, PBI sigue regresando por más y más iteraciones de lo mismo mientras se construyen los modelos de conexión.

Terminé teniendo que implementar un sistema de caché que consultaría a mi proveedor, almacenaría los datos localmente y luego responderí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 detuvieron y comencé a buscar en el tráfico de consultas.

Daxston

Hola, ¿alguna vez resolviste esto?

Obtengo lo mismo con una API 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 Command Timeout que se especifica en la opción Advance.

Por el momento, estoy probando una solución al implementar Varnish Cache Server para la aplicación REST API.
Ayuda al reducir la carga en la aplicación de la API REST y responder a las solicitudes posteriores de Power BI en 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 utilizar 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 *