Actualizaciones incrementales en Power BIIncremental refresh in Power BI

La actualización incremental permite usar conjuntos de datos muy grandes en Power BI, lo que reporta las siguientes ventajas:Incremental refresh enables very large datasets in Power BI with the following benefits:

  • Las actualizaciones son más rápidas: solo hay que actualizar los datos que se han modificado.Refreshes are faster - Only data that has changed needs to be refreshed. Por ejemplo, se actualizan solo los últimos cinco días de un conjunto de datos de 10 años.For example, refresh only the last five days of a ten-year dataset.
  • Las actualizaciones son más confiables: ya no es necesario mantener conexiones de larga duración a sistemas de origen volátiles.Refreshes are more reliable - It's no longer necessary to maintain long-running connections to volatile source systems.
  • Se reduce el consumo de recursos: al haber menos datos que actualizar, se reduce el consumo total de memoria y de otros recursos.Resource consumption is reduced - Less data to refresh reduces overall consumption of memory and other resources.

Nota

Ahora, las actualizaciones incrementales están disponibles para Power BI Pro, Premium y en las suscripciones y conjuntos de datos compartidos.Incremental refresh is now available for Power BI Pro, Premium, and shared subscriptions and datasets.

Nota

Power BI Premium publicó recientemente una nueva versión Premium, denominada Premium Gen2, que se encuentra actualmente en versión preliminar.Power BI Premium recently released a new version of Premium, called Premium Gen2, which is currently in preview. Premium Gen2 simplifica la administración de las funcionalidades Premium y reduce la sobrecarga de administración.Premium Gen2 will simplify the management of Premium capacities, and reduce management overhead. Premium Gen2 mejora significativamente la actualización programada, al habilitar el escalado automático para evitar conflictos de actualización.Premium Gen2 significantly improves scheduled refresh, by enabling autoscaling to avoid refresh conflicts. Para más información, vea Power BI Premium Generation 2 (versión preliminar).For more information, see Power BI Premium Generation 2 (preview).

Configuración de la actualización incrementalConfigure incremental refresh

Las directivas de actualización incremental se definen en Power BI Desktop y se aplican cuando se publican en el servicio Power BI.Incremental refresh policies are defined in Power BI Desktop and applied when published to the Power BI service.

Filtrar conjuntos de datos grandes en Power BI DesktopFilter large datasets in Power BI Desktop

Es posible que los conjuntos de datos grandes (que pueden contener miles de millones de filas) no quepan en el modelo de Power BI Desktop, porque el archivo PBIX está limitado por los recursos de memoria disponibles en el equipo de escritorio.Large datasets with potentially billions of rows may not fit into a Power BI Desktop model because the PBIX file is limited by the memory resources available on the desktop computer. Por tanto, normalmente estos conjuntos de datos se filtran durante la importación.Such datasets are therefore commonly filtered upon import. Este tipo de filtrado se aplica con independencia del uso de la actualización incremental.This type of filtering applies whether using incremental refresh or not. Para la actualización incremental, se filtra mediante los parámetros de fecha y hora de Power Query.For incremental refresh, you filter by using Power Query date/time parameters.

Parámetros RangeStart y RangeEndRangeStart and RangeEnd parameters

Para la actualización incremental, los conjuntos de datos se filtran mediante los parámetros de fecha y hora de Power Query con los nombres reservados RangeStart y RangeEnd (que distinguen mayúsculas de minúsculas).For incremental refresh, datasets are filtered by using Power Query date/time parameters with the reserved, case-sensitive names RangeStart and RangeEnd. Estos parámetros se usan para filtrar los datos importados en Power BI Desktop y también para particionar de forma dinámica los datos en intervalos una vez publicados en el servicio Power BI.These parameters are used to filter the data imported into Power BI Desktop, and also to dynamically partition the data into ranges once published to the Power BI service. El servicio sustituye los valores de parámetro para filtrar por cada partición.The parameter values are substituted by the service to filter for each partition. No hay necesidad de definirlos en la configuración del conjunto de datos del servicio.There's no need to set them in dataset settings in the service. Una vez publicados, el servicio Power BI reemplaza automáticamente los valores de parámetro,Once published, the parameter values are overridden automatically by the Power BI service.

