How a semantic layer unlocks self-service BI at scale