主题建设之主题表

亿信BI中的分析表大多数都是基于主题表而创建的。那什么是主题?什么是主题表?主题表分哪几种类型、何种场景下使用、又是如何创建的?不同类型的主题表有什么区别等等,这就是我们今天要分享的内容。

什么是主题表?

主题是来自于数据仓库中的一个概念。根据项目需求,数据仓库需要进行主题建模,即根据用户决策时所关心的重点进行源数据的抽取、聚集等,将分散在各个业务系统中的数据根据主题有效的集成,形成事实表。亿信BI根据事实表生成主题表,以方便用户定义分析报表时拾取维度和指标,这就是BI的主题表。

主题表的分类

亿信BI中定义了三种主题类型:物理主题、虚拟主题、引用主题

物理主题

我们最常用的主题一般是物理主题,每个物理主题都会对应一张数据库表;若考虑数据映射方案的情况,有可能对应多张数据库表。

主题表和对应数据库表的结构一一对应,每个字段在数据库表中都对应相应的字段。

物理主题又分为3类主题表,如下表所示:

虚拟主题

类似于数据库中的视图表,在数据库中以存储数据值集形式存在。作用相当于筛选,并且数据可以来自于一个或多个表。可用于复杂的报表模板取数。

在BI中虚拟主题为我们解决了:

1. 可以制作指标来自于多个物理主题表的拖拽式OLAP分析表;

2. 通过虚拟主题表可以定义较复杂、来源于多个物理主题的取数关系,报表模板直接取定义好的虚拟主题表指标,简化了报表模板的制作和维护。

说明:

1. 虚拟主题可拾取该主题集下的所有主题表的维度和指标。

2. 虚拟主题无需关联事实表,其数据来源于多个关联在一起的事实表。

引用主题

在本主题集下对其它主题集下主题表的引用。因为在亿信BI中不能跨主题集取数,因此引入了引用主题的概念。

引用主题仅仅是对其它主题集下主题表的一个引用,没有自己的结构和数据,我们只是把它当做跨主题集取数的一个桥梁而已,最终取数还是来自于它所引用的主题表。

引用主题可以引用除本主题集外,其它主题集下的任意类型的主题表。

如何创建主题表?

选中主题表,鼠标右键,选择“新建主题表”:

输入主题表的“名称”和“标题”,选择要定义的主题表类型,点击:

其中:

【名称】由字母、数字、下划线组成,通常为主题表标题的首字母;

【标题】根据需求定义主题表名称,辨识度高。

下面细说五大类型主题表是如何创建的。

创建物理主题

【使用场景】

1. 主题表上的字段只是后台某个数据库表的很小一部分,此时想直接在前台界面将主题表上手工一一创建相关指标;

2. 后台没有数据库表的结构,想通过前台创建主题表的方式即创建了主题表又创建了后台数据库表结构。

在这两种情况下,都可以直接用创建物理主题表的方式。

【创建步骤】

输入主题表的“名称”和“标题”之后,选择“创建物理主题”,点击“”:

点击“”,添加新节点:

其中:

【名称】通常与数据库表字段名称一致。

【别名】通常根据业务意义进行定义。当主题表的结构发生了变化, 只要别名没有改变,那么在分析表中使用别名引用的字段就不会发生变化或错误。别名可以为空,若不为空,则优先级高于名称。

【标题】对指标进行文字型描述,便于用户的理解和使用。

【是否维】定义是否与维表关联。

【对应维表】如果与维表关联,则选择对应维表。

【数据类型】字段的数据类型,包含6种类型:字符、整型、浮点、布尔、日期和大字段。不同的字段含义选择合适的数据类型。

【长度】字段的长度。

【小数】数值型字段小数点位数。

【允许为空】是否允许空值。

【是否唯一】是否允许数据重复存在。

定义好主题的字段之后,可切换至“树形”模型,通过“”调整字段的顺序:

若检查无问题,点击“”保存主题表,并设置关联数据库表。

保存后,在“主题表”下可看到已创建好的主题表:

在“数据库管理”中查询到“FACT_WLZT1”该张数据库表。

根据数据库表创建物理主题

【使用场景】

数据库已有一张事实表FACT_SRZC_NEW(医疗机构收支表),要求根据该事实表,在BI平台上创建一张主题表。

【创建步骤】

输入主题表的“名称”和“标题”之后,选择“根据数据库表创建物理主题”,点击“”:

在相应的“映射方案”中选择数据库表名“FACT_SRZC_NEW”,点击“”:

完成后,还可对主题表进一步修改,比如添加别名、标题,挂载维表等。

若检查无问题,点击“”保存主题表。

创建带表样的物理主题

【使用场景】

1. 在i@Report中有一张采集报表,现需要在BI中分析其指标,就可以根据采集表样设计带表样的物理主题;

2. 客户已给出分析表样,可根据需求设计带表样的物理主题。

【创建步骤】

比如我想创建一张下图图样的主题,怎么创建?

输入主题表的“名称”和“标题”之后,选择“创建带表样的物理主题”,点击“”:

根据需求设计表样:

给每个字段添加内容,比如“单位名称”,选中右侧表元,添加相应内容:

