Skip to main content

Partitioned System-Defined Aggregate Tables

AtScale Model Architects provide prioritized partitioning hints to the AtScale Engine to inform the creation of partitioned aggregate tables. The actual partitioning scheme used by the Engine depends on a number of factors, including:

  • Whether the aggregate includes a column that matches a partition hint.
  • Whether AtScale statistics suggest that partitioning would be worthwhile.
  • Whether the target data warehouse supports table partitioning.

Defining aggregate partitions for models

To define an aggregate partition scheme for a model, you must edit its underlying SML to include the partitions property. For more information, see the AtScale SML Object Documentation on GitHub.

What to do next

After making your changes to the model's SML, you need to deploy the model so that it can be queried.

Once a query containing the dimension levels that you've specified as a partition has been executed on the deployed model, the AtScale engine determines whether to build a new system aggregate with the partition, based on the following criteria:

  • If the estimated number of rows per partition meets or exceeds the threshold set in the global setting AGGREGATES.CREATE.PARTITION.SYSTEMDEFINEDAGGREGATE.THRESHOLD.
  • If the estimated number of partitions in the aggregate table exceeds the threshold set in tables.create.partitions.maximumEstimatedNumberOfPartitions the table will not be partitioned. The default value of this setting is 800.

Navigate to Definitions tab on the Aggregates page to see whether the system aggregate was created as a result of your query. For more information, see Monitoring Aggregate Usage.