数据仓库——聚集

2024-04-01 09:52
文章标签 数据仓库 聚集

本文主要是介绍数据仓库——聚集,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

数据仓库基础笔记思维导图已经整理完毕,完整连接为:
数据仓库基础知识笔记思维导图

聚集

在对性能不断探索的过程中,聚集是最强大最、有效的数据处理工具。通过仔细规划和集成,聚集将队数据仓库性能产生巨大影响。无需针对特定的软件和硬件进行大量的投资,使用在数据仓库中已经存在的工具即可。与导出模式类似,聚集是一种补充性的数据结构,用来加快工作进度。聚集主要是通过汇总数据来获得改进性能的效果。

但是,聚集发挥作用,需要为每个查询选择正确的聚集,还需要为聚集填充数据并确保能够与基本数据模式保持同步。

理想的聚集对数仓用户是不可见的,每当需要时才默默地提供支持。理想的聚集也是免维护的,可以自动地建立和维护,不需要ETL开发人员介入。

聚集的基础知识

由于多维数据集首先是一种高性能的数据结构,因此构建汇总多维数据集的聚集几乎没有意义,然而如果原始多维数据集被调整为获得高容量而不是高性能,这样做是有用的。

汇总基本数据

  1. 在基本模式中存储粒度数据
  2. 在聚集中存储预先汇总的数据
  3. 描述聚集模式最方便的方法是描述事实表的粒度,与之相反的是描述什么被汇总
  4. 聚集模式的事实和维度要与基本模式中的事实和维度表示一直,这样才能确保获得一致的结果
  5. 为了性能上获得好处,聚集模式并不需要被优化的查询的粒度完全一致。
  6. 单个聚集并不能为所有查询带来性能方面的好处,可以采用多个聚集以不同的方法对同一个基本模式进行汇总。每个聚集预先跨不同维度计算数据,而不是采用连续级别的汇总,这样可以最大化聚集表能支持查询的数量
  7. 总会有一些查询不能通过聚集获得优化,任何需要访问粒度的查询,都必须被定向到原始星型模式

使用聚集

聚集星型模式中事实和维度属性与基本星型模型中相关的事实和维度属性一致,对利用聚集的查询的重写工作包含替换表名和关键字列。

对于某个给定的查询,在选择星型模式时,要获得最理想的性能,就需要考虑采用在事实表中具有行数最少并且能够回答查询的聚集星型模式。

仅仅允许有经验的开发人员拥有访问聚集的权利。终端用户和没有经验的开发人员仅允许访问基本星型模式。

加载聚集

围绕性能的原则开展设计工作,从原始星型模式构建聚集模式是有意义的,如果发生类型1变化,将导致增量式维度聚集更加困难。

通过采用一致性的概念指导聚集设计,能够保证汇总获得一致的结果,并使重写查询的过程变得尽可能简单。有助于保持ETL过程的简单。

将聚集表的来源定义在基本星型模式上可以确保结构和内容的一致性。

ETL过程中采用的表加载示例
  1. 加载基本维度
  2. 加载一致性上钻
  3. 加载基本事实表
  4. 加载聚集事实表
类型1变化

当基本数据和聚集被顺序加载时,若发生类型1变化,则需要重新加载聚集,而不是对其进行增量更新。

  • 基本模式被更新后,删除并重新建立聚集。这种方法通常要做的处理工作少,一些工具以此方式自定建立聚集表或者多维数据集
  • 在聚集时不使用类型1属性,类型2变化不会引起类似的问题,因为不会改变先前记录事实的环境。

作为聚集的多维数据集

当采用多维数据集存储维度设计时,为获得高性能,其数据集已经警醒过优化,因此没有必要汇总多维数据集。

多数体系结构都采用混合使用星型模式和多维数据集的方式。星型模式易于拓展,而多维数据集易于获得高性能。最佳的方法是利用星型模式存储粒度数据,细节数据,而多维数据集包含高性能的获取结果。这一安排十许多数据仓库实现获得成功的基础,由于都具有维度特性,多维数据集和星型模式存在天然的亲和性。多数维度产品都被建立成为支持从基本星型模式构建和设计多维数据集的方式。

使聚集不可见

