来到公司已经参与开发了一段时间的BI项目,但是仅仅是按照需求开发,今天下午公司给大家培训数据仓库的知识,老大(女程序员)在上面讲,我们在下面听,2到3个小时吧,什么纬度,主题,几乎听的一脸茫然,最后演示了基于BI的成本分析系统,感觉好复杂,主要是对于医疗项目的业务,反正挺繁琐的。做这个项目的目的主要是给实施人员使用,再由实施人员教客户使用,进而指定自定义的报表(数据量很大,表都是上百万的数据),记一下,有空研究一下数据仓库。

目前说白了,就是为了进行数据汇总,分析,如果不采用数据仓库,直接查询数据库,需要大量的join,并且表数据量大,影响数据库效率(水平分表听过,不怎么会用,目前主要建立临时表存储,但是数据量还是很大),所以建立数据仓库。同时各家医院对于成本分析的指标不一致,所以报表需要客户自定义,所以不能直接写SQL固化的程序中,不过目前我们就是固化。(每次发布一次报表,需要2,3个小时)。

参考技术:开源的mondrian与jpivot

====================================================================================================

1.数据源

2.创建视图(选择表,设置表关系)[]

3.创建cube立方体

4.创建维度,度量(指标,衍生指标)

5.设计页面

6.发布,设置权限

====================================================================================================

所以要开发基于数据仓库的BI分析系统,主要对医院指定的指标进行数据分析,产生报表,但是指标各个医院不一致,关注的数据不一致,所以报表(图标)是可自定义的。

DB-ETL-ODS-DW-DM-OLAP-APP(数据层DW-应用层OLAP-门户服务APP)

基于数据的数据交换平台-ESB服务总线(数据中心)

基于雨雾的流程管理平台-BPM,SOA

基于业务的渠道系统(OLTP系统)

====================================================================================================

1.ETL过程刷新数据

2.配置主题元数据

3.界面展现(自定义图表)--针对不同的指标进行数据分析

====================================================================================================

存储:

  单独的一个库------多个库存储

  单独的一个库------表切分(水平--切列   垂直---切行)

  单独一个库(DB)--------临时库(ODS)-----小库(DM集市)----------分析库(DW)(这样就存在一个数据转移过程,也就是ETL过程)

====================================================================================================

自定义报表查询:

===================================================================================================

一个重要的概念:

  指标:

    指标就是一个度量,可以认为一个度量或者一个度量的计算

  为什么:

    通过OLAP多为分析,对分析的结果(按照指定的维度进行分析的数据--汇总数据),重新建立维度(这就是指标的真正含义),再次进行多维分析,把这个维度就叫做指    标。

  指标:就是对象OLAP的分析结果再次进行建模分析,而这个维度就叫做指标。

    立方体:--切块:就是指标分析

    切面,片---------就是简单的OLAP多维度分析

====================================================================================================

1.OLAP:异构集成平台(面向主题)--------------雪花模型或者星型模型-----多角度分析(查询性)

2.OLTP:单一系统(面向业务)---------------------ER模型-----------------采集数据(事务性)

3.星型模型(一个中心-一个事实表),雪花模型(多个中心-多个事实表)

DB与DW之间可以存在ODS(操作型的数据仓库),他是一个过渡层,降低业务系统查询的压力。

=====================================================================================================

纬度表:(主要存储事物的详细描述信息,)

事实表:主要存储数据(数据可以进行汇总----外键关联纬度表)--------度量值

应用:上卷/下钻,切片/快,旋转/转轴。----类似的比如报表里面的,父子表,类似与连接表查询

一下几个图来源:http://www.cnblogs.com/honkcal/archive/2011/07/15/2107172.html借鉴一下,图示比较明确

 

上面类似的表格分析,大家估计都做过,只是没有概念,仅仅是客户的要求,我们采取SQL给他们实现,没有科学理论对其进行认证的分析(父子表,行转列,子查询表)。

个人感悟:

数据独立存储,不存储其他详细描述信息---事实表(外键关联详细事,是你要关注的内容就是一些数据,即某一纬度的度量的汇总,主要是数据信息),纬度表(主题具体的角度,涉及比较详细信息,主要是文本信息,是度量的描述)

=====================================================================================================

类似开发中我们常见的表样:http://www.cnblogs.com/gstsyyb/p/3365930.html,其实类似这种报表完全可以做成可定制的报表也就是所谓的自定义纬度(对于客户来说就是他们的指标KPI)

