
For example, an Orders table in a model contains order transactions from two different fact tables, factInternetOrders and factRetailOrders.
#Process recalc ssas tabular update
Different data sources may update data at different times, which can determine different granularity and processing requirements for the model's table data. Partitioning is also effective for tables containing data from more than one data source. This results in fewer partitions, but also increases management overhead to ensure partition ranges are defined correctly. Mixed granularity can be configured for scenarios such as near-real time refresh at low grain coupled with historical, static partitions at higher granularity. For example, if only the last whole day needs to be processed daily, it may be beneficial to use daily granularity. Granularity is influenced by various factors including how much data is required to be incrementally processed within an acceptable amount of time. This is commonly known as a rolling-window pattern - data in each partition is within a predefined date range and incremented as necessary, keeping memory and processing resource use within a predictable range over time. All partitions are then processed to reflect changes. Data from the 2010 fiscal year is eliminated from the Sales2020-2011 partition and moved into the SalesOld partition. The Sales2020 partition can then be merged with the Sales2019-2010 partition and renamed to Sales2020-2011. When entering the 2021 fiscal year, a new Sales2021 partition is added to the model's Sales table. Data in the SalesOld partition rarely changes, therefore only processed annually. However, because sales data for the previous ten fiscal years can still change because of product returns and other adjustments, it must still be processed regularly, therefore data in the Sales2019-2010 partition is processed monthly.

There's no need to process data in the Sales2019-2010 partition nightly.

2016, 2017, 2018, 2019Īll fiscal years prior to the last ten years.Īs new sales data is added for the current 2020 fiscal year, that data must be processed daily to be reflected accurately in the current fiscal year sales data analysis, therefore the Sales2020 partition is processed every night. The model's Sales table has the following partitions: Partitionįiscal years 2010, 2011, 2012, 2013, 2014, 2015. For example, a tabular model can have a Sales table which includes sales data for the current fiscal year and each of the previous fiscal years. In many cases, such as with fact tables, dividing a table's single partition into multiple partitions can better utilize available resources for processing.Īn effective model design and processing strategy utilizes partitions to eliminate unnecessary processor load and memory consumption, while at the same time making certain that data is refreshed often enough to reflect the most recent data from data sources. Granularityīy default, each table in a model has a single partition. Individual partitions, each containing a unique segment of data, can then be incrementally processed either sequentially or in parallel independent of other partitions, or excluded from processing operations altogether. Partitions work by dividing a table into logical partition objects.

There's no need to process all of the data when only a portion of it needs to be processed. For example, a fact table may include certain row sets that contain data that rarely changes, but other row sets have data that changes often. Partitions divide portions of data you need to process (refresh) frequently from data that can be processed less frequently.
