​1. 数据源

第一个要素数据源。企业中的BI工具可能承接上游数据中台或者其他产品输出的结果,作为输入的数据源,每个业务方用的数据库都可能是不一样的,所以可接入数据源的种类决定的一个BI工具的可用性,这里接入的数据源不仅支持传统的数据库mysql,sql server等,还要支持非关系型的数据库,如mongoDB,hive,kylin,sprakSQL等。

上面所举例的都是实时的数据库,在一些比较特殊的场景,如hr考勤数据是以execl形式输出的,这个时候就要提供离线的数据源接入方式,也可以说是外部导入的形式。

2. 数据模型

第二个要素是构建数据模型,数据模型是用户在指定完数据源之后,需要对表进行组合,构建出表与表之间的关系。在这一个过程当中需要注意两个问题:

构建方式:为了简化用户的操作流程降低用户的使用门槛,表与表之间构建的交互方式采用可视化的拖拉拽交互方式,通过可视化的方式组合表,改变表之间的连接关系。当然也需要提供自定义sql的构建方式满足专业程度较高对于模型自定义程度较高的用户。

维度指标设置:在构建模型的阶段并不是所有的字段都用户自助分析构建报表,在构建模型的阶段需要指定好维度和设定好指标的计算方式。

3. Dashboard构建

Dashboard构建是BI工具的一个核心操作流程,报表的分析编辑构建都在这个模块中完成。

OLAP分析:多维分析,拖拽交互,数据联动,钻取,二次计算

样式设定:图表的样式类型(柱状、折线、地图、饼状、散点等)每个不同的图表类型都对应不同的样式设定,包括一些值的映射关系都属于样式设定的范畴当中。

预警设计:指标预警可以将超过阈值的数据通过邮件或者通信工具的方式及时告知用户数据异常,让用户可以在第一时间发现问题并处理问题。

4. 看板展示

看板展示及交互:看板在发布到公告区域之后,用户可以对看板进行简单的交互,如:筛选项控制、报表高度宽度的调整、报表间数据联动设置、报表的隐藏、报表位置的调整。

移动端展示:移动端的展示其实也算是看板展示的一种表现形式,目前市面上也有解决方案,小程序或者是原生的app,这里推荐原生app个人认为原生app性能比较好而且交互能做得比较多。

看板分享:在正式发布到公共看板之前,举一个场景,分析人员可能需要部门各个人员之间或者分析人员与业务方之间需要核对以下报表是否满足发布的要求,会进行一些报表分享的动作,将报表分享给其他用户核实后再挂载到公共的看板中。

5. 权限设计

信息安全是每个企业的重中之重,权限的设计在企业的任何一个系统都是非常重要的,每个公司的业务流程和组织架构都不一样,需要根据不同的业务流程和组织架构进行规划设计,排除组织架构和业务的权限划分之外,我整理了BI工具中不同粒度的权限控制,这里我从系统的角度自上而下的介绍:

数据源权限:数据库权限控制、数据库中表的权限控制、表中列的值的权限控制

模型权限:维度权限控制、指标权限控制、基础属性配置权限控制、CRUD操作权限控制

目录权限:CRUD操作权限控制

看板权限:CRUD操作权限控制(包含样式修改权限)、分享收藏权限控制、下载权限控制

其实会发现我一直没有提性能的问题,其实BI工具没有抢做数据中台的事(数据收集、etl处理、分析计算、数据样本训练)一来性能的问题完全就依靠中台数仓的计算能力,二来也方便产品后期的拓展

当然,如果你不愿意自己开发,采用成熟的BI产品也是可以的,这样可能性价比还更高。例如。由广州思迈特软件推出的Smartbi,提供数据连接、数据准备、数据分析、数据应用等全流程功能,满足用户复杂报表、数据可视化、自助探索分析、机器学习建模、预测分析、自然语言分析等全场景需求。