设置完成后,点击“”保存主题表。

若是这张表样在i@Report中存在采集报表,格式为NPF,可直接将此报表导入到亿信BI中并创建为带表样的主题表。共有2种方式:

第一种:主题表鼠标右键,选择“导入npf文件”:

注意:

此处需要将npf文件压缩上传,适合批量创建带表样的主题表。

第二种:新建带表样的物理主题,点击“”的小三角-》文件-》装入本地文件,适合创建单个带表样的主题表。

带表样的物理主题创建完成后,还缺少关键的一步:给主题表关联数据库。

选中主题表所在的主题集,鼠标右键-》属性:

在“数据表映射”中双击此物理主题,弹出“数据表映射属性”,下拉选择数据库表名:

添加完成后,点击“”即可。

创建虚拟主题

【使用场景】

1. 想分析的指标和维度来自多个主题表中,希望整合到一张主题表中。

2. 想分析的指标需要做再次“加工”且此指标经常被使用。(通过较复杂运算得到)

【创建步骤】

输入主题表的“名称”和“标题”之后,选择“创建虚拟主题”,点击“”:

切换至“树形”模式,在“”上右键选择“成批拾取”:

下方显示该主题集下的所有主题表,点击不同主题表的维度和指标可拾取到该虚拟主题中。

若需要对指标进行分组,可先进行分组,再拾取指标。

再给某个分组下拾取指标,指标还可进行各种运算:

若检查无问题,点击“”保存主题表。

创建引用主题

【使用场景】

1. 想分析的指标来源于不同主题域下的主题表;

2. 想分析的指标来源于不同的数据库连接池(即不同的数据库用户);

3. 想分析的指标来源于不同种类的数据库。

【创建步骤】

输入主题表的“名称”和“标题”之后,选择“创建引用主题”,点击“”:

下拉选择除本主题集以外,不同主题域下的各类型的主题表:

点击“”即可。

主题表编辑模型

主题表的编辑模型共有以下四种:

列表

主题表默认列表显示,可见字段名称,标题,类型等。

树型

该模式主要是层次比较清晰,可以增加分组,编辑查看起来也比较方便。

xml

主题表内容都保存在xml中,xml编辑器主要是针对那些需要从外部拷贝粘贴一些xml内容到编辑器中进行快速批量编辑的操作。

可视化

该模式给用户提供一种可视化的建模方法,通过简单的拖拽就能很快的定义出一张主题表;并且在可视化模式下,维表和事实表的关联直观表达给我们。

四种不同的模式具有不同的优缺点:

本文来自企鹅号 - 小亿资讯媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏码神联盟

碎片化 | 第一阶段-06-第一个小程序-视频

如清晰度低,可转PC网页观看高清版本: 第一个java程序Hello word 暂时我们先使用记事本来编写代码,不建议直接使用开发工具eclipse,那都自动生...

3708
来自专栏程序员互动联盟

【答疑释惑 第十讲】如何在windows下学习linux?

疑惑一 现在手游的server 端,一般都用哪种语言开发? 业界主要的是c/c++ + Python/lua模式做游戏服务器。c/c++做网络通讯数据传输,py...

3555
来自专栏架构师之路

分布式ID生成器 | 架构师之路

一、需求缘起 几乎所有的业务系统,都有生成一个唯一记录标识的需求,例如: 消息标识:message-id 订单标识:order-id 帖子标识:tiezi-id...

5437
来自专栏张戈的专栏

WordPress发布文章同步到新浪微博失败的问题解决与分享

张戈博客很久之前分享过一篇 WordPress 发布文章同步到新浪微博 的文章,但经常有站长留言反馈同步失败,我一直觉得是代码部署问题。 最近很长一段时间,张戈...

3627
来自专栏Java后端技术栈

面试必备:如何将一个长URL转换为一个短URL?

前几天整理面试题的时候,有一道试题是《如何将一个很长的URL转换为一个短的URL,并实现他们之间的相互转换?》,现在想起来这是一个绝对不简单的问题,需要考虑很多...

2392
来自专栏北京马哥教育

Python黑科技:利用Python实现微博监控小姐姐动态

? 0x00 前言: ? 前几个星期在写一个微博监控系统 可谓是一波三折啊 获取到微博后因为一些字符编码问题 导致心态爆炸开发中断 但是就在昨天发现了另外一个...

5005
来自专栏Jacklin攻城狮

iOS权限完整解决

3175
来自专栏SDNLAB

SDN实战团分享(三十一):Nutanix超融合之架构设计

超融合平台 针对于超融合的概念有着不同的理解,因为组件不同(虚拟化、网络等)而理解不同。然而,核心的概念如下:天然地将两个或多个组件组合到一个独立的单元 中。在...

3797
来自专栏idealclover的填坑日常

从零开始折腾博客(0):静态?动态?

这两天心血来潮,忽然想折腾一个属于自己的博客,也就是这一系列的缘由。而最终也总算是折腾出来了,要不你就不会看到这篇文章了

1321
来自专栏LET

谈谈JavaScript代码优化

2226

扫码关注云+社区