Skip to content
Duodata
Duodata Snowflake Native App

The agreed definitions, running inside Snowflake.

The Snowflake Native App is how the meaning your business owns reaches Snowflake: it produces the Snowflake semantic views that Cortex Analyst reads, and keeps them in step when a definition or a source schema changes — reviewed by your team before anything ships.

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

Workflow

From your definition to your platform, in five reviewed steps.

Every step produces something your team can read and approve — nothing changes in your platform without a review.

  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

When a source column changes, you see what it touches.

A renamed column surfaces the one affected mapping. The business definition and the reported totals stay the same — only the connection is updated, after review.

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.