Para definir los parámetros con valores predeterminados, haga clic en Administrar parámetros en el editor de Power Query.To define the parameters with default values, in the Power Query Editor, select Manage Parameters.

Administrar parámetros

Con los parámetros definidos, después puede aplicar el filtro si selecciona la opción de menú Filtro personalizado para una columna.With the parameters defined, you can then apply the filter by selecting the Custom Filter menu option for a column.

Filtro personalizado

Procure filtrar las filas en las que el valor de la columna sea igual o posterior a RangeStart y anterior a RangeEnd.Ensure rows are filtered where the column value is after or equal to RangeStart and before RangeEnd. Otras combinaciones de filtros pueden dar lugar a un doble recuento de filas.Other filter combinations may result in double counting of rows.

Filtrar filas

Importante

Compruebe que las consultas tienen un valor igual a (=) en RangeStart o RangeEnd, pero no en ambos.Verify queries have an equal to (=) on either RangeStart or RangeEnd, but not both. Si el valor igual a (=) existe en ambos parámetros, una fila podría satisfacer las condiciones de dos particiones, lo que podría provocar la duplicación de datos en el modelo.If the equal to (=) exists on both parameters, a row could satisfy the conditions for two partitions, which could lead to duplicate data in the model. Por ejemplo,For example,
#"Filtered Rows" = Table.SelectRows(dbo_Fact, each [OrderDate] >= RangeStart and [OrderDate] <= RangeEnd) podrían dar lugar a datos duplicados.#"Filtered Rows" = Table.SelectRows(dbo_Fact, each [OrderDate] >= RangeStart and [OrderDate] <= RangeEnd) could result in duplicate data.

Sugerencia

Aunque el tipo de datos de los parámetros debe ser fecha y hora, se pueden convertir para que coincidan con los requisitos del origen de datos.While the data type of the parameters must be date/time, it's possible to convert them to match the requirements of the datasource. Por ejemplo, la siguiente función de Power Query convierte un valor de fecha y hora para que aparezca como una clave suplente de enteros con la forma ddmmaaaa, algo habitual en los almacenamientos de datos.For example, the following Power Query function converts a date/time value to resemble an integer surrogate key of the form yyyymmdd, which is common for data warehouses. Se puede llamar a la función durante el paso de filtrado.The function can be called by the filter step.

(x as datetime) => Date.Year(x)*10000 + Date.Month(x)*100 + Date.Day(x)

Seleccione Cerrar y aplicar en el editor de Power Query.Select Close and Apply from the Power Query Editor. Ahora deberíamos tener un subconjunto del conjunto de datos en Power BI Desktop.You should have a subset of the dataset in Power BI Desktop.

Filtrado de las actualizaciones de columna de fechaFilter date column updates

El filtro de la columna de fecha se usa para particionar de forma dinámica los datos en intervalos en el servicio Power BI.The filter on the date column is used to dynamically partition the data into ranges in the Power BI service. La actualización incremental no está diseñada para admitir casos en los que la columna de fecha filtrada se actualiza en el sistema de origen.Incremental refresh isn't designed to support cases where the filtered date column is updated in the source system. Una actualización se interpretará como una inserción y una eliminación, no como una actualización real.An update is interpreted as an insertion and a deletion, not an actual update. Si la eliminación se produce en el intervalo histórico y no en el intervalo incremental, no se seleccionará.If the deletion occurs in the historical range and not the incremental range, it won't get picked up. Esto puede provocar errores de actualización de datos debido a conflictos de clave de partición.This can cause data refresh failures due to partition-key conflicts.

Plegado de consultasQuery folding

