Headless BI
Headless的概念最初的来源与内容管理平台有关,一般是指内容管理平台中的一些应用不提供可视化界面,只是通过API方式把内容以数据的方式给前端。前端根据不同的设备类型,可以再去进行针对性地渲染和展现。
从这里,可以理解Headless实际上是把GUI部分跟数据部分进行了分离,这实际上比较符合现在技术的一种发展趋势,尤其是数据要去在不同的环境中去显示的时候。
现在回到什么是Headless BI?实际上就是把BI的数据指标层和展示层做了分离,把BI提供数据的部分以数据服务的方式提供服务,与可视化部分进行分离。
Headless BI 是由 Ankur Goyal 和 Alana Anderson 两位硅谷投资人在这篇博客中提出了 的概念
- “Headless BI:指标只需定义一次,就可以统一地在仪表盘,以及自动化工具中使用”
他们认为理想中的指标层应该通过 Headless BI 的方式来实现,需要满足以下条件:
- 无需写 SQL 就能够轻松定义指标
- 指标可以被灵活的用在 BI 可视化,下游应用系统,并通过 API 消费
- 指标支持大规模查询,从而支持大量的自动化流程,比如触发邮件通知,支撑交互式产品体验等
于是在可视化和自动化流程中间就出现了一个空缺的市场机会,需要由 Headlesss BI 来填补。
为啥要提出Headless BI?
那么为什么会提出Headless BI的概念呢?我们来看看一般的BI系统的整体的一个图:
上图来自于Gooddata在介绍Headless BI的博客文章,在这个图里,有几个核心的模块:
- Data Staging Layer - 对于现在的敏捷BI系统来讲,一般数据的来源都是一个居中的云端数据仓库,用于存储客户已经整理好的数据。比如Snowflake, Redshift, BigQuery或者Dremio等等
- Analytical storage - 敏捷BI为了保证自己的处理效率,一般会有一个自己的分析存储引擎,不同的敏捷BI实现不同。有的采用预先建立多维立方体来保证多维分析效率,有的则是内存MPP架构来支持多维分析。
- Semantic Model - 由于敏捷BI都是面向KPI和报表的,因此在敏捷BI中会有一层语义模型。这个语义模型会定义数据集之间的关系,指标的加工算法和表达等等
但是,在基于云端数仓的这个时代,敏捷BI这种把几个部分耦合在一起的架构模式存在一些问题。最常见的就是如果一个企业内有多个团队,每个团队都基于数据仓库构建自己的敏捷BI,就会存在指标重复计算,而且出现KPI计算结果不一致的问题。
因为以上的原因,在现代数据技术栈中,Headless BI的需求得以产生。希望通过把语义模型层与可视化层分开,去解决前面提到的问题。
下图是Headless BI的架构设计:
在新的设计中,Semantic model这一层与数据应用层做了分离。语义建模解决面向业务的数据集的定义、事实表的定义、维度以及度量的定义,包括指标计算的逻辑等等。然后通过开放API的形式提供给数据应用使用。
大家看到这里,可能会发现Headless BI的概念与metrics store要解决的问题是一样的. Metrics store的图如下:
参考资料
Headless BI的更多相关文章
- 一起学微软Power BI系列-使用技巧(5)自定义PowerBI时间日期表
1.日期函数表作用 经常使用Excel或者PowerBI,Power Pivot做报表,时间日期是一个重要的纬度,加上做一些钻取,时间日期函数表不可避免.所以今天就给大家分享一个自定义的做日期表的方法 ...
- 一起学微软Power BI系列-使用技巧(4)Power BI中国版企业环境搭建和帐号问题
千呼万唤的Power BI中国版终于落地了,相信12月初的微软技术大会之后已经铺天盖地的新闻出现了,不错,Power BI中国版真的来了,但还有些遗憾,国际版的一些重量级服务如power bi emb ...
- 一起学微软Power BI系列-使用技巧(3)Power BI安卓手机版安装与体验
Power BI有手机版,目前支持安卓,苹果和WP,不过没有WP手机,苹果在国内还不能用,要FQ和用就不测试了.安卓的我也也是费了九牛二虎之力才把app下载下来,把方法分享给大家. FQ太麻烦,所以建 ...
- Power BI官方视频(3) Power BI Desktop 8月份更新功能概述
Power BI Desktop 8月24日发布了更新版本.现将更新内容翻译整理如下,可以根据后面提供的链接下载最新版本使用. 1.主要功能更新 1.1 数据钻取支持在线版 以前的desktop中进行 ...
- 一起学微软Power BI系列-使用技巧(1)连接Oracle与Mysql数据库
说起Oracle数据库,以前没用过Oracle不知道,但是这1年用Oracle后,发现真的是想狂吐槽,特别是那个.NET驱动和链接字符串,特别奇葩.总归是和其他数据库不一样,标新立异,不知道为何.另外 ...
- 千呼万唤始出来,微软Power BI简体中文版官网终于上线了,中文文档也全了。。
前几个月时间,研究微软Power BI技术,由于没有任何文档和资料,只能在英文官网瞎折腾,同时也发布了英文文档的相关文章:系列文章,刚好上周把文章发布完,结果简体中文版上线了.哈哈,心里有苦啊,早知道 ...
- 微软新神器-Power BI横空出世,一个简单易用,还用得起的BI产品,你还在等什么???
在当前互联网,由于大数据研究热潮,以及数据挖掘,机器学习等技术的改进,各种数据可视化图表层出不穷,如何让大数据生动呈现,也成了一个具有挑战性的可能,随之也出现了大量的商业化软件.今天就给大家介绍一款逆 ...
- 太多选择——企业如何选择合适的BI工具?
在没认清现状前,企业当然不能一言不合就上BI. BI不同于一般的企业管理软件,不能简单归类为类似用于提高管理的ERP和WMS,或用于提高企业效率的OA.BPM.BI的本质应该是通过展现数据,用于加强企 ...
- 【转】 FineBI:自助式BI工具打造业务分析的“快与准”
如今的企业经营方式,业务对于数据分析有极大的需求,但却苦于没有数据以及工具的有效支持,业务分析仍就依赖于IT报表制作.而IT方不断地按业务需求去调研.确认业务逻辑,然后取数做报表,其中还要忍受业务的需 ...
- Tableau未必最佳,国内BI也能突破重围!
如今,百度一下商业智能或BI工具,总能看到Tableau的身影.并不是Tableau的营销做得好,而是国内对于商业智能工具的认知和选择似乎都落在了Tableau身上.导致不管业内业外都对商业智能的概念 ...
随机推荐
- KingbaseES V8R3集群运维案例之---message length (8) in slot 1 does not match with slot 0(12)故障
案例说明: 在KingbaseES V8R3集群在连接kingbasecluster服务(9999端口)时,出现"message length (8) in slot 1 does not ...
- KingbaseES Json 系列六:Json记录操作函数一
KingbaseES Json 系列六--Json记录操作函数一(JSONB_TO_RECORD,JSONB_TO_RECORDSET,JSON_TO_RECORD,JSON_TO_RECORDSET ...
- 温馨提示:不注意这几点,PDT(产品开发团队)就得散!
在IPD(集成产品开发)体系中,PDT(Product Development Team,产品开发团队)发挥着至关重要的作用.PDT是一个跨部门.跨职能的协作团队,其成员来自不同的专业领域,包括研发. ...
- 前端使用 Konva 实现可视化设计器(1)
使用 konva 实现一个设计器交互,首先考虑实现设计器的画布. 一个基本的画布: [展示]网格.比例尺 [交互]拖拽.缩放 "拖拽"是无尽的,"缩放"是基于鼠 ...
- #费马小定理#JZOJ 4015 数列
题目 给出\(x_n=(ax_{n-1}^2+bx_{n-1}+c)\bmod m\) 给出\(x_0.a,b,c,n,m\),求\(x_n\) \(\text{Subtask 1:}n\leq 10 ...
- ChatGPT商用网站源码+支持ai绘画(Midjourney)+GPT4.0+GPT3.5key绘画+Prompt角色+实时语音识别输入+后台一键版本更新!
ChatGPT商用网站源码+支持ai绘画(Midjourney)+GPT4.0+GPT3.5key绘画+Prompt角色+实时语音识别输入+后台一键版本更新! 1.网站系统源码介绍: 程序已支持Cha ...
- 你真的了解java class name吗?
在面向对象的世界,Class是java的基础.java.lang.Class实际上是继承自java.lang.Object. class有一个方法叫做getName,该方法会返回(class, int ...
- 对OpenHarmony中LiteOS的内核分析——超时原理和应用
前言 在软件世界里面,超时是一个非常重要的概念.比如 ● 当前线程暂时休眠1秒钟,休眠结束后继续执行 ● 每5秒钟采集一下CPU利用率 ● 数据发送失败,2秒钟以后再试一试 ● 等待某种数据,但最多等 ...
- Docker学习路线11:Docker命令行
Docker CLI (命令行界面) 是一个强大的工具,可让您与 Docker 容器.映像.卷和网络进行交互和管理.它为用户提供了广泛的命令,用于在其开发和生产工作流中创建.运行和管理 Docker ...
- C#读 .properties文件
引用:https://www.cnblogs.com/wardensky/p/5331851.html properties文件 MONGO_URL = mongodb://172.16.20.3/s ...