聚集模式与数据库索引类似,与索引一样,为使查询更加快捷,聚集模式需要占用一些额外的空间。在利用聚集时需要重写查询,需要加载和维护聚集,同时保持聚集于原始模式的同步。

聚集导航

聚集导航能力消除了再编写查询时,需要开发人员选择基本星型模式或是一个或多个聚集的需要。工具以不同的方式、以结构的不同部分提供此种能力。聚集导航还能够提供其他额外的好处。

用户很难选择使用哪个星型模式组合,所以一般不对终端用户开放聚集,但是,也因此用户构建报表时不能获得聚集所带来的的性能方面的好处。

聚集导航是通用的来描述选择基本星型模式还是一个或多个聚集的术语,完成这种服务的软件产品或功能通常被称为聚集导航。

其他潜在的好处
  • 随意改变聚集,如果没有聚集导航器,在查询中就需要清楚地写明如何利用聚集。在数据库中增加新的聚集时,若要利用它,则需要重写已经存在的查询与报表。并且使随时添加和删除聚集成为可能,当从数据库增加或者删除聚集时,不需要重新考虑存在的报表,聚集导航器可以意识到发生的变化。
  • 离线或在线放置聚集,它可以提供按需使聚集离线的能力,在重建或刷新聚集时,聚集离线时,聚集不可用使性能降低,但是不会停止工作
  • 异构数据库,聚集导航器不只是简单重写SQL,还需要将其定向到不同的物理数据库上,这些数据库可能来自不同的提供商,或者需要将sql转换成另外一种语言,极大地扩展了解决方案的灵活性。
  • 异构前端,理想的聚集导航工具将会重写所有查询,无论查询是由商业智能工具,还是报表工具或命令行SQL实用程序提供的。

建立聚集和维护聚集

不可见聚集的另一部分是处理聚集的自动构建和维护工作。

建立聚集星型模式或聚集多维数据集工具通常会提供用户界面,开发人员可以利用该节点定义所需聚集的特征。聚集或多维数据集的建立工具通常是按照对星型模式和维度数据来建立的,这些产品能理解诸如事实、维度、代理键、自然键、缓慢变化等概念。

允许数据库管理系统维护聚集结构有时需要放弃对聚集维护和更新的完全控制,为了精确控制,如果不愿使用这种自动化方法,通常将建立和维护聚集工作放在ETL过程中。

层次和聚集

属性层次表示了一种存在于维度表数据中的主从关系,与属性间的父子关系不需要钻取数据一样,他们也不需要定义汇总层次。然而多数公户建立的聚集表火多维数据集都能够支持层次,在此情况下,围绕这些关系定义并文档化聚集可能会具有价值。

可选的汇总设计方案

遵循基本模式的维度聚集只是组织汇总存储的一种方式,并且单一表设计可能会带来麻烦。

对基本星型模式进行转换和汇总是一种导出模式而不是聚集,他也能够提供有用的性能好处,利用导出模式的查询与利用基本模式的查询在结构上存在区别。

单一事实表设计的目的是通过将汇总数据和细节数据存储在一起,而不是分别放在不同表中来简化聚集的存储。不要在同一表中存储不同层次的聚集,如果这样做,将会导致双重静思园或者更糟糕的事。需要避免双重计算。

这篇关于数据仓库——聚集的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/866854

相关文章

数据仓库理论知识

1、数据仓库的概念          数据仓库(英文:Date Warehouse,简称数仓、DW),是一个用于数据存储、分析、报告的数据系统。数据仓库的建设目的是面向分析的集成化数据环境,其数据来源于不同的外部系统,其结果开放给不同外部应用使用,为企业提供决策支持; 2、数据仓库的主要特征 数据仓库是面向主题性(Subject-Oriented )、集成性(Integrated)、非易

数据仓库: 6- 数据仓库分层

目录 6- 数据仓库分层6.1 简介6.1.1 数据仓库分层的优势6.1.2 常见的数据仓库分层模型6.1.2.1 四层模型6.1.2.2 三层模型 6.1.3 数据仓库分层原则6.1.4 数据仓库分层示例6.1.5 总结 6.2 ODS(操作数据存储)层6.2.1 ODS 层的主要功能6.2.2 ODS 层的特点6.2.3 ODS 层的设计要点6.2.4 ODS 层的应用场景6.2.5 总

