Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!Vote for your favorite vizzies from the Power BI Dataviz World Championship submissions. Vote now!
Estimados todos
Por favor, necesito vuestra ayuda con el siguiente error. Actualmente tengo un PBI modelado con una API creada en MongoDB, pero me aparece el siguiente error: "La conexión ha terminado inesperadamente".
¿Hay alguna forma de intervenir en la consulta dándole más tiempo?
Saludos
Rodrigo
Gracias por ponerte en contacto con el Foro de la Comunidad de Microsoft.
Hola @tharunkumarRTK , gracias por tu rápida respuesta.
Hola @rod_puente , además de @tharunkumarRTK respuesta, he añadido un punto más.
Utiliza Actualización Incremental, crea parámetros de RangeStart / RangeEnd FechaHora. Filtra tu consulta en una columna de Fecha/FechaHora: ColumnaFechaFecha >= Inicio y ColumnaFechaFecha < FinDeRango.
En Modelo -- > Actualización incremental, elige como Almacenar últimos 3 años / Actualizar últimos 5 días. Publica, actualiza una vez para materializar particiones, y luego las actualizaciones posteriores se aceleran.
Espero que esta información te ayude. Por favor, házganos saber si tiene más dudas.
Saludos
Dinesh
Por favor, prueba los siguientes pasos para solucionar el problema.
1. Crear parámetros, en Power BI Desktop, gestionar parámetros --> nuevo parámetro.
Parámetro 1
Nombre: RangeStart
Tipo: Fecha/Hora
Valor actual: 01/01/2021 00:00:00
Parámetro 2
Nombre: RangeEnd
Tipo: Fecha/Hora
Valor actual: Ahora
Nota: El tipo de dato debe ser Fecha/Hora, no Fecha.
2. Por favor, consulta a continuación un ejemplo de consulta de API Base de MongoDB y haz los cambios en tu código M.
Sea
Fuente =
Json.Document(
Contenido web(
"https://data.mongodb-api.com/app/<app-id>/endpoint/data/v1/action/find",
[
Encabezados = [
#"Tipo-Contenido" = "aplicación/json",
#"api-key" = "<API KEY>"
],
Contenido = Texto.ToBinary(
Json.FromValue([
dataSource = "Cluster0",
base de datos = "SalesDB",
colección = "Pedidos"
])
),
Tiempo muerto = #duration(0, 0, 15, 0)
]
)
),
Documentos = Fuente[documentos],
ToTable = Table.FromList(Documents, Splitter.SplitByNothing()),
Expandido = Tabla.ExpanderColumnRegistro(
ToTable,
"Columna1",
{"ordenFecha","ordenId", "importe"}
FilteredByDate =
Table.SelectRows(
Ampliado,
cada uno
[ordenFecha] >= RangeStart
y [ordenFecha] < RangeEnd
)
en
Ampliado
3. Verifica tu plegado de consultas, en Power Query Editor, haz clic derecho en FilteredByDate y selecciona Ver consulta nativa. Si está HABILITADO, no hay problema. Si está desactivada, tu API no soporta filtrado del lado del servidor, debes empujar el filtro dentro del cuerpo de la API.
Por favor, consulte a continuación un filtro de ejemplo de MongoDB.
Contenido = Texto.ToBinary(
Json.FromValue([
dataSource = "Cluster0",
base de datos = "SalesDB",
colección = "Pedidos",
filter = [
ordenFecha = [
"$gte" = RangoInicio,
"$lt" = ExtremoAlcance
]
]
])
)
4. Configurar la actualización incremental en el modelo, ir a la vista del modelo -->seleccionar tu tabla --> abrir la actualización incremental.
Configurar:
Habilitar la actualización incremental
Filas de tiendas de los últimos 3 años
Refrescar filas de los últimos: 5 días
Haz clic en Aceptar y Publicar en Power BI Service
5. PRIMER refresco en Power BI Service, Power BI crea particiones para 3 años de datos
6. Optimización del lado de MongoDB, en MongoDB, asegúrese de que exista debajo del índice:
Db. Orders.createIndex({ orderDate: 1 })
Nota: Sin el índice mencionado, los tiempos de espera continúan incluso con una actualización incremental.
Por favor, consulta el enlace más abajo.
Espero que esta información te ayude. Por favor, házganos saber si tiene más dudas.
Saludos
Dinesh
No hemos tenido noticias tuyas sobre la última respuesta y solo volvíamos a ver si ya tienes una solución. Y, si tienes alguna pregunta adicional, no dudes en decírnoslo.
Saludos
Dinesh
No hemos tenido noticias tuyas sobre la última respuesta y solo volvíamos a ver si ya tienes una solución. Y, si tienes alguna pregunta adicional, no dudes en decírnoslo.
Saludos
Dinesh
Podría deberse a las restricciones implementadas en el extremo original. Quizá puedas consultar con tu equipo de fuentes y preguntar si hay alguna restricción de este tipo.
Como estás buscando una solución alternativa para añadir algo de retardo a cada consulta, te sugeriría que eches un vistazo a este blog escrito por Chris Webb, donde explicó cómo puedes añadir retardo usando funciones M (Function.InvokeAfter)
https://blog.crossjoin.co.uk/2015/04/30/using-function-invokeafter-in-power-query/
Conéctate en LinkedIn
Lee mis blogs aquí: techietips.co.in
|
Vote for your favorite vizzies from the Power BI World Championship submissions!
If you love stickers, then you will definitely want to check out our Community Sticker Challenge!
Check out the January 2026 Power BI update to learn about new features.