Starting December 3, join live sessions with database experts and the Microsoft product team to learn just how easy it is to get started
Learn moreGet certified in Microsoft Fabric—for free! For a limited time, get a free DP-600 exam voucher to use by the end of 2024. Register now
Me estoy conectando a una carpeta que tiene un montón de archivos JSON.
Utilizo una función personalizada para combinar los archivos.
Luego hago todo tipo de cosas, como extraer dinamitamente los nombres de columna de listas json anidadas, etc.
Siento que Table.Buffer / List.Buffer puede acelerar las cosas.
He leído esto:
https://www.thebiccountant.com/speedperformance-aspects/
Y esto:
Y todavía me pregunto - cuando shoud uso Table.Buffer?
¿Por qué no ponerlo al principio de mi consulta (justo después de ejecutar la función personalizada) - y eso es todo - todo se sentará en la memoria?
Solved! Go to Solution.
No @michaelsh
Si almacena en búfer una tabla en un paso y, a continuación, transforma esa tabla de alguna manera, esta nueva tabla transformada no es la que se almacena en búfer.
Por lo tanto, en los pasos siguientes no puede seguir haciendo referencia a la tabla almacenada en búfer desde el primer paso.
Para ser honesto, el funcionamiento de las funciones de búfer no es claramente desapreotable por nadie que no sea el equipo de desarrollo de Microsoft. Nunca he leído una explicación definitiva de cómo o cuándo usarlos, por lo tanto, la sugerencia de Pat de 'simplemente probarlos'.
Salud
Phil
Proud to be a Super User!
La mejor manera es simplemente probarlo y ver si hace las cosas significativamente más rápido. Difícil de predecir si tendrá un impacto como a veces lo es hace ese tipo de optimización por sí mismo. La clave es usarlo dentro de la misma consulta donde se hace referencia a él varias veces (lo que hace su propuesta).
saludos
palmadita
To learn more about Power BI, follow me on Twitter or subscribe on YouTube.
Hola @michaelsh
Puede hacerlo, siempre que la tabla a la que hace referencia no se cambie de ninguna manera en los pasos posteriores. Sin embargo, esto no suele ser el caso, por lo que cada vez que se transforma una tabla, lo que da como resultado una nueva tabla, tendría que volver a usar Table.Buffer.
saludos
Phil
Si respondí a su pregunta por favor marque mi post como la solución.
Si mi respuesta ayudó a resolver su problema, déle un kudos haciendo clic en Thumbs Up.
Proud to be a Super User!
Veo @PhilipTreacy .
Pero si los pasos subsiguientes modifican la tabla, ¿sigue siendo mejor almacenar en búfer solo el primero, para que los pasos siguientes no vuelvan al origen de datos original, sino solo a la primera tabla almacenada en búfer?
Hemos detectado un problema desconocido.
¿Quizás puedas proporcionar una muestra?
Gracias
No @michaelsh
Si almacena en búfer una tabla en un paso y, a continuación, transforma esa tabla de alguna manera, esta nueva tabla transformada no es la que se almacena en búfer.
Por lo tanto, en los pasos siguientes no puede seguir haciendo referencia a la tabla almacenada en búfer desde el primer paso.
Para ser honesto, el funcionamiento de las funciones de búfer no es claramente desapreotable por nadie que no sea el equipo de desarrollo de Microsoft. Nunca he leído una explicación definitiva de cómo o cuándo usarlos, por lo tanto, la sugerencia de Pat de 'simplemente probarlos'.
Salud
Phil
Proud to be a Super User!
Hola, @michaelsh
Puede utilizar 'Table.Buffer'/'List.Buffer' cuando la tabla o lista se hará referencia varias veces (como en 'Table.SelectRows', 'List.Generate', 'List.Accumulate').
En el ejemplo siguiente, se hace referencia a la tabla 'a' tiempos múltiples.
=Table.AddColumn(a,"Custom",each Table.RowCount(Table.SelectRows(a,(x)=>x[Subject]=[Subject] and x[Score]=[Score]))+1)
A continuación, puede usar 'Table.Buffer' para almacenar la tabla en memoria para mejorar el rendimiento.
A=Table.Buffer(a),
Table.AddColumn(A,"Custom",each Table.RowCount(Table.SelectRows(A,(x)=>x[Subject]=[Subject] and x[Score]=[Score]))+1)
Espero que le ayude a entender 'Table.Buffer'/'List.Buffer'.
Saludos
Allan
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
@v-alq-msft ¿Podría explicar por qué el almacenamiento en búfer una vez no es suficiente? ¿Por qué uno necesita almacenar repetidamente una tabla si "se hace referencia a ella varias veces" como usted dice?
Sí, @v-alq-msft , esto es útil, gracias!
Lo que no obtengo - es por qué no debería simplemente escribir Table.Buffer como mi segundo paso y, a continuación, todos los demás pasos simplemente harán referencia a esta tabla almacenada en búfer.
¿Funcionará?
¿Por qué no hacerlo? (Considere que tengo suficiente memoria)
Starting December 3, join live sessions with database experts and the Fabric product team to learn just how easy it is to get started.
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early Bird pricing ends December 9th.