Es importante que los filtros de partición se inserten en el sistema de origen cuando las consultas se envían para las operaciones de actualización.It's important the partition filters are pushed to the source system when queries are submitted for refresh operations. La transferencia del filtrado significa que el origen de datos debe admitir el plegado de consultas.To push filtering down means the datasource should support query folding. La mayoría de orígenes de datos compatibles con las consultas SQL admiten el plegado de consultas.Most data sources that support SQL queries support query folding. Pero los orígenes de datos, como los archivos planos, los blobs y las fuentes web normalmente no lo hacen.However, data sources like flat files, blobs, and web feeds typically do not. En casos en los que el filtro no es compatible con el back-end de origen de datos, no se puede realizar la transferencia.In cases where the filter is not supported by the datasource back-end, it cannot be pushed down. En tales casos, el motor de mashup compensa y aplica el filtro localmente, lo cual puede requerir la recuperación del conjunto de datos completo desde el origen de datos.In such cases, the mashup engine compensates and applies the filter locally, which may require retrieving the full dataset from the data source. Esto puede provocar que una actualización incremental sea muy lenta y el proceso puede quedarse sin recursos en el servicio Power BI o en la puerta de enlace de datos local, si se utiliza.This can cause incremental refresh to be very slow, and the process can run out of resources either in the Power BI service or in the on-premises data gateway if used.

Dados los diversos niveles de compatibilidad con el plegado de consultas para cada origen de datos, se recomienda comprobar que la lógica de filtro se incluye en las consultas de origen.Given the various levels of query folding support for each datasource, it's recommended that verification is performed to ensure the filter logic is included in the source queries. Para facilitar esta tarea, Power BI Desktop intenta realizar esta comprobación de forma automática.To make this easier, Power BI Desktop attempts to perform this verification for you. Si no lo puede comprobar, se muestra una advertencia en el cuadro de diálogo de la actualización incremental al definir la directiva de actualización incremental.If unable to verify, a warning is displayed in the incremental refresh dialog when defining the incremental refresh policy. Los orígenes de datos basados en SQL como SQL, Oracle y Teradata pueden depender de esta advertencia.SQL based data sources such as SQL, Oracle, and Teradata can rely on this warning. Es posible que otros orígenes de datos no puedan ejecutar la comprobación sin realizar el seguimiento de las consultas.Other data sources may be unable to verify without tracing queries. Si Power BI Desktop no puede realizar la confirmación, se muestra la advertencia siguiente.If Power BI Desktop is unable to confirm, the following warning is displayed. Si ve esta advertencia y quiere comprobar que se está produciendo el plegado de consultas necesario, puede usar la característica Diagnóstico de consulta o realizar un seguimiento de las consultas que la base de datos de origen ha recibido.If you see this warning and want to check that the necessary query folding is occurring, you can use the Query Diagnostics feature, or trace queries received by the source database.

Plegado de consultas

Definir la directiva de actualizaciónDefine the refresh policy

La actualización incremental está disponible en el menú contextual de las tablas, excepto en los modelos de conexión dinámica.Incremental refresh is available on the context menu for tables, except for Live Connection models.

Directiva de actualización

Cuadro de diálogo Actualización incrementalIncremental refresh dialog

Se abre el cuadro de diálogo Actualización incremental.The incremental refresh dialog is displayed. Use el botón de alternancia para habilitar o deshabilitar el cuadro de diálogo.Use the toggle to enable the dialog.

Detalles de la actualización

Nota

Si la expresión de Power Query relativa a la tabla no hace referencia a los parámetros con nombres reservados, el botón de alternancia se deshabilita.If the Power Query expression for the table doesn't refer to the parameters with reserved names, the toggle is disabled.

En el texto del encabezado se explica lo siguiente:The header text explains the following:

  • Las directivas de actualización se definen en Power BI Desktop y se aplican por medio de operaciones de actualización en el servicio.Refresh policies are defined in Power BI Desktop, and they are applied by refresh operations in the service.

  • Si descarga el archivo PBIX que contiene una directiva de actualización incremental desde el servicio Power BI, no se podrá abrir en Power BI Desktop.If you're able to download the PBIX file containing an incremental-refresh policy from the Power BI service, it cannot be opened in Power BI Desktop. Aunque es posible que esto se admita en el futuro, recuerde que estos conjuntos de datos pueden crecer tanto que sea poco práctico descargarlos y abrirlos en un equipo de escritorio convencional.While this may be supported in the future, keep in mind these datasets can grow to be so large that they are impractical to download and open on a typical desktop computer.

