维度建模工具

幵始维度建模工作前,项目组需要理解业务需求,以及作为基础的源数据的实际情况。 通过与、 Ik务代表交流来发现需求,用于理解他们的基于关键性能指标、竞争性商业问题、 决策制定过程、支持分析需求的目标。同时,数据实际情况可以通过与源系统专家交流, 构建高层次数据分析访问数据可行性来揭示。
维度模型设计期间主要涉及 4 个主要的决策: (1) 选择业务过程 (2) 声明粒度 (3) 确认维度 (4) 确认事实 要回答上述问题,需要考虑业务需求以及协作建模阶段涉及的底层数据源。按照业务 过程、粒度、维度、事实声明的流程,设计组确定表名和列名、示例领域值以及业务规则。 而业务数据管理代表必须参与详细的设计活动,以确保涵盖正确的业务。
业务过程是组织完成的操作型活动,例如,获得订单、处理保险索赔、学生课程注册 或每个月每个账单的快照等。业务过程事件建立或获取性能度量,并转换为事实表中的事 实。多数事实表关注某一业务过程的结果。过程的选择是非常重要的,因为过程定义了特 定的设计目标以及对粒度、维度、事实的定义。每个业务过程对应企业数据仓库总线矩阵 的一行。
声明粒度是维度设计的重要步骤。粒度用于确定某一事实表中的行表示什么。粒度声 明是设计必须履行的合同。在选择维度或事实前必须声明粒度,因为每个候选维度或事实 必须与定义的粒度保持一致。在所有维度设计中强制实行一致性是保证 BI 应用性能和易用 性的关键。在从给定的业务过程获取数据时,原子粒度是最低级别的粒度。我们强烈建议 从关注原子级别粒度数据幵始设计,因为原子粒度数据能够承受无法预期的用户查询。上 卷汇总粒度对性能调整来说非常重要,但这样的粒度往往要猜测业务公共问题。针对不同 的事实表粒度,要建立不同的物理表,在同一事实表中不要混用多种不同的粒度。
维度提供围绕某一业务过程事件所涉及的“谁、什么、何处、何时、为什么、如何” 等背景。维度表包含 BI 应用所需要的用于过滤及分类事实的描述性属性。牢牢掌握事实表 的粒度,就能够将所有可能存在的维度区分幵。当与给定事实表行关联时,任何情况下都 应使维度保持单一值。 维度表有时被称为数据仓库的“灵魂”,因为维度表包含确保 DW/BI 系统能够被用作 业务分析的入口和描述性标识。主要的工作都放在数据管理与维度表的幵发方面,因为它 们是用户 BI 经验的驱动者。
事实涉及来自业务过程事件的度量,基本上都是以数量值表示。一个事实表行与按照 事实表粒度描述的度量事件之间存在一对一关系,因此事实表对应一个物理可观察的事件。 在事实表内,所有事实只允许与声明的粒度保持一致。例如,在零售事务中,销售产品的 数量与其总额是良好的事实,然而商店经理的工资不允许存在于零售事务中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/508756.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Cube和Grouping 和Rollup

增强的聚合 Cube和Grouping 和Rollup 这几个分析函数通常用于OLAP中,不能累加,而且需要根据不同维度上钻和下钻的指标统计,比如,分小时、天、月的UV数。 GROUPING SETS 在一个GROUP BY查询中,根据不同的维度组合进行聚…

常见维度建模错误

需要避免的常见维度建模错误 错误 10: 在事实表中放入文本属性 要从数据仓库事实表中 挑出这些文本属性,并将它们放入维度表中。 错误 9: 限制使用冗长的描述符以节省空间 维度表从几何上看总是比事实表小很多。 错误 8: 将层次划分为多个维度 以用户看来最自然最 有…

2020-09-21

columns has 234 elements while hbase.columns.mapping has 92 elements (counting the key if implicit)) 根本原因: 对于4000个字符,hive Metastore中SERDE_PARAMS表中PARAM_VALUE字段的字符限制是此问题的根本原因。 此限制可防止Hive创建具有高列数…

2020-09-23

insert into table ads_user_action_convert_day select ‘2019-02-10’, uv.day_count, ua.order_count, cast(ua.order_count/uv.day_count as decimal(10,2)) visitor2order_convert_ratio, ua.payment_count, cast(ua.payment_count/ua.order_count as decimal(10,2)) orde…

2020-09-28

Mybatis中#{}和${} 1、#{}将传入的数据都当成一个字符串,会对自动传入的数据加一个引号(单引号?双引号?加了引号就对了)如: //传入的值是sex order by #{column} 解析后为 order by “sex” //将会出错 2…

