热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

FOCUS数据管理:数据字典与多维模型FocusBI学院

这是我从工厂出来的第五个年头,也是我第一次主动写年终总结;回想这一年来一点成就都没有,想想都有点后怕;而且每天还是干着同样的事情,容易被新手代替,由于我比较厌烦每天重复的干同样的

FOCUS数据管理:数据字典与多维模型

       这是我从工厂出来的第五个年头,也是我第一次主动写年终总结;

       回想这一年来一点成就都没有,想想都有点后怕;而且每天还是干着同样的事情,容易被新手代替,由于我比较厌烦每天重复的干同样的活,所以我开始思考是否有系统能帮我干活或者帮我处理掉大部分工作来提高工作效率和解决问题的速度。我的工作是每天处理不同的数据问题,这些数据几乎是整个企业的数据整合,所以得建立数据仓库来管理企业数据支持企业各层次的业务需求。

       建数据仓库大部分是体力活,看在体力活的面子上我萌发出一个想法,把体力活让系统来完成。这个想法就是《FOCUS数据管理》的第一个版本《BI项目管理》,它能帮我管理数据库、SSIS(ETL)、SSAS。经过不知道多少个凌晨终于有了《BI项目管理》,通过在公司项目上一段时间的使用,觉得《BI项目管理》的功能不过完善;决定推倒重新开发《FOCUS数据管理》。

FOCUS数据管理


 

  《FOCUS数据管理》最初的设想是分为四个模块:(一)系统配置管理,(二)内部数据采集,(三)内部数据管理,(四)外部数据管理。我想大部分人看到这些名称就知道这些模块的功能作用;

       系统配置管理:用于管理系统参数、业务SQL语句配置、权限控制。

       内部数据采集:用于帮助解决企业没有主数据系统或者管理企业基础字典规范。

       内部数据管理:用于管理数据仓库元数据、数据处理过程监控、多维分析模型分解、随时提取数据等。

       外部数据管理:开放接口用于企业需要的外部数据提取并整合为企业内部的数据仓库。

 

       截止到19年1月中旬已经完成系统配置管理和内部数据管理模块。这里我介绍一下内部数据管理模块如何提高我的工作效率;

       首先登录《FOCUS数据管理》

      

数据库表结构


 

数据字典管理:

              数据字典可以说是数据仓库的命门,数据仓库可以被删除但是数据字典不能没有,很可惜的是95%以上的BI项目都没有数据字典,即使有也只是占时的可能你们是用excel或word一个一个的记录,更改变化记录多了慢慢的就不会在去记录。在数据仓库建立的过程中它是从各个业务系统中提取几百上千个字段及几十张表组合而成,这些字段不是固定的随着业务的需要会对数据仓库进行修改;人的天性是懒惰的我也不例外,随着数据仓库的壮大,各种事情越来越多,就不会去记录这些字段的中文描述或含义。

       不管你的数据仓库分为几层,那么我们必须层层管理,即使你的数据仓库有业务层我们也的对业务层数据库进行数据字典管理。我现在已经成为了一种习惯只要是要我去接手的数据库我第一件事就是对它逆向工程。《FOCUS数据管理》中的数据字典管理很简单,只要连接你的数据库服务器就行了,可以对服务器上的任何数据库、任何表进行数据字典管理,如果没有表说明、列说明就直接在数据字典管理中进行增、删、改就行了,而且这个是随时可以打开查询的。

 

 数据空间管理

         数据空间相当于你的房间,当你房间里面的东西越来越多的时候是不是会考虑多租一间,同时也会产生很多垃圾把房间搞的很脏这时你就会清理,这就是数据空间管理的作用。当数据行和表空间达到一定的量级数据库的性能会越来越慢,这时就应该考虑分区或者分表;索引空间也是一样,当表在不断的增加数据时二叉树算法会产生很多索引碎片拉低查询速度,这时就应该重建索引。

 

数据字段空值率

       不管是业务库还是数据仓库只要数据字段出现空值就应该警惕,可能业务库会容许大量字段有空值,这就直接导致了数据仓库没几个分析维度属性可以使用。数据仓库中的字段空值一定要小心、要小心、要小心,重要的事情说三遍。空值的后果就是直接导致数据不准确,如果运营部门、管理层、决策层没有看出来数据是错的,拿着从数据仓库中提取的数据做了一些决策,这样后果会很严重。如果能提前知道字段空值把它处理掉或者能说出为什么是空值,后面就不会跟业务部门各种扯皮。数据仓库中有几百上千个字段怎样才能知道哪些字段有空值?《FOCUS数据管理》提供了一键出结果,直接告诉你哪个表哪个字段总行数空值行数占比而且数据库任你选。

 

数据表关系

       我发现很多人都不愿意给表做外键,以前我也不太喜欢做外键,因为外键让人非常痛苦,后来我明白不做外键让人更痛苦,这个只能自己体会。

 

 