Frecuencias de actualizaciónRefresh ranges

En el ejemplo siguiente se define una directiva de actualización para almacenar los datos de cinco años naturales completos más los datos del año actual hasta la fecha de hoy y actualizar de forma incremental 10 días completos de datos.The following example defines a refresh policy to store data for five full calendar years plus data for the current year up to the current date, and incrementally refresh ten full days of data. La primera operación de actualización carga los datos históricos.The first refresh operation loads historical data. Las actualizaciones posteriores son incrementales y (si se han programado para ejecutarse a diario) realizan las operaciones siguientes:Subsequent refreshes are incremental, and (if scheduled to run daily) perform the following operations:

  • Se agrega un nuevo día de datos.Add a new day of data.

  • Se actualizan 10 días completos hasta la fecha actual.Refresh ten full days up to the current date.

  • Se quitan los años naturales con una antigüedad de más de cinco años con respecto a la fecha actual.Remove calendar years that are older than five years prior to the current date. Por ejemplo, si la fecha actual es el día 1 de enero de 2019, se quitará el año 2013.For example, if the current date is January 1 2019, the year 2013 is removed.

La primera actualización en el servicio Power BI puede tardar más en importar los cinco años naturales enteros,The first refresh in the Power BI service may take longer to import all five full calendar years. pero las siguientes finalizarán en un tiempo mucho menor.Subsequent refreshes may be finished in a fraction of the time.

Frecuencias de actualización

Fecha actualCurrent date

La fecha actual se basa en la fecha del sistema en el momento de la actualización.The current date is based on the system date at the time of refresh. Si la actualización programada está habilitada para el conjunto de datos en el servicio Power BI, se tendrá en cuenta la zona horaria especificada al determinar la fecha actual.If scheduled refresh is enabled for the dataset in the Power BI service, the specified time zone will be taken into account when determining the current date. Tanto las actualizaciones programadas como las que se invocan manualmente mediante el servicio Power BI respetan la zona horaria si está disponible.Both manually invoked and scheduled refreshes through the Power BI service observe the time zone if available. Por ejemplo, en una actualización que se produce a las 8 P.M. con Hora del Pacífico (EE. UU. y Canadá) especificada como zona horaria, la fecha actual se determinará según la hora del Pacífico, y no GMT (que, de otro modo, sería al día siguiente).For example, a refresh that occurs at 8 PM Pacific Time (US and Canada) with time zone specified will determine the current date based on Pacific Time, not GMT (which would otherwise be the next day). Las operaciones de actualización que no se invocan a través del servicio Power BI, como el comando de actualización de TMSL, no tendrán en cuenta la zona horaria de la actualización programada.Refresh operations not invoked through the Power BI service, such as the TMSL refresh command, will not consider the scheduled refresh time zone

Zona horaria

Nota

Es posible que todo lo que necesite sea la definición de estas frecuencias, en cuyo caso puede ir directamente al paso de publicación siguiente.Definition of these ranges might be all you need, in which case you can go straight to the publishing step below. Las listas desplegables adicionales se corresponden con características avanzadas.The additional dropdowns are for advanced features.

Opciones avanzadas de directivaAdvanced policy options

Detectar cambios de datosDetect data changes

Una actualización incremental de 10 días es más eficaz que una actualización completa de cinco años.Incremental refresh of ten days is more efficient than full refresh of five years. Pero es posible hacerlo incluso mejor.However, it's possible to do even better. Si activa la casilla Detectar cambios de datos, puede seleccionar una columna de fecha y hora y usarla para identificar y actualizar solo los días donde los datos hayan cambiado.If you select the Detect data changes checkbox, you can select a date/time column used to identify and refresh only the days where the data has changed. Aquí se da por hecho que esta columna existe en el sistema de origen, que se suele usar con fines de auditoría.This assumes such a column exists in the source system, which is typically for auditing purposes. Esta columna no debe ser la misma que la usada para dividir los datos con los parámetros RangeStart/RangeEnd.This should not be the same column used to partition the data with the RangeStart/RangeEnd parameters. El valor máximo de esta columna se evalúa para cada uno de los períodos en la frecuencia incremental.The maximum value of this column is evaluated for each of the periods in the incremental range. Si no ha cambiado desde la última actualización, no es necesario actualizar período.If it has not changed since the last refresh, there is no need to refresh the period. En el ejemplo, esto podría reducir aún más los días actualizados de forma incremental de 10 a aproximadamente 2.In the example, this could further reduce the days incrementally refreshed from ten to around two.

