公司正在开发BI系统?这些设计要素请了解一下!
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系统?这些设计要素请了解一下!的更多相关文章
- 开发BI系统时的需求分析研究
我们知道MIS,知道ERP,知道GIS等等,这些系统在管理限制上有很多的冲突,管理和被管理,开放和限制等等,然而BI在开始就不是这样的.BI要求的就是易用还要易于扩展,首先是报表,这个是你无条件的需要 ...
- python 全栈开发,Day107(CRM初始,权限组件之权限控制,权限系统表设计)
一.CRM初始 CRM,客户关系管理系统(Customer Relationship Management).企业用CRM技术来管理与客户之间的关系,以求提升企业成功的管理方式,其目的是协助企业管理销 ...
- [开发笔记usbTOcan]系统架构设计
SYS.3 | 系统架构设计 系统架构设计过程的目的是建立一个系统体系结构设计,并确定哪些系统需求分配给系统的哪些元素,并根据确定的标准评估系统架构. 系统结构设计需要做一下工作: 开发系统架构设计. ...
- Unity3D手游开发日记(2) - 技能系统架构设计
我想把技能做的比较牛逼,所以项目一开始我就在思考,是否需要一个灵活自由的技能系统架构设计,传统的技能设计,做法都是填excel表,技能需要什么,都填表里,很死板,比如有的技能只需要1个特效,有的要10 ...
- 想上BI系统,原来的Excel优秀模板都丢弃吗?
我们公司之前一直都用Excel来存储数据,展示数据,Excel本身拥有强大的公式可以帮助我们的数据进行再加工计算,Excel的图形我们可以可以直接拿来展示数据,Excel本身还有数据透视表帮助我们的分 ...
- 解析大型.NET ERP系统架构设计 Framework+ Application 设计模式
我对大型系统的理解,从数量上面来讲,源代码超过百万行以上,系统有超过300个以上的功能,从质量上来讲系统应该具备良好的可扩展性和可维护性,系统中的功能紧密关联.除去业务上的复杂性,如何设计这样的一个协 ...
- 转: 透过CAT,来看分布式实时监控系统的设计与实现
评注: 开源的分布式监控系统 转:http://www.infoq.com/cn/articles/distributed-real-time-monitoring-and-control-syste ...
- NET ERP系统架构设计
解析大型.NET ERP系统架构设计 Framework+ Application 设计模式 我对大型系统的理解,从数量上面来讲,源代码超过百万行以上,系统有超过300个以上的功能,从质量上来讲系统应 ...
- 高性能、高可用、高扩展ERP系统架构设计
ERP之痛 曾几何时,我混迹于电商.珠宝行业4年多,为这两个行业开发过两套大型业务系统(ERP).作为一个ERP系统,系统主要功能模块无非是订单管理.商品管理.生产采购.仓库管理.物流管理.财务管理等 ...
随机推荐
- CMake语法—内置变量
目录 CMake语法-内置变量 1 CMake变量分类 1.1 普通变量 1.2 缓存变量 1.3 环境变量 1.4 内置变量 2 CMake内置变量分类 2.1 提供信息的变量 2.2 改变行为的变 ...
- C++初始化列表各情况分析
今天回顾了下C++初始化列表的知识,接下来我对这一知识作一总结. 我们在定义了一个类的时候,需要对类的成员进行初始化.关于初始化,有两种方法,一种在初始化列表中进行,另一种就是在构造函数中进行,对于这 ...
- golang中结构体指针的应用
package main import ( "fmt" ) type School struct { brand string city string } type Class s ...
- python16day
昨日回顾 自定义模块 模块的两种执行方式:脚本方式.调用方式 name 模块导入的方式 相对导入 random:获取随机数相关 今日内容 常用模块的介绍 time:和时间相关 datetime os ...
- [JavaWeb]Log4j的前因后果
Log4j的前因后果 简介 Log4j的进化史 Log4J的三大组件: Logger:日志记录器,负责收集处理日志记录 (如何处理日志) Appender:日志输出目的地,负责日志的输出 (输出到什么 ...
- MySQL8.0.28安装教程全程参考MySQL官方文档
前言 为了MySQL8.0.28安装教程我竟然在MySQL官方文档逛了一天,至此献给想入门MySQL8.0的初学者.以目前最新版本的MySQL8.0.28为示例进行安装与初步使用的详细讲解,面向初学者 ...
- js-reduce方法源码
// 数组中的reduce方法源码复写 //先说明一下reduce原理:总的一句,reduce方法主要是把数组遍历, //然后把数组的每个元素传入回调函数中,回调函数怎么处理,就会的到什么样的效果 A ...
- C# 将OFD转为PDF
OFD格式的文档是一种我国独有的国家标准版式的文档,在不同场景需求中,可以通过格式转换的方法将PDF转为OFD,或者将OFD转为PDF.本次内容,将通过C#程序介绍如何实现由OFD到PDF的转换,并附 ...
- 在IDE中添加widfly依赖
动机:在IDE中添加widfly依赖 原由:widfly实现了servlet接口,有我们对外交互时所需求的jar包 步骤: 第一步: 找到module依赖的地方 第二步:点击左侧的添加按钮,点击Lib ...
- JVM学习十五 - (复习)类加载的时机、类加载过程、类加载器
一.类加载的时机 类的生命周期 类从被加载到虚拟机内存开始,到卸载出内存为止,它的整个生命周期包括以下 7 个阶段: 加载 验证 准备 解析 初始化 使用 卸载 验证.准备.解析 3 个阶段统称为连接 ...