概述
目录
商业数据的加工
抽取数据源中的指定数据
数据源的分类汇总(分组)
完善数据源
透视列与逆透视列
商业数据的整理与转换
查询编辑器
数据排序和筛选
数据源合并与转换
数据合并的重要性
数据合并的优点
格式和属性设置
创建和管理关系
数据建模
商业数据的加工
抽取数据源中的指定数据
有时候我们导入的数据源并不是我们全部所需要的,我们只需要其中的部分数据,这样的情况下,我们可以从数据源中进行满足条件的数据抽取。
数据抽取的方式大致有:
- 在数据库中使用SELECT语句进行指定数据的抽取
- 使用筛选功能抽取数据
- 使用函数抽取数据(如F、VLOOKUP函数等)等
数据源的分类汇总(分组)
分类汇总是对所有资料分类进行汇总。把资料进行数据化后,先按照某一标准进行分类,然后在分完类的基础上对各类别相关数据分别进行求和、求平均数、求个数、求最大值、求最小值等方法的汇总。
我们日常工作中经常接触到二维数据表格,我们经常需要根据表中某列数据字段对数据进行分类汇总。
数据分类汇总通常可以满足多种数据整理需求,如:
- 既想分类汇总,又想分类打印
- 不想分类打印,只是想随时查看各类数据的明细和统计情况
- 不想打乱正常的流水式数据表格的数据顺序,而是想随时查看各类数据的统计结果
分类汇总是统计中常用的方法。比如统计学生成绩,及格不及格的归类,分优良中差等级归类等。
完善数据源
在数据加工中,完善数据源的方式大致有:
- 根据现有数据进行信息的提取
- 对数据源中的原有数据列进行有效拆分
- 进行添加列和添加行的操作
- 根据数据列进行表达式的计算生成新列数据
- 进行分类汇总、条件列的操作方式完善数据源等等
透视列与逆透视列
这是对互逆的过程。
逆透视列是将二维表转化为一维表,一维表便于系统进行数据处理和分析。
透视列是将一维表转化为二维表,二维表更符合人的观察习惯。
概念:
一维表:每列都是独立属性,列和列之间不能在归为一类概念。录入原始数据,一般要有一维表。
二维表:至少有部分列是非独立的,同类概念/属性/参数(可归类为一类),那么就是二维表。二
维表,主要目的是展示,更容易理解,发现规律。
商业数据的整理与转换
查询编辑器
使用查询编辑器可连接到一个或多个数据源,调整和转换数据以满足自己的需要,然后将该模型加载到数据建模页面进行关系建模。
打开查询编辑器的方式有两种:
- 导入数据的时候,可以在导航器界面看到编辑的选项按钮,如果选择“编辑”,此时将启动“查询编辑器”并使用你从数据源中选择的表或其他实体进行填充。
- 通过点击开始功能区中的编辑查询按钮直接启动查询编辑器。
一旦查询编辑器与数据进行加载后,可以看到以下几个分区:
- 在功能区中,许多按钮当前处于活动状态,以与查询中的数据进行交互
- 在左窗格中,列出了所有查询(每个查询各对应一个表或一个实体)并可供选择、查看和定型
- 在中央窗格中,将显示已选择查询中的数据,可供调整
- 显示的查询设置窗口列出了查询的属性和应用步骤
在查询编辑器中,可以实现:
- 对数据的基本操作:如行列的管理和操作,数据类型的转换,数据的追加和合并等
- 对数据的转换:如对表格的转换,任意列和文本列的转换与操作等
- 对列的添加:添加条件列、索引列、自定义列以及调用函数等
- 在视图中可以打开高级编辑器,进行M函数的输入和管理
数据排序和筛选
排序方法有很多,可以按行、按列、升序、降序排序,也可以按颜色进行排序,有些时候我们也会多条件排序,比如先按地区,每个地区又从高到低排序等等。普通的排序,我们选中所要排序的列的某一个单元格, 点击右键,排序,选择要升序还是降序即可。第二种排序就是自定义排序,操作和普通排序是一样的,只是自定义排序可以选择多个条件。
筛选功能是非常的强大,可以单条件筛选,也可以多条件筛选,不同的格式筛选也会有不同的方法,例如:对日期的筛选我们可以筛选是介于某个时间段内、在某个时期之后的、或者是仅看某个月或者某个季度等等,像文本就是包含或者等于或者不等于某个字某个短语的,数字的就是更多了,等于、不等于、大于小于,大于等于等等。
两者的区别在于:
排序是为了将某列按照一定顺序(正序或者倒序)来排列。
筛选是为了将需要的值所在的行筛选出来。
数据源合并与转换
数据合并是把在不同数据源的数据收集、整理、清洗并加工,然后转换后加载到一个新的数据源,为数据消费者提供统一数据视图的数据集成方式。
数据合并的重要性
- 数据和信息系统分散。我国信息化经过多年的发展,已开发了众多计算机信息系统和数据库系统,并积累了大量的基础数据。然而,丰富的数据资源由于建设时期不同,开发部门不同、使用设备不同、技术发展阶段不同和能力水平的不同等,数据存储管理极为分散,造成了过量的数据冗余和数据不一致性,使得数据资源难于查询访问,管理层无法获得有效的决策数据支持。往往管理者要了解所管辖不同部门的信息,需要进入众多不同的系统,而且数据不能直接比较分析。
- 信息资源利用程度较低。一些信息系统集成度低、互联性差、信息管理分散,数据的完整性、准确性、及时性等方面存在较大差距。有些单位已经建立了内部网和互联网,但多年来分散开发或引进的信息系统,对于大量的数据不能提供一个统一的数据接口, 不能采用一种通用的标准和规范,无法获得共享通用的数据源,于是不同的应用系统之间必然会形成彼此隔离的信息孤岛。缺乏共享的、网络化的可用度高的信息资源体系。
- 支持管理决策能力较低。同时, 随着计算机业务数量的增加,管理人员的操作也越来越多,越来越复杂,许多日趋复杂的中间业务处理环节依然或多或少地依靠手工处理进行流转:信息加工分析手段差,无法直接从各级各类业务信息系统采集数据并加以综合利用,无法对外部信息进行及时、准确的收集反馈,业务系统产生的大量数据无法提炼升华为有用的信息,并及时提供给管理决策部门;已有的业务信息系统平台及开发工具互不兼容,无法在大范围内应用等。数据的共享度达不到单位对信息资源的整体开发利用的要求。简单的应用多,交叉重复也多,能支持管理和决策的应用少,能利用网络开展经营活动的应用更少。数据中蕴藏着巨大信息资源,但是没有通过有效工具充分挖掘利用,信息资源的增值作用还没有在管理决策过程中充分发挥。
数据合并的优点
- 底层数据结构的透明。为数据访问(消费应用)提供了统一的接口,消费应用无需知道数据在哪里保存、源数据库支持那种方式的访问、数据的物理结构、网络协议等。
- 性能和扩展性。数据合并把数据集成和数据访问分成了两个过程,因此访问时数据已经处于准备好的状态。
- 提供真正的单一数据视图。数据合并的优势是经过了数据校验和数据清理,使看到的数据更加真实、准确、可靠。
- 可重用性好。由于有了实际的物理存储,数据可以为各种应用提供可重用的数据视图,而不用担心底层实际的数据源的可用性。
- 数据管控能力加强。管控是面向服务的架构里面重要的概念。数据合并的优势是数据规则可以在数据加载,转换中实施,保证了数据管控。
格式和属性设置
在数据整理和转换时,我们可以更改数据的类型,如整数型、文本型、日期型等;也可以按需更改数据的格式,如设置成百分比、科学计数、货币格式等。
创建和管理关系
自动创建关系
导入多个表时,很可能需要使用所有这些表中的数据来执行一些分析。为准确计算结果并在报表中显示正确信息,这些表之间创建关系是必需的。
数据分析与可视化软件一般都可以轻松创建这些关系或者进入软件后点击自动检测功能即可实现自动创建关系。事实上,在大多数情况下,无需执行任何操作,软件导入数据后会自动执行自动创建相关操作。但有时,可能需要自行创建关系,或者需要对关系进行更改。
手动创建关系
创建关系:
- 在软件的“主页”选项卡上,选择“管理关系”>“新建”。
- 在“创建关系”对话框第一个表的下拉列表中,选择一个表。选择要在关系中使用的列。
- 在第二个表的下拉列表中,选择要在关系中使用的其他表。选择要使用的其他列,然后选择“确定”。
默认情况下,软件为新关系自动配置“基数”(方向)、“交叉筛选方向”和“激活此关系”选项。但是,可根据需要更改这些设置。如果为该关系选择的表均不具有唯一值,则将看到以下错误:ONE OF THE COLUMNS MUST HAVEUNIQUE VALUES(其中一列必须具有唯一值)。关系中至少有一个表必须具有密钥值的不同的唯一列表,该列表是对所有关系数据库技术的常见要求。
如果遇到此错误,可采用以下方式修复:
- 使用“删除重复项”创建具有唯一值的列。此方法的缺点是删除重复行时信息可能会丢失:而通常重复键(行)是有用的。
- 将包含不同密钥值列表的中间表添加到模型,该模型会链接到关系中的两个原始列。
手动编辑关系
编辑关系:
- 在“主页”选项卡上,选择“管理关系”。
- 在“管理关系”对话框中,选择关系,然后选择“编辑”。
配置其他选项
创建或编辑关系时,可配置其他选项。默认情况下,软件会根据最佳推测自动配置其他选项,但每个关系的配置可能会根据列中的数据有所不同。
基数
“基数”选项可以具有以下设置之一:
多对一(*:1):多对一关系是最常见的默认关系类型。这意味着一个给定表中的列可具有一个值的多个实例,而另一个相关表(通常称为查找表)仅具有一个值的一个实例。
一对一(1:1):在一对一关系中,一个表中的列仅具有特定值的一个实例,而另一个相关表也是如此。
一对多(1:*):在一对多关系中,一个表中的列仅具有特定值的一个实例,而另一个相关表可具有一个值的多个实例。
多对多(*:*):借助复合模型,可以在表之间建立多对多关系,从而消除了表中对唯一值的要求。它还删除了旧解决办法,如为建立关系而仅引入新表。
交叉筛选器方向
“交叉筛选方向”选项可以具有以下设置之一:
双向:出于筛选目的,两个表被视为如同一个表。“双向”设置非常适用于其周围具有多个查找表的单个表。例如,具有部门查找表的实际销售额表。此配置通常称为星型架构配置(一个具有多个查找表的中心表)。但是,如果你拥有两个或多个具有查找表(部分查找表共有)的表,则“双向”设置不适合。继续讲之前的示例,在本例中你还一个预算销售表,它记录了每个部门的目标预算。并且,部门表格同时连接到标售表和预算表。对于此类配置,请避免“双向”设置。
单向:最常用的默认方向,这意味着连接表中的筛选选项适用于将求值总和的表。如果你在EXCEL2013 或更早的数据模型中导入了POWER PIVOT ,则所有关系都将具有单个方向。
激活此关系
勾选后,关系会用作处于活动状态的默认关系。如果两个表格之间存在多个关系,则软件可通过活动关系自动创建包含这两个表的可视化效果。
数据建模
数据建模概念
数据建模其实就是识别表的类型和表的关系,并按照设计的需求来搭建关系。
原因:当面对庞大的数据源和各种报表时,一定要找一个切入点。这个切入点就是浏览各个表,然后对表进行分类。在建模的过程中,最主要的就是分清楚数据表(又叫事实表)和维度表(又叫LOOKUP表),在分清楚表的类型后,即可进行布局设计。一般都是维度表在上,数据表在下创建关系。
区别介绍 | 数据表 | 维度表 |
介绍 | 数据表中一定包含数据内容 | 一般行数较少,少于数据表 |
举例 | 产品销售数据表、商品进销存表等 | 用户类别表、产品类型等 |
用途 | 度量值一般都来自于数据表的计算 | 在可视化视图中一般都在行、列、筛选器和切片器 |
关系视图 | “*”的一端,一般为关系箭头的末端 | ”1”的一端,一般为关系箭头起始端 |
保持数据建模原则并处理多对多关系
Power BI数据建模:
- 鼠标拖拽形成关系
- 处理筛选器方向
- 处理关系的激活与非激活
- 理解维度建模与数据仓库
- 处理多对多关系
如果想知道各省分别有多少销售额,就是从地区来筛选订单;而如果想知道单价大于1000的订单都卖到过哪些地区则从订单来筛选地区。
以这么说,Power BI 的双向筛选器是给真正知道他在做什么的分析师用的,在默认状态下务必使用单向筛选器,也就是将筛选器方向全部改为单向。
如何看懂Power BI 的数据模型
筛选器的方向通常指明了观察问题的方向。也就是:
- 从地区的角度看销售额大小
- 从客户的行业角度看销售额大小
- 从产品的类别角度看销售额大小
- 从特定年份不同月份角度看销售额大小
除了看销售额大小,还可以看:利润,利润率,同比利润率等等。通过这些套路,可以完成对数据的初步探索。如果注意观察思维的语义,不难发现:
- 思考的角度(通常称为维度),放在Power Bl的坐标轴字段。
- 思考的问题(通常称为度量值),是一个能用数值表示的量,放在Power Bl的值字段。
Power Bl 提供了对度量值的默认算法,包括:求和,计数,非重复计数,求平均等。而最佳实践是不依赖Power Bl 提供的默认计算,而是自己显式地定义度量值,哪怕仅仅是求和。例如:
- 总销售额= SUM(订单[销售额])
- 总利润率=SUM(订单[利润])/ SUM(订单[销售额])
总利润率是Power Bl 无法默认实现的,必须由设计师显式定义。
Power BI 中的关系(多对一)
如果知道正在做什么,那不需要遵守下面的约定,如果不知道正在做什么,请遵守:
- 保持关系仅限于:多对一或一对多。
- 保持筛选器方向仅限于:单一。
由于多对一和一对多的意思是一样的,所以统一叫做一对多。此时,我们的模型就仅仅存在一种模型中的关系那就是:保持单一筛选的一对多关系。
类型 | 关系 | 交叉筛选器方向 |
1 | 多对一 | 单一 |
2 | 多对一 | 两个 |
3 | 一对多 | 单一 |
4 | 一对多 | 两个 |
5 | 一对一 | 两个 |
Power BI 中的关系(多对多)
这就是典型的多对多关系。它表示了事物之间的一种可能关系。如果这个问题不够生动的话,可能更熟悉的是:
- 不同类产品卖给过多少客户?
- 不同行业职业客户买过多少种产品?
- 不同省份提供过多少种产品?
- 不同类产品从多少个城市进过货?
解决多对多问题的第一步是识别多对多问题,例如:一种产品可能卖发给过多个客户,一个客户可能买过多种产品。因此,这种产品与客户的购买关系就是多对多的。
在Power BI 中处理多对多关系
首先,在Power Bl中并不直接支持多对多关系;根据上述的原则:保持单一筛选的一对多关系也无法反应这样关系。这时需要一个桥,桥是一种形象的称呼。可以这样理解:产品和客户之间无法直接建立多对多的关系,但可以通过一个中间表作为桥一样(称为桥表),来实现产品和客户之间的连接。
可以看出:进货单正是货源地与产品之间的桥,订单正是产品与客户之间的桥。
它们通常有这样的特点:
产品,客户,货源地表示种实体(现实中存在的物体) 。订单 (以及订货单) 表示一种谁(客户实体)在什么时间与谁(产品实体)发生关系的记录。也就是说:实体是通过表来表示的;实体之间发生关系会形成记录,也用表来表示。从这个意义上,订单已经不再强调它按维度建模理论中的事实表角色,而是强调它连接了两个实体作为关系记录而存在。
在Power BI 中实现基于多对多关系的计算
在Power BI 中实现回答上述问题,可以常规通度量值加入桥表作为筛选器处理。
可以看出常规度量值的计算是无效的,原因在于常规度量值只能满足按照箭头的方向传递。而加入了桥表作为筛选器就将本来断开的两个实体连接起来,使得原度量值恢复了计算能力。
可以看出只需要按CALCULATE(常规度量值,桥)的形式来改写常规度量值,就可以实现基于多对多关系的计算。以上述为例,它表明了这样一种意义:基于产品与客户的关系记录订单表来看,按产品的属性:类别,分别计算客户数度量值是多少。
值得强调的是,这仍然是一个模式(套路):
- 基于实体与实体的关系记录
- 按某实体的属性作为观察出发点
- 计算与另一实体有关的度量值
这三条几乎严格地给出了这个套路,这要遇到类似问题,都可以这样套用。
经典的关系模型布局
星型:所有的维度表都直接与数据表关联。
雪花型:布局像雪花一样,自中心向外延伸的,雪花型布局可以有多层的维度表。
区别 | 星型 | 雪花型 |
维度表 | 只有一层维度表 | 可以有多层维度表 |
布局 | 较为简单 | 相对较复杂 |
项目使用模式 | 理想型的布局模式。星型模型因为数据的冗余所以很多统计查询不需要做外部的连接,因此一般情况下效率比雪花型模型要高 | 原则上尽量不使用(在维度表数据量极大,需要节省存储空间的情况下,或者是业务逻辑比较复杂、必须要体现清晰的层次概念情况下,可以使用雪花型维度。) |
从查询性能角度来看 | 在OLIP-DW环节,由于雪花型要做多个表联按,性能会低 于星型架构。【OLTP即联机事务处理, 就是我们经常说的关系数据库,意即记录即时的增、删、改、查,就是我们经常应用的东西,这是数据库的基础】 | 但从DW-OLAP环节,由于雪花型架构更有利于度量值的聚合,因此性能要高于星型架构。【OLAP即联机分析处理,是数据仓库的核心部心,所谓数据仓库是对于大量已经由OLTP形成的数据的一种分 析型的数据库,用于处理商业智能、决策支持等重要的决策信息;数据仓库是在数据库应用到一定 程序之后而对历史数据的加工与分析,是处理两种不同用途的工具而已。】 |
从层次概念来看 | 雪花型架构更加贴近OLTP系统的结构,比较符合业务逻辑,层次比较清晰 | |
从存储空间角度来看 | 星型架构会产生数据冗余 | 雪花型架构具有关系数据模型的所有优点,不会产生冗余数据 |
POVIT(数据透视表)和POWERPOVIT(超级透视表)的区别
POVIT 代表EXCEL 中的数据透视表,即把表进行“拉扁拉长”的操作,将关键的信息通过使用LOOKUP 函数整合到一张表中,然后再建立透视图的操作。
数据透视表的工作原理:先在表中进行筛选操作,然后在对数据进行运算过程。所以,povit 其实就是筛选器+计算器,生成的数据透视表中的每一个单元格都是输出值。
POWERPOVIT 是PowerBI 中的关系建模是超级透视表,本质上和数据透视表是一致的,也是筛选器+计算器,只不过它是增强版的筛选器+计算器。
POWERPOVIT 相比POVIT 最大的特点就是可以通过搭建好的关系模型,把多张表的数据整合到一个数据透视表中,而不需要用VLOOKUP 函数等方法合并表。
搭建多维数据集与层次结构
要搭建多维数据集,需要先导入数据源。在数据建模中导入数据源的方式可以是:
- 导入文本文件(CSV、TXT文件等)
- 导入数据库文件(ACCESS文件等)
- 将POWER QUERY导入数据作为POWER PIVOT的数据源使用(将POWER QUERY导入的数据添加到数据模型)
多维数据集是多维数据模型是相互间通过某种联系被关联在一起的不同类别的数据集合。利用数据建模中的“创建关系”功能可以把多张数据列表进行关联,创建数据透视表以后能够实现多表数据引用,达到只有使用SQL语句才能达到的效果。
创建多维数据集的注意事项:
- 在关系图视图界面创建表与表之间的关系
- 只有处在箭头起点的表才能够在透视表中使用值字段
- 创建多表连接时要注意表与表间的连接方式,如果要将来自不同表的不同值进行对比,则需要将这两个表共同作为箭头起点的表使用,而如果要在多维度条件下查看某个特定值的变化情况,则需要将所有维度表作为箭头终点的表使用
创建层次结构:
- 在关系图视图模式下选中父级字段后鼠标右键选中“创建层次结构”
- 为层次结构命名
- 将子级字段段拖拽到创建好的层次结构中父级字段的下方
创建KPI
关键绩效指标(KPI: KEY PERFORMANCE INDICATOR)是通过对组织内部流程的输入端、输出端的关键参数进行设置、取样、计算、分析,衡量流程绩效的一种目标式量化管理指标,是把企业的战略目标分解为可操作的工作目标的工具,是企业绩效管理的基础。KPI可以是部门主管明确部门的主要责任,并以此为基础,明确部门人员的业绩衡量指标。
创建KPI方法:
- 在编辑器下方公式区域内用公式为需要创建KPI的字段指定汇总规则
- 点击“创建KPI"在“关键绩效指标(KPI) ”对话框中设定KPI规则
- 定义KPI目标值的方法有“计算字段”及“绝对值”两种方法,“计算字段” 是以两种汇总值之间的差距为依据设定状态,而“绝对值"是以-个汇 总规则与某个绝对数值之间的差距为依据设定状态,“计算字段" 是动态设定方法而“绝对值"是静态设定方法
度量值
度量值有内隐式和明确式度量值两种。对于数据建模来说,通常不建议使用内隐式度量值,
原因为:
- 内隐式度量值功能很少,只能简单的求和,最大值、平均值等,满足不了大多数的需求。
- 因为内隐,所以要查看这个值的选项才知道其背后是怎样计算的,不直接明确地现实计算逻辑可能会使复杂的数据分析工作出现麻烦。
- 这不会有助于我们学习DAX函数。
- 虽然PB中还有1个快速创建度量值的功能,可以实现不用代码即可完成复杂的运算,但是如果没有DAX的基本知识的话,那么使用快速创建度量值很容易出错
度量值(与新建列的区别)
度量值(创建明确度量值)
新建度量值1:销售量=sum([数量])
TIPS:创建好度量值后,会在度量值字段旁有个计算器图标。将创建的度量值拖拽到值区域中,会发现明确度量值一销售量和内隐式度量值一数量的结果是一模一样的。
再创建每个店的平均销售量度量值:每店的平均销售量=销售量/门店总数
新建度量值2:门店总数=distinctount([门店])
新建度量值3:每店平均销售量=销售量/门店总数
[利用度量值来创建度量值]
TIPS:使用明确式度量值建立的表中所有的单元格都是独立按照设定的公式计算的,总计行和总计列也不例外(需要注意的是:这与传统的数据透视表是不同的)
DAX语言
DAX全称Data Analysis Expressions ,即数据分析表达式,以公式的方法来完成计算,也叫公式语言。是一门函数语言,用于SSAS表格模型,而Power Pivot和Power BI Desktop本质上运行的都是SSAS实例,只不过根据各自应用场景做了阉割。所以学会了DAX函数,可以方便的在xcel/Power BI/SSAS三者之间切换,从自助BI到企业BI距离从未如此之近。
它的特点是:
- 易于使用: DAX函数使用标准EXCEL公式语法,并且公用一部分函数
- 处理关系数据:基于表格、列和关系建立的关系型数据模型
- 透视表交互:通过基于数据库建立的透视表进行分析
DAX语言和M语言的疑问
问:经常有同学会有疑问,M和DAX到底是什么关系?
答:其实他们真没有什么关系,要说有关系,它们都是微软推出的,都可以使用在PowerBI中,
但也仅仅如此而已。
问:但为什么会在一个软件里面出现两种不同的语言呢?
答:一个软件里面使用两种完全不同的语言十分罕见,很多人都不理解,为了用PowerBI 还得花
费大量精力去学两种函数?并且一不留神就搞混淆了。其实这得用从PowerBI 的前身说起了。
PowerBI 的前身就是Excel 的Power query 和Power Pivot , 它们是两个独立的团队开发的,不同的基因,也是为了实现不同的功能,Powerquery 背后是M函数,而Power pivot 使用DAX 函数,
Powerquery 主要做数据清洗,Power pivot 进行数据建模,本来就是两个不同的功能和发展方向。
PowerBI 的推出主要就是整合了PP和PQ这两大插件(同时也整合了Powerview 和PowerMap ),当
然这两个插件的函数同时也都融入了进来,因此就变成了两种函数出现在一个软件中。
最后
以上就是虚心宝贝为你收集整理的商业数据的加工处理商业数据的加工商业数据的整理与转换创建和管理关系数据建模的全部内容,希望文章能够帮你解决商业数据的加工处理商业数据的加工商业数据的整理与转换创建和管理关系数据建模所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复