Comparison of Product Extensions and Data Sources / Datamart
Deciding whether to use Product Extensions (PX) or Data Sources (DS) / Datamarts is sometimes not easy. This table should help you identify the main differences:
Area | Product Extension | Data Source / Datamart |
---|---|---|
Needed license for | Price Setting module | Analytics module |
Designed for big data (e.g. transaction history) | Â No | Â Yes |
Designed for frequently changing data | Â Yes | Â No. The data needs to be loaded from Data Feeds to Data Source and e.g. daily flushed to the Data Source. |
Can values be edited by the user | Â Yes | Â No |
Creating charts | Via dashboards using calculation logic | Â Directly in the UI and from Datamarts only |
Data loading – automatic |
|
|
Data loading – manual |
|
|
Data truncation |
|
|
Querying from Groovy | api.find("PX", Filter.equal("name", "SalesPrice"), Filter.equal(...))
Note: | def ctx = api.getDatamartContext()
def ds = ctx.getDataSource("SalesDS")
-or-
def ds = ctx.getDataMart("SalesDM")
def query = ctx.newQuery(ds)
.select(..)
...
|
Selecting distinct values | api.find("PX", 0, 1, null, ["attribute1"], true, filters) | |
Aggregation: SUM, AVG, MIN, MAX, COUNT | ||
Group by | Â Not available | |
Joins | Â No |
|
Exists | Using | Using SQL query |
Sorting | Â Yes | Â Yes |
Creating database indexes |  Only for customers having dedicated instance; cannot have many of them Recommendation for the main PX index is (attribute1, attribute2) or potentially (attribute1, attribute2, attribute3). | Created for the key fields and for each dimension |
Found an issue in documentation? Write to us.
Â