Detectar cambios

Sugerencia

El diseño actual requiere que la columna que detecta los cambios de datos sea persistente y esté almacenada en la memoria caché.The current design requires that the column to detect data changes is persisted and cached into memory. Puede que quiera sopesar el uso de una de las siguientes técnicas para reducir la cardinalidad y el consumo de memoria.You may want to consider one of the following techniques to reduce cardinality and memory consumption.

Durante la actualización solo debe persistir el valor máximo de esta columna, posiblemente usando una función de Power Query.Persist only the maximum value of this column at time of refresh, perhaps using a Power Query function.

Reduzca la precisión a un nivel que sea aceptable para sus requisitos de frecuencia de actualización.Reduce the precision to a level that is acceptable given your refresh-frequency requirements.

Defina una consulta personalizada para detectar los cambios en los datos mediante el punto de conexión de XMLA y evitar que el valor de la columna se conserve por completo.Define a custom query for detecting data changes using the XMLA endpoint and avoid persisting the column value altogether. Vea las consultas personalizadas para detectar los cambios en los datos a continuación para obtener más información.See custom queries for detect data changes below for more information.

Actualizar solo períodos completosOnly refresh complete periods

Supongamos que nuestra actualización está programada para ejecutarse todas las mañanas a las 4:00 A.M.Let's say your refresh is scheduled to run at 4:00 AM every morning. Si aparecen datos en el sistema de origen durante esas 4 horas, probablemente no quiera tenerlos en cuenta.If data appears in the source system during those 4 hours, you may not want to account for it. Algunas métricas empresariales (como, por ejemplo, los barriles por día en el sector petrolífero) no tienen sentido en días parciales.Some business metrics such as barrels per day in the oil and gas industry make no sense with partial days.

Pensemos en otro ejemplo en el que hay que actualizar los datos de un sistema financiero donde los datos del mes anterior se aprueban el día 12 del mes en curso.Another example is refreshing data from a financial system where data for the previous month is approved on the 12th calendar day of the month. Puede establecer la frecuencia incremental en 1 mes y programar la actualización para que se ejecute el día 12 del mes.You could set the incremental range to 1 month and schedule the refresh to run on the 12th day of the month. Así, con esta opción activada, los datos de enero se actualizarían el 12 de febrero.With this option checked, it would for example refresh January data on February 12th.

Períodos completos

Nota

Las operaciones de actualización del servicio se ejecutan según la hora UTC.Refresh operations in the service run under UTC time. Esto puede determinar la fecha de vigencia y repercutir en los períodos completos.This can determine the effective date and affect complete periods. Tenemos previsto incluir la posibilidad de invalidar la fecha de vigencia en las operaciones de actualización.We plan to add the ability to override the effective date for a refresh operation.

Publicar en el servicioPublish to the service

Ahora podemos actualizar el modelo.You can now refresh the model. La primera actualización puede tardar más tiempo en importar los datos históricos,The first refresh may take longer to import the historical data. mientras que las siguientes serán bastante más rápidas, ya que serán actualizaciones incrementales.Subsequent refreshes can be much quicker because they use incremental refresh.

Tiempos de espera de las consultasQuery timeouts

En este artículo de solución problemas de actualización se explica que las operaciones de actualización en el servicio Power BI están sujetas a tiempos de espera.The troubleshooting refresh article explains that refresh operations in the Power BI service are subject to timeouts. Las consultas también pueden verse limitadas por el tiempo de espera predeterminado del origen de datos.Queries can also be limited by the default timeout for the data source. La mayoría de los orígenes relacionales permiten invalidar los tiempos de espera en la expresión.Most relational sources allow overriding timeouts in the M expression. Por ejemplo, en la siguiente expresión se usa la función de acceso a datos de SQL Server para establecerla en 2 horas.For example, the expression below uses the SQL Server data-access function to set it to 2 hours. Cada período definido por los intervalos de directiva envía una consulta que respeta el valor de tiempo de espera del comando.Each period defined by the policy ranges submits a query observing the command timeout setting.

