pamboys09
Hola,
Soy nuevo en Power BI y quiero saber si esto es posible.
Estamos extrayendo de un enlace, pero la desventaja es que solo podemos extraer 10,000 filas a la vez.
¿Cómo puedo sacar más de 10.000 filas?
En la URL, solo se requiere que ingrese el Código del token y la Fecha de inicio y la Fecha de finalización requeridas.
Gracias
mahoneypat
Si su API tiene la opción de incluir un $skip o $skiptoken en la URL, puede generar una lista de números que aumentan en 10 000 hasta el número de filas que tiene en los datos y luego concatenar el valor de esa fila en el llamada web Luego expanda la columna de Tablas para combinar todos los resultados.
List.Numbers(0,10, 10000) //por ejemplo
Convierta a tabla, luego agregue una columna personalizada con el paso web.contents (incrustando la nueva columna de números para el valor de omisión.
Saludos,
Palmadita
pamboys09
En respuesta a mahoneypat
@mahoneypat
De acuerdo, le preguntaré al proveedor si permite omitir
@PhilipTreacy
Probaré esto si funciona.
A veces, si extraigo por día, el problema es que a veces 1 día de datos es demasiado y, a veces, supera el límite de 10,000. esa es la que me preocupa. Pero me pondré en contacto contigo, lo probaré.
felipetreacy
En respuesta a mahoneypat
Hola @pamboys09
He modificado mi código original para que coincida más con el tuyo, pero aún tendrás que hacer algunas modificaciones.
let
url= "https://jsonplaceholder.typicode.com/todos/1",
GetPage = (Page) =>
let
Source = Json.Document(Web.Contents(url,
[
Query = [
StartDate = Date.ToText(Date.AddDays(Date.From(DateTime.LocalNow()), - Page),"yyyy-MM-dd"),
EndDate = Date.ToText(Date.AddDays(Date.From(DateTime.LocalNow()), - 0),"yyyy-MM-dd")
]
]
))
in Source,
PageIndices = { 1 .. 5 },
Pages = List.Transform(PageIndices, each GetPage(_))
in
Pages
Originalmente dijo que tiene que especificar StartDate y EndDate para que estos parámetros se incluyan como parte de la Consulta registro. Agregue el nombre y el valor de su parámetro de token en este registro y la cadena de consulta de entrada se crea para usted, sin perder el tiempo con «» y &
No estoy seguro de la sintaxis exacta que está utilizando para obtener datos de otros días, por ejemplo Fuente = «fuente»& Hoy -1 pero también podría agregar esto en el Consulta registro.
índices de página es la lista que contiene el número de días para los que desea obtener datos. En mi código contiene valores del 1 al 5, cambie el 5 a la cantidad de días que necesite.
Esta consulta obtendrá todas las respuestas del sitio web y las almacenará en Paginas donde puede hacer transformaciones posteriores como convertir la lista en una tabla.
La consulta anterior obtendrá respuestas JSON ficticias del sitio web typicode.com para que pueda tener una idea de cómo se verán sus resultados.
Si necesita más ayuda con esto, solo publique de nuevo y mencione @ para que pueda ver la respuesta.
Salud
phil
Si respondí tu pregunta, marca mi publicación como la solución.
Si mi respuesta ayudó a resolver su problema, felicítelo haciendo clic en Me gusta.
felipetreacy
Hola @pamboys09
Aquí hay un ejemplo de paginación, esta consulta obtiene los títulos de las publicaciones de blog de las primeras 5 páginas del blog de Microsoft Excel
let
url= "https://www.microsoft.com/en-us/microsoft-365/blog/excel/page/",
GetPage = (Page) =>
let PageNum = Text.From(Page),
Source = Web.BrowserContents(url & PageNum & "https://community.powerbi.com/"),
HTML_Table = Html.Table(Source, {{"Column1", ".entry-date"}, {"Column2", ".card-title"}, {"Column3", ".my-3 *"}, {"Column4", ".bg-gray-100 .cta"}}, [RowSelector=".col"])
in HTML_Table[Column2],
PageIndices = { 1 .. 5 },
Pages = List.Combine(List.Transform(PageIndices, each GetPage(_)))
in
Pages
Sé que puedo acceder a las páginas del blog usando /página/x al final de la URL principal. Uso List.Transform para llamar a la función Getpage 5 veces como se especifica en PageIndices.
Exactamente cómo su API trata con la paginación debe establecerse en la documentación de la API. Échale un vistazo y si necesitas más ayuda, vuelve a publicar aquí.
Saludos
phil
Si respondí tu pregunta, marca mi publicación como la solución.
Si mi respuesta ayudó a resolver su problema, felicítelo haciendo clic en Me gusta.
pamboys09
En respuesta a felipetreacy
Desafortunadamente, la Documentación API no tenía nada relacionado con paginas.
El único trabajo que hice es tirar de día.
Fuente = «fuente»& Hoy
Fuente = «fuente»& Hoy -1
Fuente = «fuente»& Hoy -2
y así sucesivamente y luego agregarlo.
Pero no estoy seguro de si hay una manera ordenada o eficiente de hacer esto.
felipetreacy
Hola @pamboys09
La API debería proporcionarle alguna forma de especificar la paginación, generalmente un parámetro de consulta en el que especifica qué página desea, por ejemplo, página = 1, página = 2 o algo similar.
Al usar esto, puede especificar página = 2 para obtener las segundas 10,000 filas.
Luego puede usar un bucle para obtener las filas requeridas.
phil