SSIS监控


 

       请阅读:

 

SSAS管理


 

       SSAS确实为很多企业提供了很好的决策服务,但是创建一个企业成熟的多维分析服务项目不是一时半会就能搞定,也不是半年一年就能成功;它需要至少三到五年才能与企业各个部门融合,让企业文化认可,需要成熟的商业分析师和技术专家配合才能做得好BI项目;成功的BI项目非常少。一般情况下BI人员流动性很大,挖墙脚的到处都是;项目人员流失不能及时招人顶替,源源不断的业务需求只好堆积在那里,招到人后只给一两天的时间熟悉项目看下文档就要上手干,那文档就是个四不像,一百多张表、一千多个计算量值、几百个指标,招到人后也容易把人给逼走。有很多人觉得是PM不合格,不是你学了PMP就能管理好项目带得好团队。培养一位合格的BI人才不容易,培养一位合格的BI项目经理更不容易,在培养很难流失容易的环境下让新来的随时拿到项目最新的文档、随时查看之前项目人员完成的工作包。唯一的办法就是对 数据仓库、SSIS、SSAS逆向工程而且是随时逆向工程。

 

维度数据

       SSAS逆向工程能拿到CUBE的每一个维度及维度属性的值。这些维度数据有什么作用?基础数据也就是主数据。

  

事实数据

       SSAS逆向工程能拿到CUBE的每一个量值组的值,而且这个量值组对应的维度键同时带出来,这些数据就是业务部门、管理层需要的、代表业务场景的指标数据,虽然大类没有出现在这里但是经过简单的处理就很方便拿到。

 

模型管理

       我在《总线矩阵》中写过:总线矩阵也是BI核心之一,基本上只要详细了解企业业务战略线就能得出总线矩阵,它对应着企业每一个业务单元,提取业务单元中的一致性维度和事实量值组 组合成企业总线矩阵也就是多维分析模型;总线矩阵也是BI项目实施交付的必要成果之一,它与数据仓库的概念模型非常吻合。

       下图是通过人工处理得到的,现在《FOCUS数据管理》中可以***选择项目和模型就能得到矩阵图,虽然还有一点点技术问题没有解决。解读一下下图:量值组就是指标类别、维度就是指标的分析角度,下面的维度属性就是分析角度中的因子;意思就是说你想看某个指标只要找到对应的维度红点下面对应的维度属性,也就是说同指标找不同的维度组合、不同的指标找同维度组合。在项目初期可能做了维度和量值组个十个左右很容易掌握,随着越来越多的业务部门和需求加入到BI项目中,项目不断扩大,需求越来越广,越来越难以驾驭,也许你最多做过不超过30个维度和量值组的项目,你是无法想象80多个量值组、50多个维度、600多个指标这样的项目,之前的人走了新来的不敢动。

计算量值

       量值是对应真实业务场景的指标,得到每一个指标不是单纯的汇总,它必定是多个分支组合而成或者再计算如:最后一个非空值、非重复计数、半累加等。我以前给一个有600多个指标的项目修改一个量值组,我花费了两天还没有搞定,修改过程中不是在找关联的量值就是在找关联量值的路上,内部错综复杂 还涉及到 数据仓库和ETL,也许是我从其他行业项目调过去对业务不了解,其实关键原因是项目文档四不象有跟没有一样。

 

 

数据***查询


 

       拿起保温杯泡一杯枸杞菊花茶后继续。SSAS通过各种比或率监控到业务出现问题,这时业务会找你拿明细数据,SSAS的优点是展现业务指标让你发现问题,而不能很好的同时向下钻取查看明细数据。平时业务部门或领导们想要一些临时数据,你很负责任的拿着小本本记录他们的需求,思考需求取数的逻辑,写完十几个表的关联几十行SQL,跑完数据给他们,他们说取的数据不是他们想要的那种或者需求有变或者不用这些数据了,此时你大脑中的几十行SQL突然变成几十只*** 闪闪而过。发现问题的指标明细数据  和 业务需求的临时数据 都能用业务语言描述的很清楚,那么是否有一种用业务语言查询数据的方法就是让数据需求人员自己用业务语言拿数据,把业务说完立马出来他想要的数据。

配置查询源

       要以业务语言去查询数据库那必须要准备好业务模块对应的表。《FOCUS数据管理》中用配置查询源来管理和配置数据源方案,这里你可以选择与业务模块有关的任何数据库任何表来作为数据源。做好数据源方案后就可以***查询。

 