PageUtil

Data NoArgsConstructor public class PageUtil implements Serializable {private static final long serialVersionUID 1L;/*** 总记录数*/private int totalCount;/*** 每页记录数*/private int pageSize;/*** 总页数*/private int totalPage;/*** 当前页数*/private int c…

springboot+事务,多张表的操作事务回滚

第一步,在springboot的启动类上开启事务,注解 EnableTransactionManagement 第二步:事务注解,回滚 Transactional(rollbackFor Exception.class) //Transactional和try catch捕获异常会让注解失效,所以: 第…

@EnableTransactionManagement

GetMapping("/saveData")ApiOperation("传感器数据上云-红外测温及气体")Transactional(rollbackFor Exception.class)public WebResult saveData(InfrareDataReqVo infrareDataReqVo){try {PigHeatEntity pigHeatEntitynew PigHeatEntity();pigHeatEntit…

根据经纬度显示地图轨迹

后端代码 public boolean saveCarGPSData(CarGPSReqVo carGPSReqVo) {Map<String,String> paramsnew HashMap<>(2);params.put("key",trsConfig.getCarGPS_key());params.put("coorType",carGPSReqVo.getCoorType());params.put("pageNu…

Linux vim 全选

全选&#xff08;高亮显示&#xff09;&#xff1a;按esc后&#xff0c;然后ggvG或者ggVG 全部复制&#xff1a;按esc后&#xff0c;然后ggyG 全部删除&#xff1a;按esc后&#xff0c;然后dG

两阶段聚合(局部聚合+全局聚合)

// 第一步&#xff0c;给RDD中的每个key都打上一个随机前缀。 JavaPairRDD<String, Long> randomPrefixRdd rdd.mapToPair(new PairFunction<Tuple2<Long,Long>, String, Long>() {private static final long serialVersionUID 1L;Overridepublic Tuple2&l…

java实现考勤机信息同步

/** * 更新传感器的用户信息 * * param sensorNumber * param attendanceEmployeeVos */ private synchronized void initializeAdd(String sensorNumber, List attendanceEmployeeVos) { if (attendanceEmployeeVos ! null && attendanceEmployeeVos.size() > 0) {…

Bug管理

Bug严重程度和优先级 bug两个重要属性就是优先级&#xff08;Priority&#xff09;和严重性(Severity)。通常Bug管理系统将严重性分为五个等级&#xff1a;Blocker、Critical、Major、Normal、Minor、Trivial。将优先级分为Immediate、Urgent、High、Normal、Low。 Bug的严重程…

处理魔法值

使用static final 定义常量或使用enum值 public static final String DANGERKEY_TRUE "1";if(DANGERKEY_TRUE.equals(dangerKey)){BigDecimal warningValue new BigDecimal(JedisUtils.get(WARNING_VALUE_KEY));model.addAttribute("isDanger", true);mo…

flink流处理

<?xml version"1.0" encoding"UTF-8"?> - - flink_warehouse com.kaikeba.flink 1.0-SNAPSHOT 4.0.0 flink_study - - cloudera https://repository.cloudera.com/artifactory/cloudera-repos/ - - org.apache.flink flink-streamin…

flink批处理

4.1 State 4.1.1 state概述 Apache Flink — Stateful Computations over Data Streams 回顾单词计数的例子 java /** 单词计数 */ public class WordCount { public static void main(String[] args) throws Exception { StreamExecutionEnvironment env StreamExecution…

utils

Service(“MarketingExpensesService”) public class MarketingExpensesServiceImpl extends ServiceImpl<MarketingExpensesMapper,MarketingExpensesPO> implements MarketingExpensesService { Resource private MetadataApi metadataApi; Override public PageUtil …

使用Notepad++打造称心的IDE: Python PHP Perl

Notepad简介 Notepad 不仅有语法高亮度显示&#xff0c;也有语法折叠功能&#xff0c;并且支持宏以及扩充基本功能的外挂模组。 官方网站下载安装 https://notepad-plus-plus.org/官方仓库下载各种版本 https://notepad-plus-plus.org/repository插件下载 https://sourceforg…

DOS实用命令

查看DOS支持的命令 打开cmd窗口&#xff0c;使用help命令&#xff0c;查看各种命令&#xff0c;以及命令的作用 常用命令使用说明 命令的使用帮助可以在命令后添加 /?参数 C:\Users\Administrator\Desktop>dir /? 显示目录中的文件和子目录列表。DIR [drive:][path][…