For the complete documentation index, see llms.txt. This page is also available as Markdown.

Best Practices

Configuration recommendations for attributes, including data type selection, transformation expressions, and performance optimization.

Attribute Configuration

After scanning:

  • Review discovered attributes and verify inferred DATA_PLATFORM_DATA_TYPE

  • Check for unexpected polymorphic version activations

  • Review HAS_EMBEDDED_CONTENT = TRUE attributes (stringified JSON)

Data type configuration:

  • Adjust DATA_PLATFORM_DATA_TYPE_PRECISION and DATA_PLATFORM_DATA_TYPE_SCALE for numeric types

  • Set DATA_PLATFORM_DATA_TYPE_DATETIMEFORMAT when USE_DATETIME_FORMAT = TRUE for accurate parsing

  • Use ALIAS_NAME for readable column names (overrides POLYMORPHIC_ATTRIBUTE_NAME)

Null handling:

  • Set NULL_VALUE_EXPRESSION (only applies when TRANSFORMATION_TYPE = 'No Transformation')

  • Use {attribute_name} placeholder in expressions

Transformations:

  • Use TRANSFORMATION_EXPRESSION when TRANSFORMATION_TYPE = 'SQL Expression'

  • Document in TRANSFORMATION_EXPRESSION_COMMENT


Virtual Attributes

Naming: No spaces allowed in attribute names. Names appear in generated SQL as CODE_GENERATED_COLUMN_NAME.

Transformation expressions:

  • Required field; must be valid SQL

  • Can reference other attributes using {attribute_name} placeholder

  • Automatically set to INCLUDE_IN_CODE_GEN = TRUE

Semantic model integration:

  • Set W_QUESTION_CATEGORY for Cortex Analyst (values: 'dimensions', 'facts', 'filters', 'metrics', 'time_dimensions')

  • Link to parent arrays when creating array-level virtual attributes


Polymorphic Versions

Review versions:

  • Check all 7 versions for each attribute

  • Monitor VERSION_STATUS_DATE to track schema evolution

  • Set INCLUDE_IN_CODE_GEN = FALSE for versions you don't need

Handling polymorphism:

  • Use transformation expressions to handle type variations

  • Consider data quality implications when multiple versions are active

  • Monitor newly activated versions after scans

Version management:

  • Inactive versions are ready for activation (don't delete)

  • Only active versions with INCLUDE_IN_CODE_GEN = TRUE generate columns


Performance

Code generation:

  • Set INCLUDE_IN_CODE_GEN = FALSE for unused attributes

  • Reduces Dynamic Table size and refresh time

  • Child attributes only generated if PARENT_INCLUDE_IN_CODE_GEN = TRUE

Clustering:

  • Set ADD_TO_CLUSTER_BY = TRUE for frequently queried attributes

  • Improves query performance on large Dynamic Tables

  • Balance with refresh performance impact

Data type sizing:

  • Set appropriate DATA_PLATFORM_DATA_TYPE_PRECISION and DATA_PLATFORM_DATA_TYPE_SCALE

  • Avoid over-sizing numeric types (wastes storage)

Last updated

Was this helpful?