首页 > 其他分享 >Headless BI

Headless BI

时间:2024-01-25 09:13:57浏览次数:20  
标签:BI 指标 Headless 可视化 敏捷 数据

 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的图如下:

  •  

     

参考资料


 

 

标签:BI,指标,Headless,可视化,敏捷,数据
From: https://www.cnblogs.com/tgzhu/p/17911570.html

相关文章

  • 系统运维-一次zabbix业务培训
    记录一次自己使用zabbix做设备监控的培训PPT,基于zabbix3.4,相关技术已经过时,但是具有参考意义,2017年客户培训使用......
  • 数论——Fermat素性检验、Miller-Rabin素性检验
    数论——Fermat素性检验、Miller-Rabin素性检验试除法与素性测试试除法:所有的试除法,无论是\(\mathcalO(n)\)的还是\(\mathcalO(\sqrtn)\)的,其本质都相同:即找\(n\)可能存在的因子\(k\),判断\(k\midn\)。素性测试:旨在不用分解因数的方式,判断一个数是否为质数;素性......
  • RabbitMQ的几种应用场景
    之前的几篇文章介绍了一下RabbitMQ的概念以及环境的搭建和配置,有了RabbitMQ环境就可以基于其实现一些特殊的任务场景了。RabbitMQ官方有个很好的Tutorials基本覆盖了RabbitMQ的各中常见应用场景,现以代码加注释的方式以其Python客户端pika为例简单介绍如下。更详尽的信息可参阅:htt......
  • Python三方库:Pika(RabbitMQ基础使用)
    Python有多种插件都支持RabbitMQ,本文介绍的是RabbitMQ推荐的Pika插件。使用pip直接安装即可pipinstallpika。一、RabbitMQ简介1.MQ简介MQ(MessageQueue,消息队列),是一个在消息传输过程中保存消息的容器,多用在分布式系统之间进行通信。MQ优势应用解耦:提高系统容错性和可......
  • 指标平台详解(上):为什么有了 BI ,还需要指标平台?
    随着商业智能(BI)的快速普及与深度使用,企业在数据分析“深水区”普遍面临着指标分散定义导致口径不统一、重度依赖 ETL 作业开发报表、问题排查耗时耗力、复用率低等问题。如何兼顾敏捷与统一,实现指标的高效开发和有效管理?我们特策划了本期《指标平台详解》话题,通过两篇文章介绍指......
  • CentOS 7上部署Zabbix 5.0
    安装环境centos7.9系统使用root权限登录到CentOS7服务器。确保服务器可以访问互联网#关闭防火墙systemctlstopfirewalld.servicesystemctldisablefirewalld.service#禁用SELINUXsetenforce0sed-i's/^SELINUX=.*/SELINUX=disabled/'/etc/selinux/config#安装Zabbix源......
  • [转]JavaScript:解决计算精度问题/mathjs/bignumber.js/big.js/decimal.js
    原文地址:JavaScript:解决计算精度问题/mathjs/bignumber.js/big.js/decimal.js_js计算精度问题-CSDN博客一、计算精度现象举例举例1、加法 举例2、减法 举例3、乘法 举例3、除法 二、JS为什么会有计算精度的问题JavaScript内部只有一种数字类型Number,也就是说,Java......
  • (保姆级)服务器-Zabbix6.0使用Python脚本实现带图片的邮箱的报警
    前言近期在琢磨Zabbix邮箱报警的功能,但是网上的教程通常是4.0或5.0版本Zabbix,并使用Python2.7环境,运行在新版本Zabbix6.0上有颇多问题,为此我基于原先教程修改基于Zabbix6.0并使用Python3+的解决方案。期间遇到不少坑,特此分享。Zabbix自带报警Zabbix是自带的邮箱的报警功能有限......
  • CDP 技术系列(二):ClickHouse+Bitmap 实现海量数据标签及群体组合计算
    一、背景介绍上一篇文章介绍了CDP中,面对单个标签或群体数十亿的数据如何存储我们都知道数据仓库的概念,它的里边存储了我们所有的数据,其中就包含了标签或群体所依赖的数据,但是这些数据并不能直接拿来使用,想要变成业务需要的标签或群体数据,还需要进行加工。数据工程师将数仓里的......
  • CDP技术系列(一):使用bitmap存储数十亿用户ID的标签或群体
    一、背景介绍CDP系统中目前存在大量由用户ID集合组成的标签和群体,截止当前已有几千+标签,群体2W+。大量的标签都是亿级别数据量以上,例如性别、职业、学历等均,甚至有群体中的ID数量达到了数十亿+。并且随着用户ID池的不断增加,标签和群体本身包含的ID数量也随之增加,如何存储如此多......