Skip to content
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, view 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]}
        kind: view
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.

Scoped proof of concept

Bring the model you want to deploy

We start with one business question, the person who owns its meaning, the data behind it and the result you expect. A scoped, paid proof of concept puts that meaning to work in your platform.

  • 01One business question
  • 02One owner of the definition
  • 03The data it depends on
  • 04The result you expect
  • Bring your use case