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
¿Puedo seguir utilizando la actualización incremental siempre y cuando se ejecute la actualización incremental (parámetros RangeStart/End) antes de romper el plegado de mi consulta con un montón de transformaciones? Mi conjunto de datos es bastante grande y la actualización incremental es difícil de probar, ya que la carga intial falla regularmente.
Estaba pensando que tal vez depende del tipo de transformaciones, así que aquí hay algunos ejemplos de lo que estoy usando:
- consultas de combinación para incorporar atributos clave de otras tablas
- añadir una columna calculada
- eliminar duplicados
- ordenar filas después de eliminar registros con el fin de agregar un índice limpio (es decir, uno que se puede utilizar más adelante en DAX para calclas diferencias entre registros).
Hola @sedareports ,
El requisito previo para que la actualización incremental funcione correctamente es que el origen de datos utilizado debe admitir el plegadode consultas. Los orígenes de datos Most que admiten consultas SQL admiten el plegado de consultas. Compruebe si las siguientes documentacións pueden ayudarle a resolver su problema.
Tratar con grandes conjuntos de datos
COMPROBACIÓN DEL PLEGADO DE CONSULTAS CON VIEW NATIVE QUERY
Plegado de consultas y actualización incremental
No plegable; el agujero negro del rendimiento de las consultas de energía
Saludos
Rena
Gracias @yingyinr por los enlaces de referencia. Debería haber aclarado, mi consulta inicial se puede plegar. Pero se realizan transformaciones posteriores (después del plegado y el uso de RangeStart/RangeEnd). Mi pregunta es qué transformaciones después de un pliegue de consulta que todavía causaría toda la consulta del conjunto de datos (es decir, igore el pliegue de la consulta?)
el plegado de consultas se detiene con la transformación del tipo de cambio:
let
StartDate = "'"&DateTime.ToText(RangeStart)&"'",
EndDate = "'"&DateTime.ToText(RangeEnd)&"'",
SCADATags= "(" & Text.Combine(List.Transform(#"3SCADAFlowTags"[SCADAID], each "'"&_&"'"),",") & ")",
Source = Odbc.Query("Driver={PostgreSQL ANSI(x64)};server=XXXX;port=5432;Database=XXXX", "SELECT * FROM XXXXX where scadaid in "&SCADATags&" and measurementdatetime >= "&StartDate&" and measurementdatetime < "&EndDate&" and measurementquality = '100'"),
//query folding stops
#"Changed Type" = Table.TransformColumnTypes(Source,{{"measurementvalue", type number}}),
#"Merged Queries" = Table.NestedJoin(#"Changed Type", {"scadaid"}, #"3SCADAFlowTags", {"SCADAID"}, "SCADAFlowTags", JoinKind.FullOuter),
#"Expanded SCADAFlowTags1" = Table.ExpandTableColumn(#"Merged Queries", "SCADAFlowTags", {"Description", "FromServiceArea", "MeterError", "ToServiceArea"}, {"Description", "FromServiceArea", "MeterError", "ToServiceArea"}),
#"Added Custom" = Table.AddColumn(#"Expanded SCADAFlowTags1", "Date", each DateTime.Date([measurementdatetime])),
#"Changed Type2" = Table.TransformColumnTypes(#"Added Custom",{{"MeterError", type number}}),
#"Meter Error Calc" = Table.AddColumn(#"Changed Type2", "Multiplication", each -1*[measurementvalue]/(1+[MeterError]), type number),
#"Renamed Columns" = Table.RenameColumns(#"Meter Error Calc",{{"Multiplication", "measurementvaluefinal"}}),
#"Removed Duplicates1" = Table.Distinct(#"Renamed Columns", {"scadaid", "measurementvalue", "measurementdatetime","Description"}),
#"Filtered Rows" = Table.SelectRows(#"Removed Duplicates1", each ([scadaid] <> null)),
#"Sorted Rows" = Table.Sort(#"Filtered Rows",{{"scadaid", Order.Ascending}, {"measurementdatetime", Order.Ascending}}),
#"Added Index" = Table.AddIndexColumn(#"Sorted Rows", "Index", 0, 1),
#"Removed Columns" = Table.RemoveColumns(#"Added Index",{"ToServiceArea","measurementtype","networkfacilityid","measurementquality","objectid"}),
#"Renamed Columns1" = Table.RenameColumns(#"Removed Columns",{{"FromServiceArea", "ServiceArea"}}),
#"Changed Type1" = Table.TransformColumnTypes(#"Renamed Columns1",{{"Date", type date}}),
#"Removed Columns1" = Table.RemoveColumns(#"Changed Type1",{"MeterError"})
in
#"Removed Columns1"
Hola @sedareports ,
Siento mucho no tener claro tu problema. ¿Podría proporcionar más detalles al respecto?
Saludos
Rena
Mi pregunta/problema es, ¿puede un usuario realizar transformaciones después de que una consulta se doblando y seguir manteniendo la actualización incremental? Es decir, las tranformaciones subseqent solo se aplicarán a los nuevos datos cargados incrementalmente, o posiblemente desencadenarán una consulta/procesamiento completo de todo el conjunto de datos.
Por ejemplo.. una transformación de ordenación o la aplicación de un índice.
Hola @sedareports ,
Espero que las siguientes documentacións puedan ayudarle.
Plegado de consultas de Power Query
Query Folding in Power Query para mejorar el rendimiento
No plegable; el agujero negro del rendimiento de las consultas de energía
Saludos
Rena
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.