公司正在开发BI系统?这些设计要素请了解一下!的更多相关文章

  1. 开发BI系统时的需求分析研究

    我们知道MIS,知道ERP,知道GIS等等,这些系统在管理限制上有很多的冲突,管理和被管理,开放和限制等等,然而BI在开始就不是这样的.BI要求的就是易用还要易于扩展,首先是报表,这个是你无条件的需要 ...

  2. python 全栈开发,Day107(CRM初始,权限组件之权限控制,权限系统表设计)

    一.CRM初始 CRM,客户关系管理系统(Customer Relationship Management).企业用CRM技术来管理与客户之间的关系,以求提升企业成功的管理方式,其目的是协助企业管理销 ...

  3. [开发笔记usbTOcan]系统架构设计

    SYS.3 | 系统架构设计 系统架构设计过程的目的是建立一个系统体系结构设计,并确定哪些系统需求分配给系统的哪些元素,并根据确定的标准评估系统架构. 系统结构设计需要做一下工作: 开发系统架构设计. ...

  4. Unity3D手游开发日记(2) - 技能系统架构设计

    我想把技能做的比较牛逼,所以项目一开始我就在思考,是否需要一个灵活自由的技能系统架构设计,传统的技能设计,做法都是填excel表,技能需要什么,都填表里,很死板,比如有的技能只需要1个特效,有的要10 ...

  5. 想上BI系统,原来的Excel优秀模板都丢弃吗?

    我们公司之前一直都用Excel来存储数据,展示数据,Excel本身拥有强大的公式可以帮助我们的数据进行再加工计算,Excel的图形我们可以可以直接拿来展示数据,Excel本身还有数据透视表帮助我们的分 ...

  6. 解析大型.NET ERP系统架构设计 Framework+ Application 设计模式

    我对大型系统的理解,从数量上面来讲,源代码超过百万行以上,系统有超过300个以上的功能,从质量上来讲系统应该具备良好的可扩展性和可维护性,系统中的功能紧密关联.除去业务上的复杂性,如何设计这样的一个协 ...

  7. 转: 透过CAT,来看分布式实时监控系统的设计与实现

    评注: 开源的分布式监控系统 转:http://www.infoq.com/cn/articles/distributed-real-time-monitoring-and-control-syste ...

  8. NET ERP系统架构设计

    解析大型.NET ERP系统架构设计 Framework+ Application 设计模式 我对大型系统的理解,从数量上面来讲,源代码超过百万行以上,系统有超过300个以上的功能,从质量上来讲系统应 ...

  9. 高性能、高可用、高扩展ERP系统架构设计

    ERP之痛 曾几何时,我混迹于电商.珠宝行业4年多,为这两个行业开发过两套大型业务系统(ERP).作为一个ERP系统,系统主要功能模块无非是订单管理.商品管理.生产采购.仓库管理.物流管理.财务管理等 ...

随机推荐

  1. Java高效开发-远程debug

    1.前言 "这怎么回事?在本地还好好,放到服务器就不行了.这该怎么排查,日志也看不出来啥呀",日常开发中经常会出现这种问题,这时候就可以尝试idea远程debug的模式试试 2.使 ...

  2. selenium获取cookies并持久化登陆

    selenium获取cookies并持久化登陆 需求背景: ​ 这几天需要写一个接口,用来批量上传数据,最开始考虑的是 UI 自动化,然后选值的时候自动化难以判别,最终选择 接口 自动化. ​ 然后操 ...

  3. C++构造函数语义学(二)(基于C++对象模型)

    带有虚函数的情况. 下面情况编译器也会在需要的时候为其合成. 1.如果一个类自己声明为虚函数. 1 #include<iostream> 2 using namespace std; 3 ...

  4. ServletContext类介绍(对象的作用及演示、像map一样存取数据)

    什么是ServletContext类 1,什么是 ServletContext 1)ServletContext 是一个接口,它表示Servlet上下文对象 2)一个web工程,只有一个Servlet ...

  5. 知识增强的预训练语言模型系列之KEPLER:如何针对上下文和知识图谱联合训练

    原创作者 | 杨健 论文标题: KEPLER: A unified model for knowledge embedding and pre-trained language representat ...

  6. 理解cpu load

    三种命令 1. w 2. uptime 3. top CPU负载和CPU利用率的区别 1)CPU利用率:显示的是程序在运行期间实时占用的CPU百分比 2)CPU负载:显示的是一段时间内正在使用和等待使 ...

  7. python13day

    昨日回顾 生成器:生成器就是迭代器,生成器是自己用python代码构建的 生成器函数 生成器表达式 python内部提供的 如何判断函数和生成器函数 yield yield return 吃包子的区别 ...

  8. 谷歌CEO桑达尔·皮查伊:区块链可能撼动云计算

    谷歌CEO桑达尔·皮查伊在周二的季度收益电话会议上承认了Web3和区块链的力量. 皮查伊表示,Web3描述了基于区块链的互联网新愿景,区块链是一种分散.安全.透明的技术,支持加密货币网络.不可替代代币 ...

  9. CTF入门学习5-> 前端JavaScript基础

    Web安全基础 JavaScript的实现包括以下3个部分: 1)核心语法:描述了JS的语法和基本对象. 2)文档对象模型 (DOM):处理网页内容的方法和接口 3)浏览器对象模型(BOM):与浏览器 ...

  10. react 配置使用less后缀文件

    //安装less less less-loader npm install less less-loader --save-dev 安装完成后,在项目中的config目录下找到webpack.conf ...