Skip to content
Duodata
Duodata Snowflake Native App

Deploy and maintain semantics.

Bring business meaning, physical schemas and open models into one engineering workflow. Deploy native semantic views in Snowflake and metric views in Databricks.

The Snowflake Native App produces Snowflake semantic views used by Cortex Analyst, inside your Snowflake account.

Workflow

Observe, connect, refine, deploy, maintain.

  1. 01

    Observe

    Inspect physical tables, columns and relationships in your platform.

  2. 02

    Connect meaning

    Map business definitions to their physical implementation.

  3. 03

    Refine

    Resolve the platform details that make a semantic model usable.

  4. 04

    Deploy

    Produce the native semantic artifact for your selected platform.

  5. 05

    Maintain

    Review changes to definitions, schemas and their mappings together.

Already have Ossie models? Start with the Native App in your platform, then connect Duodata's business definitions when your team needs shared ownership and meaning.

Maintain

A schema change, reviewed

Rename the physical gross column and see the one affected mapping. Only Update mapping changes the native output; the business definition and totals stay the same.

Mapping and native output match the observed schema.

1 · Observed schema

DEMO.GOLD.REVENUE_BY_QUARTER

Snowflake database DEMO, schema GOLD, table REVENUE_BY_QUARTER

  • CREDITS NUMBER(18,2)
  • DISCOUNTS NUMBER(18,2)
  • GROSS_REVENUE NUMBER(18,2)
  • QUARTER DATE

2 · Mapping

Logical fact to physical column
LogicalPhysical
gross_revenueGROSS_REVENUE
discountsDISCOUNTS
creditsCREDITS

Business definition unchanged: net revenue = gross revenue − discounts − credits.

3 · Totals

Q2 net revenue
$9.3m
Q3 net revenue
$9.8m

Mapping current

Observed schema · schema.yamlyaml
format: schema.yaml
version: "1.0"
schemas:
  - source:
      database: DEMO
      schema: GOLD
      type: snowflake
    tables:
      REVENUE_BY_QUARTER:
        columns:
          CREDITS: {type: "NUMBER(18,2)", is: [notnull]}
          DISCOUNTS: {type: "NUMBER(18,2)", is: [notnull]}
          GROSS_REVENUE: {type: "NUMBER(18,2)", is: [notnull]}
          QUARTER: {type: DATE, is: [notnull]}
Snowflake semantic view · revenue_semantics.yamlyaml
name: revenue_semantics
description: Fictional quarterly revenue example.
tables:
  - name: revenue
    base_table:
      database: DEMO
      schema: GOLD
      table: REVENUE_BY_QUARTER
    time_dimensions:
      - name: quarter
        expr: QUARTER
        data_type: DATE
    facts:
      - name: gross_revenue
        expr: GROSS_REVENUE
        data_type: NUMBER
      - name: discounts
        expr: DISCOUNTS
        data_type: NUMBER
      - name: credits
        expr: CREDITS
        data_type: NUMBER
    metrics:
      - name: net_revenue
        expr: SUM(gross_revenue) - SUM(discounts) - SUM(credits)

Fictional example. Nothing here runs against a warehouse.

Free pilot

Start a free pilot

Bring one business question and the model you want to deploy in Snowflake. We agree the scope of a free pilot together before we start.