BI开发(ETL-DW)的更多相关文章

  1. R语言作为BI中ETL的工具

    R语言作为BI中ETL的工具,增删改 R语言提供了强大的R_package与各种数据库进行数据交互. 外加其强大数据变换清洗函数,为ETL提供一条方便快捷的道路. RODBC ROracal RMys ...

  2. SQL点滴17—使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识

    原文:SQL点滴17-使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识 在开发过程中会遇到需要弄清楚这个数据库什么时候建的,这个数据库中有多少表,这个存储过程长的什么样子等等信息 ...

  3. PowerApps和Flow,Power BI开发

    为PowerApps和Flow,Power BI开发自定义连接器 作者:陈希章 发表于 2017年12月20日 前言 我在之前用了几篇文章来介绍新一代微软商业应用平台三剑客(PowerApps,Mic ...

  4. 为PowerApps和Flow,Power BI开发自定义连接器

    作者:陈希章 发表于 2017年12月20日 前言 我在之前用了几篇文章来介绍新一代微软商业应用平台三剑客(PowerApps,Microsoft Flow,Power BI),相信对于大家会有一种跃 ...

  5. 设计和开发ETL系统(二)——启动

    在针对某个维度模型开始ETL系统设计之前,应当完成逻辑设计,草拟高层架构计划,并且为所有的数据元素拟定源到目标映射. ETL的设计过程十分重要: 收集所有的相关信息,包括事物处理系统中所允许的提取处理 ...

  6. BI之ETL学习(一)kettle

    最近开始折腾数据,起源是多业务数据源需要转换到数据分析平台.这个过程需要跨机器,跨库.同时还需要将业务数据表的内容进行转换,合并,清洗等等操作. 经过多方选型,最终决定使用kettle来作为数据抽取处 ...

  7. SQL使用数据库引擎存储过程,系统视图查询,DBA,BI开发人员必备基础知识

    在开发过程中会遇到需要弄清楚这个数据库什么时候建的,这个数据库中有多少表,这个存储过程长的什么样子等等信息,今天把自己工作过程中经常用到的一些数据库引擎存储过程,系统视图等等总结一下以备不时之用.下面 ...

  8. 用友财务总帐(GL)模BI数据ETL分析

    业务需求,如下面的: 现在用友总帐一家公司BI分析案例. /* Sql Server2012使用作业设置定时任务,为了保证有一天运行时间 */ /* 意temp1表里一定要保证要有记录,否则以temp ...

  9. 设计和开发ETL系统(一)——ETL过程综述

    在这部分将按照设计和实现ETL系统的流程展开,将上一个部分的那些子系统按照提取数据.清洗和一致化.向呈现服务器提交以及管理ETL环境等四个方面进行了分类.(是不是说对ETL主要就是掌握这四个方面的内容 ...

随机推荐

  1. SWIFT中的repeat...while

    SWIFT中的repeat...while类似于JAVA\.NET中的 do while.大同小异只是把do换成了repeat var index = 10 repeat{ print(index) ...

  2. UIApplication的详细介绍

    UIApplication 什么是UIApplication? UIApplication对象是应⽤程序的象征.每一个应用都有⾃己的UIApplication对象,这个对象是系统自动帮我们创建的, 它 ...

  3. Kaggle新手入门之路(完结)

    学完了Coursera上Andrew Ng的Machine Learning后,迫不及待地想去参加一场Kaggle的比赛,却发现从理论到实践的转变实在是太困难了,在此记录学习过程. 一:安装Anaco ...

  4. MySQL性能优化方法三:索引优化

    原文链接:http://isky000.com/database/mysql-performance-tuning-index 大家都知道索引对于数据访问的性能有非常关键的作用,都知道索引可以提高数据 ...

  5. Linux文件IO与通用块层的请求合并

    本文参考https://mp.weixin.qq.com/s/Imt4BW-zoHPpcOpcKZs_AQ, 公众号“Linux阅码场” 请求合并就是将进程内或者进程间产生的在物理地址上连续的多个IO ...

  6. Android Mokoid Open Source Project hacking

    /***************************************************************************** * Android Mokoid Open ...

  7. opencv-python教程学习系列4-opencv绘图函数

    前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍opencv绘图函数,坚持学习,共同进步. 系列教程参照OpenCV-Python中文教程: 系统 ...

  8. chapter02“良/恶性乳腺癌肿瘤预测”的问题

    最近比较闲,是时候把自己以前看的资料整理一下了. LogisticRegression:由于在训练过程中考虑了所有的样本对参数的影响,因此不一定获得最佳的分类器,对比下一篇 svm只用支持向量来帮助决 ...

  9. Descriptor&web.xml

    Deployment Descriptor部署描述符: - 部署描述符是要部署到Web容器或EJB容器的Web应用程序或EJB应用程序的配置文件. - 部署描述符应包含EJB应用程序中所有企业bean ...

  10. dbt seed 以及base ephemeral使用

    seed 可以方便的进行数据的导入,可以方便的进行不变数据(少量)以及测试数据的导入, base 设置为 ephemeral(暂态),这个同时也是官方最佳实践的建议 项目依赖的gitlab 数据可以参 ...