***查询

              ***查询很简单,只要在配置查询源选好表,查询源就会在右下角下拉框出现,这里你可以***选择查询源,选择玩查询源后最上方就会出现查询源中的所有表字段元数据,你可以任意选择你业务需要的字段,然后点击刷新按钮下方就会出现数据,刷新完按钮后你就可以开始选择你需要的业务数据的条件例如:你需要租一间位置在天河区租金1000到2000元而且是简单装修的房子;选择完条件后点击刷新按钮,你想要的数据就出来了就这么简单。如果你想把这个方案保存下来方便下次查询那就点击保存按钮 输入你的方案名称就会在方案区域出现你保存的方案, 你可以随时重新查看数据。

 

 

总结


 

       任何项目开发比较简单,但是后期维护和修改就很难,因为开发和维护及修改并不是同一个人或着是同一个团队。《FOCUS数据管理》对BI项目提供了后期维护和修改的项目文档,就是对项目实时逆向工程随时获取项目各种信息。做项目就是在源源不断的获取原来的信息为现在的业务需求实现做准备,所以管理好 业务层、标准层、仓库层数据结构信息,监控好ETL,随时查看SSAS组成成分以及问题指标明细数据和临时需求数据 让需求人员随时自己用业务语言可以查,就能减少你工作中百分之六七十的工作,这样你基本上可以同时搞的两个项目,这并不能满足我的想法,我的想法是SSAS能不能不要人工去做有没有只要配置就能出来SSAS,ETL能不能不要人工去做有没有只要业务人员自己像***查询一样选择字段描述条件就能打包成SSIS每天自动跑数,数据仓库能不能不要人工去做有没有只要业务人员自己像***查询一样取各个业务系统选择要提取的字段选择好后自动生成数据仓库;说完我的想法感觉自己都要失业了。

商业智能教程课件下载


                                                                                                                                       

关注微信公众号:FocusBI,下载教程PDF,已关注回复课件获取下载地址。

 

 

 

历史文章


 

FocusBI: SQL Server内核

FocusBI: 总线矩阵(原创)

FocusBI: 数据仓库 (原创)

FocusBI: 商业智能场景(原创)

企业数据管理战略

FocusBI: SSIS体系结构(原创)

FocusBI: 使用Python爬虫为BI准备数据源(原创)

FocusBI: SSIS 开发案例(原创) 

FocusBI关注者
FocusBI:SSAS体系结构(原创)
FocusBI:租房分析&星型模型
FocusBI:地产分析&雪花模型
FocusBI:MDX检索多维模型
FocusBI:租房分析可视化(网址体验)

FocusBI: 《DW/BI项目管理》之数据库表结构 (原创)

FocusBI:《DW/BI项目管理》之SSIS执行情况


推荐阅读
  • TechStride 网站
    TechStride 成立于2014年初,致力于互联网前沿技术、产品创意及创业内容的聚合、搜索、学习与展示。我们旨在为互联网从业者提供更高效的新技术搜索、学习、分享和产品推广平台。 ... [详细]
  • 本文详细介绍了网络存储技术的基本概念、分类及应用场景。通过分析直连式存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)的特点,帮助读者理解不同存储方式的优势与局限性。 ... [详细]
  • 构建基于BERT的中文NL2SQL模型:一个简明的基准
    本文探讨了将自然语言转换为SQL语句(NL2SQL)的任务,这是人工智能领域中一项非常实用的研究方向。文章介绍了笔者在公司举办的首届中文NL2SQL挑战赛中的实践,该比赛提供了金融和通用领域的表格数据,并标注了对应的自然语言与SQL语句对,旨在训练准确的NL2SQL模型。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 本文将介绍由密歇根大学Charles Severance教授主讲的顶级Python入门系列课程,该课程广受好评,被誉为Python学习的最佳选择。通过生动有趣的教学方式,帮助初学者轻松掌握编程基础。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • 在Linux系统中配置并启动ActiveMQ
    本文详细介绍了如何在Linux环境中安装和配置ActiveMQ,包括端口开放及防火墙设置。通过本文,您可以掌握完整的ActiveMQ部署流程,确保其在网络环境中正常运行。 ... [详细]
  • 本文深入探讨了如何通过调整InnoDB的关键配置参数来优化MySQL的随机IO性能,涵盖了缓存、日志文件、预读机制等多个方面,帮助读者全面提升数据库系统的性能。 ... [详细]
  • 本文介绍了如何利用npm脚本和concurrently工具,实现本地开发环境中多个监听服务的同时启动,包括HTTP服务、自动刷新、Sass和ES6支持。 ... [详细]
  • 深入理解Shell脚本编程
    本文详细介绍了Shell脚本编程的基础概念、语法结构及其在操作系统中的应用。通过具体的示例代码,帮助读者掌握如何编写和执行Shell脚本。 ... [详细]
  • 本文详细介绍如何在Linux系统中配置SSH密钥对,以实现从一台主机到另一台主机的无密码登录。内容涵盖密钥对生成、公钥分发及权限设置等关键步骤。 ... [详细]
author-avatar
Max_coffee
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有