You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Add Snowflake → OSI import converter (snowflake_to_osi) #162
The converters/snowflake/ directory currently ships only the export direction (osi_to_snowflake_yaml_converter.py). The import direction (Snowflake Cortex Analyst semantic view YAML → OSI) doesn't exist yet, though the roadmap lists bidirectional participant↔OSI converters as a goal.
I'd like to contribute it. I've built a snowflake_to_osi_yaml_converter.py that:
Maps Snowflake tables → OSI datasets, base_table → source, dimensions/time_dimensions/facts → fields, and both table-level and view-level metrics → OSI top-level metrics, validated against the official semantic view YAML spec.
Maps relationships (left_table/right_table, relationship_columns) → OSI from/to/from_columns/to_columns.
Preserves Snowflake-specific settings in custom_extensions to avoid silent data loss, with warnings for unmapped constructs.
Includes a test suite (unit, integration, and a round-trip test through the existing exporter) and output that validates against osi-schema.json including sqlglot SQL validation.
Is anyone already working on this? If not, I'll open a PR. Happy to adjust the mapping approach based on maintainer preferences.
I've got a small importer that works from a live view rather than the YAML: it reads DESCRIBE SEMANTIC VIEW output (the table/dimension/fact/metric rows) and emits an OSI model. That's a different input path from #163, which parses the Cortex Analyst YAML file.
Before I open anything — would a DESCRIBE-based import be useful as a complement to #163, or would you rather keep one importer and get #163 landed first? I can send the DESCRIBE variant as a separate PR, or help review #163 instead, whichever is more useful.
Activity
RyutoYoda commentedon Aug 10, 2026
I've got a small importer that works from a live view rather than the YAML: it reads
DESCRIBE SEMANTIC VIEWoutput (the table/dimension/fact/metric rows) and emits an OSI model. That's a different input path from #163, which parses the Cortex Analyst YAML file.Before I open anything — would a DESCRIBE-based import be useful as a complement to #163, or would you rather keep one importer and get #163 landed first? I can send the DESCRIBE variant as a separate PR, or help review #163 instead, whichever is more useful.
feat(snowflake): convert Snowflake Cortex Analyst models to Ossie
refactor(snowflake): split the CLI out and name the converter by dire…
feat(snowflake): convert Snowflake Cortex Analyst models to Ossie
feat(snowflake): convert Snowflake Cortex Analyst models to Ossie
feat(snowflake): convert Snowflake Cortex Analyst models to Ossie
feat(snowflake): convert Snowflake Cortex Analyst models to Ossie