let
    Source = Sql.Database("myserver.database.windows.net", "AdventureWorks", [CommandTimeout=#duration(0, 2, 0, 0)]),
    dbo_Fact = Source{[Schema="dbo",Item="FactInternetSales"]}[Data],
    #"Filtered Rows" = Table.SelectRows(dbo_Fact, each [OrderDate] >= RangeStart and [OrderDate] < RangeEnd)
in
    #"Filtered Rows"

Ventajas del punto de conexión de XMLA para la actualización incrementalXMLA endpoint benefits for incremental refresh

El punto de conexión de XMLA para los conjuntos de datos de una capacidad Premium se puede habilitar para las operaciones de lectura y escritura, lo que puede proporcionar ventajas considerables para la actualización incremental.The XMLA endpoint for datasets in a Premium capacity can be enabled for read-write operations, which can provide considerable benefits for incremental refresh. Las operaciones de actualización a través del punto de conexión de XMLA no se limitan a 48 actualizaciones al día y no se impone el tiempo de espera de actualización programado, lo que puede resultar útil en escenarios de actualización incremental.Refresh operations through the XMLA endpoint are not limited to 48 refreshes per day, and the scheduled refresh timeout is not imposed, which can be useful in incremental refresh scenarios.

Actualización de la administración con SQL Server Management Studio (SSMS)Refresh management with SQL Server Management Studio (SSMS)

Con la lectura y escritura del punto de conexión de XMLA habilitadas, SSMS se puede usar para ver y administrar las particiones generadas por la aplicación de directivas de actualización incremental.With XMLA endpoint read-write enabled, SSMS can be used to view and manage partitions generated by the application of incremental refresh policies. Esto permite, por ejemplo, actualizar una partición histórica específica que no está en el intervalo incremental para realizar una actualización con fecha en el pasado sin tener que actualizar todos los datos históricos.This allows, for example, to refresh a specific historical partition not in the incremental range to perform a back-dated update without having to refresh all historical data. También puede usar SSMS para cargar datos históricos para conjuntos de datos muy grandes mediante la incorporación o actualización incremental de particiones históricas en lotes.You can also use SSMS to load historical data for very large datasets by incrementally adding/refreshing historical partitions in batches.

Particiones en SSMS

Reemplazo del comportamiento de actualización incrementalOverride incremental refresh behavior

Con SSMS, también tiene más control sobre cómo invocar las actualizaciones incrementales desde el lenguaje de scripting de modelos tabulares (TMSL) y el modelo de objetos tabulares (TOM).With SSMS, you also have more control over how to invoke incremental refreshes from using the Tabular Model Scripting Language (TMSL) and the Tabular Object Model (TOM). Por ejemplo, en SSMS, en Explorador de objetos, haga clic con el botón derecho en una tabla y, a continuación, seleccione la opción de menú Tabla de procesos.For example, in SSMS, in Object Explorer, right-click a table and then select the Process Table menu option. A continuación, haga clic en el botón script para generar un comando de actualización de TMSL.Then click the Script button to generate a TMSL refresh command.

Botón script del cuadro de diálogo Tabla de procesos

Los parámetros siguientes se pueden insertar en el comando de actualizar de TMSL para invalidar el comportamiento predeterminado de la actualización incremental.The following parameters can be inserted into the TMSL refresh command to override the default incremental refresh behavior.

  • applyRefreshPolicy: si una tabla tiene definida una directiva de actualización incremental, applyRefreshPolicy determinará si la directiva se aplica o no.applyRefreshPolicy – If a table has an incremental refresh policy defined, applyRefreshPolicy will determine if the policy is applied or not. Si no se aplica la directiva, una operación de proceso completo dejará las definiciones de partición sin cambios y todas las particiones de la tabla se actualizarán por completo.If the policy is not applied, a process full operation will leave partition definitions unchanged and all partitions in the table will be fully refreshed. El valor predeterminado es true.Default value is true.

  • effectiveDate: si se está aplicando una directiva de actualización incremental, debe conocer la fecha actual para determinar los intervalos de periodos acumulados para el intervalo histórico y el intervalo incremental.effectiveDate – If an incremental refresh policy is being applied, it needs to know the current date to determine rolling window ranges for the historical range and the incremental range. El parámetro effectiveDate permite invalidar la fecha actual.The effectiveDate parameter allows you to override the current date. Esto resulta útil para pruebas, demostraciones y escenarios empresariales en los que los datos se actualizan incrementalmente hasta una fecha anterior o posterior (por ejemplo, presupuestos en el futuro).This is useful for testing, demos, and business scenarios where data is incrementally refreshed up to a date in the past or the future (for example, budgets in the future). El valor predeterminado es la fecha actual.The default value is the current date.

{ 
  "refresh": {
    "type": "full",

    "applyRefreshPolicy": true,
    "effectiveDate": "12/31/2013",

    "objects": [
      {
        "database": "IR_AdventureWorks", 
        "table": "FactInternetSales" 
      }
    ]
  }
}

Para obtener más información sobre cómo invalidar el comportamiento predeterminado de la actualización incremental con TMSL, vea comando Refresh.To learn more about overriding default incremental refresh behavior with TMSL, see Refresh command.

Personalización de consultas para detectar cambios de datosCustom queries for detect data changes

Puede usar TMSL o TOM para invalidar el comportamiento de los cambios de datos detectados.You can use TMSL and/or TOM to override the detected data changes behavior. Se puede usar no solo para evitar que se conserve la columna de última actualización en la memoria caché en memoria, sino que puede habilitar escenarios en los que los procesos de ETL preparan una tabla de configuración o instrucción con el fin de marcar solo las particiones que deben actualizarse.Not only can this be used to avoid persisting the last-update column in the in-memory cache, it can enable scenarios where a configuration/instruction table is prepared by ETL processes for the purpose of flagging only the partitions that need to be refreshed. Esto puede crear un proceso de actualización incremental más eficaz donde solo se actualizan los períodos necesarios, independientemente del tiempo transcurrido desde las actualizaciones de datos.This can create a more efficient incremental refresh process where only the required periods are refreshed, no matter how long ago data updates took place.

La expresión pollingExpression está diseñada para ser una expresión M ligera o el nombre de otra consulta M.The pollingExpression is intended to be a lightweight M expression or name of another M query. Debe devolver un valor escalar y se ejecutará para cada partición.It must return a scalar value and will be executed for each partition. Si el valor devuelto es diferente al de la última vez que se produjo una actualización incremental, la partición se marca para su procesamiento completo.If the value returned is different to what it was the last time an incremental refresh occurred, the partition is flagged for full processing.

En el ejemplo siguiente se abarcan los 120 meses del intervalo histórico para los cambios con fecha en el pasado.The following example covers all 120 months in the historical range for backdated changes. Si se especifican 120 meses en lugar de 10 años, la compresión de los datos puede no ser tan eficaz, pero se evita tener que actualizar un año histórico completo (lo que sería más caro cuando fuera suficiente un mes para un cambio con fecha en el pasado).Specifying 120 months instead of 10 years means data compression may not be quite as efficient, but avoids having to refresh a whole historical year, which would be more expensive when a month would suffice for a backdated change.

"refreshPolicy": {
    "policyType": "basic",
    "rollingWindowGranularity": "month",
    "rollingWindowPeriods": 120,
    "incrementalGranularity": "month",
    "incrementalPeriods": 120,
    "pollingExpression": "<M expression or name of custom polling query>",
    "sourceExpression": [
    "let ..."
    ]
}

Implementación de solo metadatosMetadata-only deployment

Al publicar una versión nueva de un archivo PBIX desde Power BI Desktop en un área de trabajo de Power BI Premium, si ya existe un conjunto de datos con el mismo nombre, se le pedirá que reemplace el conjunto de datos existente.When publishing a new version of a PBIX file from Power BI Desktop to a workspace in Power BI Premium, if a dataset with the same name already exists, you are prompted to replace the existing dataset.

Solicitud de reemplazo de conjunto de datos

En algunos casos, es posible que no desee reemplazar el conjunto de datos, especialmente con la actualización incremental.In some cases you may not want to replace the dataset, especially with incremental refresh. El conjunto de datos de Power BI Desktop podría ser mucho menor que el del servicio.The dataset in Power BI Desktop could be much smaller than the one in the service. Si el conjunto de datos del servicio tiene aplicada una directiva de actualización incremental, puede tener varios años de datos históricos que se perderán si el conjunto de datos se reemplaza.If the dataset in the service has an incremental refresh policy applied, it may have several years of historical data that will be lost if the dataset is replaced. La actualización de todos los datos históricos podría tardar horas y provocar un tiempo de inactividad del sistema para los usuarios.Refreshing all the historical data could take hours and result in system downtime for users.

En su lugar, es mejor realizar una implementación solo de metadatos.Instead, it's better to perform a metadata-only deployment. Esto permite la implementación de nuevos objetos sin perder los datos históricos.This allows deployment of new objects without losing the historical data. Por ejemplo, si ha agregado algunas medidas, puede implementar solo las nuevas medidas sin necesidad de actualizar los datos, lo que ahorra mucho tiempo.For example, if you have added a few measures, you can deploy only the new measures without needing to refresh the data, saving a lot of time.

Cuando se configura para lectura y escritura, el punto de conexión de XMLA proporciona compatibilidad con las herramientas que hacen que esto suceda.When configured for read-write, the XMLA endpoint provides compatibility with tools that make this happen. Por ejemplo, ALM Toolkit es una herramienta de comparación de esquemas para los conjuntos de datos de Power BI y se puede usar para realizar la implementación solo de metadatos.For example, the ALM Toolkit is a schema diff tool for Power BI datasets and can be used to perform deployment of metadata only.

Descargue e instale la versión más reciente de ALM Toolkit desde el repositorio de Git de Analysis Services.Download and install the latest version of the ALM Toolkit from the Analysis Services Git repo. Los vínculos de documentación y la información sobre la compatibilidad están disponibles a través de la cinta de opciones de ayuda.Documentation links and information on supportability are available via the Help ribbon. Para realizar una implementación de solo metadatos, realice una comparación y seleccione la instancia de Power BI Desktop en ejecución como origen y el conjunto de datos existente en el servicio como destino.To perform a metadata only deployment, perform a comparison and select the running Power BI Desktop instance as the source, and the existing dataset in the service as the target. Tenga en cuenta las diferencias que se muestran y omita la actualización de la tabla con particiones de actualización incremental, o use el cuadro de diálogo Opciones para conservar las particiones para las actualizaciones de la tabla.Consider the differences displayed and skip the update of the table with incremental refresh partitions, or use the Options dialog to retain partitions for table updates. Valide la selección para garantizar la integridad del modelo de destino y, a continuación, actualice.Validate the selection to ensure the integrity of the target model and then update.

ALM Toolkit

Vea tambiénSee also

Conectividad del conjunto de datos con el punto de conexión de XMLA Dataset connectivity with the XMLA endpoint
Solución de problemas de escenarios de actualizaciónTroubleshooting refresh scenarios

Power BI ha introducido Power BI Premium Gen2 como una oferta en versión preliminar, lo que mejora la experiencia con Power BI Premium mediante mejoras en los siguientes aspectos:Power BI has introduced Power BI Premium Gen2 as a preview offering, which improves the Power BI Premium experience with improvements in the following:

  • RendimientoPerformance
  • Concesión de licencias por usuarioPer-user licensing
  • Mayor escalaGreater scale
  • Métricas mejoradasImproved metrics
  • Escalado automáticoAutoscaling
  • Menor sobrecarga de administraciónReduced management overhead

Para más información sobre Power BI Premium Gen2, vea Power BI Premium Generation 2 (versión preliminar).For more information about Power BI Premium Gen2, see Power BI Premium Generation 2 (preview).