Skip to content

Add OSI -> LookML (BigQuery) converter#144

Open
1waterrj wants to merge 1 commit into
open-semantic-interchange:mainfrom
1waterrj:feat/bigquery-lookml-converter
Open

Add OSI -> LookML (BigQuery) converter#144
1waterrj wants to merge 1 commit into
open-semantic-interchange:mainfrom
1waterrj:feat/bigquery-lookml-converter

Conversation

@1waterrj

@1waterrj 1waterrj commented Jun 2, 2026

Copy link
Copy Markdown

Adds a first-class converter that exports OSI semantic models to LookML, the semantic modeling language for Looker (Google Cloud's semantic layer over BigQuery), analogous to the existing OSI -> Snowflake Cortex Analyst converter.

  • converters/bigquery/: offline OSI -> LookML converter, README, tests, and a BigQuery-dialect example fixture
    • datasets -> views (sql_table_name; backtick-quoted 3-part BigQuery refs; derived_table for subquery sources)
    • fields -> dimensions; time fields -> dimension_group
    • metrics -> measures; relationships -> explore/join (composite-key aware)
    • prefers the BIGQUERY dialect, falls back to ANSI_SQL
  • validation/validate.py: map the BIGQUERY dialect to sqlglot's bigquery dialect so GoogleSQL expressions (e.g. SAFE_CAST) validate correctly
  • converters/index.md: list BigQuery/LookML as a supported converter

26 passing tests; the converter handles the ANSI-only TPC-DS example as-is.

Adds a first-class converter that exports OSI semantic models to LookML,
the semantic modeling language for Looker (Google Cloud's semantic layer
over BigQuery), analogous to the existing OSI -> Snowflake Cortex Analyst
converter.

- converters/bigquery/: offline OSI -> LookML converter, README, tests, and a
  BigQuery-dialect example fixture
  - datasets -> views (sql_table_name; backtick-quoted 3-part BigQuery refs;
    derived_table for subquery sources)
  - fields -> dimensions; time fields -> dimension_group
  - metrics -> measures; relationships -> explore/join (composite-key aware)
  - prefers the BIGQUERY dialect, falls back to ANSI_SQL
- validation/validate.py: map the BIGQUERY dialect to sqlglot's bigquery
  dialect so GoogleSQL expressions (e.g. SAFE_CAST) validate correctly
- converters/index.md: list BigQuery/LookML as a supported converter

26 passing tests; the converter handles the ANSI-only TPC-DS example as-is.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant