Remix.run Logo
cryptonector 5 days ago

Is a "semantic layer" nothing more than a fancy name for a SQL VIEW in a NoSQL?

aszen 5 days ago | parent | next [-]

No, it's more than that.

Semantic Layer is about decomposing views into dimensions and aggregates, then letting downstream apps/users compose their own views on top without having to redefine/re-calculate business level metrics.

This makes data analyis more flexible than sql views which are hardcoded on particular groupings.

CharlesW 5 days ago | parent | prev | next [-]

It's a lot more. A SQL VIEW is just a saved query, where a semantic layer defines the shared meaning of the data, and helps enforce consistent metrics, joins, and logic across tools. You'd be surprised at how many ways "active customer" can be represented as SQL.

porridgeraisin 5 days ago | parent [-]

Doesn't a view do that?

  create view active_cx as select * from customer join audit_events using(...) join ... where -- active condition

  -- use active_cx wherever

  select ... from orders join active_cx using(...) where ts > start_of_month() group by active_cx.id
cryptonector 5 days ago | parent [-]

It sounds like "semantic layer" == views/queries created automatically and on the fly.

Frotag 5 days ago | parent | prev [-]

Kind of annoying the article writes "What is [a semantic layer] anyway?" twice but never defines it directly.

articsputnik 5 days ago | parent [-]

OP here - I wrote extensively about, that's why I linked to existing article rather than explaining once more, and focusing on the why and how to build one. See also comment above: https://news.ycombinator.com/reply?id=44960004&goto=item%3Fi...

cryptonector 5 days ago | parent [-]

I looked for such a link in TFA, and it wasn't obvious.