数据仓库系统的实现与使用(含OLAP重点讲解)

系列文章: 《一文了解数据库和数据仓库》 《DB数据同步到数据仓库的架构与实践》 《数据湖(Data Lake)-剑指下一代数据仓库》 《从0建设离线数据仓库》 《基于Flink构建实时数据仓库》 阅读目录 前言创建数据仓库ETL:抽取、转换、加载OLAP/BI工具数据立方体(Data Cube)OLAP的架构模式小结 前言 数据仓库是数据仓库开发中最核心的部分。然而完整的数据仓库系统还会涉及

【数据产品案例】有赞大数据实践- 敏捷型数据仓库的构建及其应用

案例来源:@洪斌 案例地址: https://tech.youzan.com/you-zan-big-data-practice/ 1. 数据仓库处理:近源数据层→数据宽表→基础指标表 1)近源数据层:封装中间层,实现: a. 合并不同业务数据,如pc和app的日志数据 b. 脏数据屏蔽 c. 冗余字段合并 2)数据宽表:提取足够

一文说清什么是数据仓库

01 数据仓库的概念 数据仓库的概念可以追溯到20世纪80年代,当时IBM的研究人员开发出了“商业数据仓库”。本质上,数据仓库试图提供一种从操作型系统到决策支持环境的数据流架构模型。 目前对数据仓库(Data Warehouse)的标准定义,业界普遍比较认可的是由数据仓库之父比尔·恩门(Bill Inmon)在1991年出版的“Building the Data Warehouse”(

可以进行非机动车违停、人员聚集、临街摆摊、垃圾满溢、烟雾火情等城市治理场景的智能识别的智慧城管开源了

智慧城管视觉监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。 基于深度学习技术及强大的专家团队,针对多个工业垂类场景进行算法优化,打造最优的工业AI算法模型,提供更加精准的工业AI模型库,客户可直接选择适合自己业务场景的模型,快速实现业务落地

计算机毕业设计Hadoop+PySpark共享单车预测系统 PyHive 共享单车数据分析可视化大屏 共享单车爬虫 共享单车数据仓库 机器学习 深度学习

《Hadoop共享单车分析与预测系统》开题报告 一、课题背景与意义 1.1 课题背景 随着共享经济的快速发展,共享单车作为一种新型绿色环保的共享经济模式,在全球范围内迅速普及。共享单车通过提供便捷的短途出行服务,有效解决了城市居民出行的“最后一公里”问题,同时促进了低碳环保和绿色出行理念的推广。然而,随着共享单车数量的急剧增加,如何高效管理和优化单车布局成为共享单车运营商面临的重要挑战。

谈谈分组:sql的group by+聚集函数 和 python的groupby+agg

直接举例子+分析例子+总结来说,我先给几个表: 学生表:student(学号,姓名,年龄,院系); 课程表:course(课程号,课程名,学分); 学生选课表:sc(学号,课程号,分数); 啥时候用分组呢? 我由简至深来谈。 1、比如让我们查询各个课程号及相应的选课人数。 首先定位到sc表上,“各个”很明显就是要按课程分组,group by出场了,分组后对每组去统计选课人数,聚集函数出场了。

计算机毕业设计PyHive+Hadoop深圳共享单车预测系统 共享单车数据分析可视化大屏 共享单车爬虫 共享单车数据仓库 机器学习 深度学习 PySpark

毕业设计题目基于 Hadoop 的共享单车布局规划 二、毕业设计背景 公共交通工具的“最后一公里”是城市居民出行采用公共交通出行的主要障碍,也是建设绿色城市、低碳城市过程中面临的主要挑战。 共享单车(自行车)企业通过在校园、地铁站点、公交站点、居民区、商业区、公共服务区等提供服务,完成交通行业最后一块“拼图”,带动居民使用其他公共交通工具的热情,也与其他公共交通方式产生协同效应。 共享单车是

SQL 中聚集索引

今天做个试验,验证下聚集索引是不是改变表的物理结构。 第一步:创建表 --只有聚集索引CREATE TABLE Department(DepartmentID int IDENTITY(1,1) NOT NULL PRIMARY KEY,Name NVARCHAR(200) NOT NULL,GroupName NVARCHAR(200) NOT NULL,Company NVARCHAR(