Semantic layers, also known as metrics layers or “headless BI”, have become a popular topic in the online data community in recent years. For all the hype, the idea hasn't seen much traction. In this blog post, I hypothesize why not, and describe the Malloy language and why I think it has a better chance at succeeding.
It looks promising, but I think it's a one sided solution. I would like to see something like Malloy crossed with CubeJS. We need a consistent and flexible language like Malloy and the interface that CubeJS provides: REST, SQL, GraphQL.
The way I see it is business defines the processes. Those processes store and manipulate data in a storage. Business processes could change quickly so we need a way to quickly model and adapt to match. The analyst needs a way to slide and dice the data to optimize the business. The end user can get limited access to the data via an NLP interface, such as chatbot. Also, applications and RPA need to interface with the data as well.
To make semantic layers work, I think we need to think holistically, not just making it easy for a group of users. It has to be for analysts, developers, and applications/APIs.