Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Applies to: (tick) Kyvos Enterprise  (tick) Kyvos Cloud (SaaS on AWS) (tick) Kyvos AWS Marketplace

...

Understanding of use cases is the most important first step for creating an optimized semantic model. You should choose dimensions and measures that reflect the use cases for which you are building processing the semantic model. Careful planning lets you reduce the semantic model process time and improve query performance by deciding if columns should be taken as attributes, as levels, or if they are required at all.

Why: This helps in identifying the unnecessary dimensions, attributes, and measures in the semantic model that are usually added as they are available in the table/transformation. Adding such dimensions and attributes increase the combination of dimension for aggregation at the time of semantic model process. This results in increasing in the process time and semantic model size. This may also impact the query time.

...

A sliding window refers to how much historical data should be retained within the semantic model(in years, months, or days, etc.) For example, if a semantic model is incrementally built processed daily, then a sliding window of 10 days means that the semantic model will only retain data for the last 10 days.

To set up a sliding window, you first need to define partitions for the semantic model. A partition is a container for a portion of the semantic model data. Partitions are used to manage and store data and aggregations for measures in a semantic model. Every semantic model has at least one default partition; this partition is created when the semantic model is builtprocessed.

Why: When you update or replace data in a semantic model partition, you must specify the full range of data for that partition. For example, if a semantic model partition contains a day’s worth of data, then you must specify the time range as a day.

...

Before scheduling a full job, you must first run a test job. On the test built processed semantic model, it is recommended to execute your most commonly used queries/business use cases.

Once this is done, go back to the semantic model designer, and take recommendations. See Cube Semantic Model Recommendations for details.

Resilient semantic model process with

...

(table metadata) changes over time

There are time when metadata changes in different datasets are requires. Following are the scenarios which might occur and possible solutions ensure the semantic model doesn't fail.

  1. Column got added in table (at the end) - Dataset SQL has list of column names in "Select"

    • No changes required and process will not have impact

  2. Column got added in table (in-between) - Dataset SQL has list of column names in "Select"

    • No changes required and process will not have impact

  3. Column got added in table (at the end) - Dataset SQL has "Select *"

    • No changes required and process will not have impact

  4. Column got added in table (in-between) - Dataset SQL has "Select *"

    • Refresh and save the dataset again. Data type or format changes will not be overwritten when saving the refreshed metadata.

  5. Column got deleted in table

    • Column used in semantic model

      • Refresh dataset and Relationship design and save. Remove that attribute from the semantic model design, and perform an incremental process. That deleted column will become irrelevant and wont be available for querying.

    • Column not used in semantic model

      • Refresh dataset and save.

  6. Dataset SQL has "" as IsAdjusted and processses are done

    • Column got added in table (Same position as of dataset or different position) - 
       Remove that column from Dataset SQL (tds-service incremental query needs to be updated), refresh and save dataset/Relationship design. semantic model rebuild reprocess won't be required.

  7. If data type is changed of column in table used in semantic model

    • For example, for an existing integer column data type is changed to string then dataset will start giving warning but process will only fail in case Kyvos receive string value in that column instead of integer otherwise process won't fail.