Dos and Don’ts
Topic | Tip | Details |
---|---|---|
Non-incremental refresh without merging the same data | ⚠️ If you want to run a non-incremental Refresh but avoid the costly merging of almost the same data, you can truncate the DM first – set the Advanced Configuration option 'truncateDatamartOnNonIncRefresh' to true. | |
Batching in Data Loads and dependencies | ❗ Avoid any dependencies between rows belonging to different batches. | |
Automatic loading of the data grid content and performance | ⚠️ If you have a large data set, disable automatic loading of the data grid content on the Data tab. Then you can set up a filter first and download only a subset of the data. | |
Time dimension field from Datamart cannot be a key column | ⚠️ Do not use a time dimension field from Datamart as a key column in the related Data Source, it is not supported. Instead, compute the field in an Analytics logic via a Data Load and run another Data Load to join the related data. | |
No source data in Datamart | ❗ Do not use Datamart as a source of data. In a well configured system it should always be possible to reload all the rows in a Datamart from Data Sources (in reasonable time). This includes any calculation (enrichment) jobs, in addition to the Datamart Refresh Data Load. |
Avoid setting Datamart normalization to High
Do not set normalization of a Datamart to High, unless absolutely needed. It can drastically slow down the performance of Datamart queries, especially when processing large (i.e. 1M+ rows).
Tips and Notes
Topic | Tip | Details |
---|---|---|
Incremental mode in Internal Copy | The incremental mode in Internal Copy tasks is not exactly the same as in the Refresh or Calculation type. Here, incremental means the Data Source will not be truncated before the copy, i.e., it will keep old records instead of being a true copy. | |
Deleting Data Loads | The Delete button only shows if all selected Data Loads can be deleted, i.e., they are either invalid (e.g., their target object is deleted), or they are not the default Data Load created by the system. (These system generated Data Loads cannot be deleted by a user, only if they are invalid.) | |
Activate Data Source to propagate changes | The changes and additions are not available in Analytics unless you successfully activate the Data Source. |
Datamart does not store attribute values
Datamart is a physical table but it does not store a copy of all attribute values (for the default Normalization settings with value High). Only keys and calculated columns are stored, the rest of the data is joined dynamically when a query is run.
Expressions and joining tables | An expression cannot be used as a key for joining tables. | |
No field names changes in Datamart | It is not possible to modify field names (of fields coming from a Data Source) in a Datamart. The change has to be done at the Data Source level. | |
Responsiveness of Data Tables | To improve responsiveness of a Data Table, use filters if more Group By levels are required, use rollups where possible and save the Data Table in a grouped state. | |
CAST from DateTime to Date supported | Pricefx implementation only supports the CAST from a DateTime field to a Date. In other words, you can only convert a date with a timestamp to a date without a timestamp. | |
Charts | Only data fields marked as Dimension can be selected for aggregation and banding. | |
For Data Tables, there are hardcoded limits of maximum 10,000 displayed rows and 8 'Group by' levels. | ||
In Waterfall, two price points cannot be consecutive. There must be a surcharge or reduction in between. | ||
Only the settings of the chart are stored, not the underlying data. If the data changes, the chart will change accordingly. | ||
When you change the chart type, only values that can be mapped to the options in the new chart are kept. Data not supported in the new chart will be lost and additional data might be required to render properly the new chart. | ||
All charts in Pricefx are designed to display aggregations, i.e. rollups on the database level. This means that any formula must include an aggregation function to work correctly. |