Power BI 傻瓜入门 9 设计和部署数据模型
终极管理员 知识笔记 118阅读
确的数据类型。

尽管“数据”视图类似于“增强查询编辑器”但请记住“增强查询”编辑器中只显示数据的一个样本而所有数据在导入数据模型后都可以在“数据”中使用。在“数据”视图中您正在处理整个数据集并根据仪表板要求和规范进行实时修改。不过数据视图和高级查询编辑器都可以实时处理计算列的创建。
加载数据后可以对其进行操作、添加查询、添加或删除列或管理现有关系。以下各节详细说明了如何完成每项活动。

Power BI导入数据集时默认为特定的数据类型。例如在图9-6中您可以看到Products表有几列其中两列表示十进制数作为选项。此处显示的列是ProductMSRP和ProductWhsPrice。数据类型可能不准确因为这些列本质上是货币列。您可以选择十进制数或固定十进制数。在这种情况下货币值需要小数。用户还可以在列中放置格式以更好地表示每个单元格中数据的上下文。
要查看给定列的数据类型请执行以下步骤。
转到数据视图。选择要查看的列并高亮显示。确保您在列工具选项卡上。请参阅图9-6。在“列工具”选项卡上检查“名称”属性以确保。检查以确保数据类型下拉菜单见图9-7设置为正确的数据类型。在这种情况下它被设置为“十进制数”。
将该选项切换到“定点小数”。使用选项卡的Format下拉菜单再次参见图9-6将选项切换到Currency。
无论您是尝试将数字数据更改为文本还是将文本更改为数字此过程在整个Power BI中都是一致的用于修改数据类型。
处理格式和数据类型属性根据列是文本还是数字可以使用“列工具”选项卡上的“格式”下拉菜单将特定属性应用于列以确保特定行为。在上一节的末尾我对列应用了Currency格式但如果列是数字列您也可以应用其他行为包括十进制数、整数、百分比和科学数字格式。见图9-8。
假设您希望对列应用度量、地理标记或数学行为等属性。在这种情况下您可以应用摘要一种从数学上进一步评估数据的方法或数据类别一种对基于地理位置的数据进行分类的方法。Column Tools选项卡的摘要选项如图9-9所示Data Category选项如图9-10所示。
汇总选项允许将表中的任何一列数字数据汇总为单个值。数据类别选项适用于Power BI映射——换句话说就是纬度和经度或度数。
管理表格您至少导入了一个表并创建了一个数据集。有时表的名称可能并不完全符合您的要求。或者你想删除一个表。这些都是数据专家在Power BI Desktop中完成数据模型的设计、开发和部署时所面临的常见操作。
添加表格在将数据集导入Power BI Desktop后有时可能需要将一个或多个表添加到数据模型中。也许您想为事务活动创建一个额外的事实表或者创建一个维度表来支持新的查找。这两种场景都很标准但幸运的是添加一个表很简单。不过在设置了列名之后您仍然需要进行一些配置。
以下是添加表的方法
在“模型”视图中单击“模型视图”功能区的“主页”选项卡上的“输入数据”按钮如图9-11所示。此时将显示“创建表界面”。
在相应的表格单元格中输入所需的列名和数据。在“名称”字段中输入表格名称。
该表应该类似于图9-12所示的表。
重命名表
只要没有表具有相同的名称重命名表就是一项简单的活动。使用Power BI数据模型中的每个表都必须具有唯一的名称。例如两个表的名称不能为Product。您可以有一个名为Product的表和另一个名称为Products的表但这会非常令人困惑。最佳实践建议您尽可能具有描述性。要在Power BI Desktop中重命名表请执行以下步骤
在“数据”视图或“模型”视图中转到“数据”窗格。在要更改的表名称上单击鼠标右键。从出现的菜单中选择重命名如图9-13所示。在高亮显示的字段中输入表格的新名称然后按Enter键。表名称将在30秒内刷新。 删除表如果要从模型中删除表则会面临一些风险。如果关系与表相关联则这些关系将断开。此外如果计算字段嵌入到报表中这些字段也将消失。也就是说删除表就像移动列一样是一个相对简单的过程。要删除表请执行以下步骤
在“数据”视图或“模型”视图中转到“数据”窗格。右键单击要删除的表然后从显示的菜单中选择Delete from Model如图9-14所示。出现一个提示询问您是否确定要删除该表如图9-15所示。
单击“删除”。
表将从模型中删除。
重命名和删除列重命名或删除列遵循与重命名或删除表相同的做法。唯一需要注意的是当发生依赖关系如密钥强制时删除列可能会导致潜在的关系破裂。
要重命名列请执行以下步骤
在“数据”视图或“模型”视图中转到“数据”窗格。在要重命名的列名上单击鼠标右键。重命名列。列名会自动刷新。如果关系更新需要更新则会相应地进行修订。删除该列时如果两个表之间存在关系则会注意到链接已断开。图9-16显示了Products和Location之间的CityID的Before和After视图。
要删除列请执行以下步骤
在“数据”视图或“模型”视图中转到“数据”窗格。在列名上单击鼠标右键然后从显示的菜单中选择“从模型中删除”。系统将提醒您该列即将被删除。按Delete。该列将被删除模型将自动更新。
如果关系断开表之间的链接将相应更新。
添加和修改表中的数据有时您可能希望添加或修改现有表中的数据。此过程是透明度较低的过程之一因为它需要用户进入Power Query Editor才能完成操作。如果您已经在Power BI中创建了数据那么添加或修改的过程比使用文件导入或使用DataQuery获取的数据集要简单一些。要向自己创建的表的行添加行或修改单元格请执行以下步骤
在“模型”视图功能区的“常用”选项卡的“查询”区域中单击“转换数据”图标。屏幕上将显示Power Query Editor。选择您创建的数据集。转到“应用的步骤”下的源。单击齿轮图标。见图9-17。
如图9-18所示Manufacturers表有一个空字段还有一行表示应该更改它。
向导入的、DirectQuery和复合模型添加和修改数据导入或使用DirectQuery然后在Power BI中转换数据时只能在本机数据源中才能添加或更改数据。当然有一个例外如果您创建自定义列或计算列这些列是可编辑的并在Power BI中进行管理。
假设您想要对图9-19中的Location表进行修改。数据存在于Products.xlsx文件中。您可以添加额外的三个城市或州并直接在Excel中更改一个城市或县的名称。更新文件后单击“模型”视图主功能区的“查询”区域中的“刷新”图标。结果会立即更新如图9-20所示。
在更改Products.xlsx文件之前。
管理关系当两个表通过一个公共键连接时通常意味着一个关系通过键存在。它可以是主主键关系也可以是主外键关系。在某些情况下一个表甚至可以在一个字段中连接在一起。单个字段可以映射到具有同类字段的另一个表从而创建查找。在本节中我将介绍关系在设计和开发数据模型中的价值。
创建自动关系Power BI认识到当数据转换时存在一种关系。例如如果有两个具有数字数据类型的表并且它们的名称相似则认为它们处于一种关系中。Power BI将检测这些关系作为ETL过程的一部分。自动检测有助于减少自己识别关系所需的手动工作。此外您还可以降低表之间发生错误的风险。
要查看Power BI如何查看数据集之间的关系请执行以下步骤
转到“模型”视图的“主功能区”。在“关系”区域中单击“管理关系”图标。导入数据集时存在的关系将自动匹配。可选如果希望系统自动检测关系请单击“自动检测”按钮。 创建手动关系
有时主键和外键的名称可能不匹配但您知道它们之间的数据会创建关系。例如LocationID和CityID可能是同一个也可能是StateID和StateAbbott。所有这些都是数据分析师需要手动映射两个表之间关系的示例即使Power BI本应能够获取模式。要手动建立表和键之间的关系请执行以下步骤
转到“模型”视图的“主功能区”。在“关系”区域中单击“管理关系”图标。单击“新建”按钮。此时会出现Create Relationship界面如图9-21所示。选择处于关系中的两个表。使用Cardinality和Cross Filter Direction下拉菜单选择所需的设置。完成后按“确定”。 删除关系
删除关系有三种方式之一。您可以删除两个表中的一个表中设置两个表之间联接的字段也可以使用管理关系接口断开关系方法与创建接口相同。您可以取消选中“活动”框。然后按Delete。此时会出现一条警告显示关系中断。你会承认这段关系已经破裂然后按“确定”
断开关系的最简单方法是转到“模型”视图并在链接上单击鼠标右键。选择“删除”。系统会提示你承认这段关系将会破裂。
对表格中的数据进行分类和编码随着时间的推移当您在Power BI中构建数据集时添加上下文非常重要这样任何访问您开始创建的数据集的用户都可以将拼图拼在一起。无论您的描述性数据是与单个数据集还是与多个数据集绑定对于负责管理数据的人员来说这都是一项持续的活动。帮助任何遇到您的数据的用户更好地了解他们正在查看的内容的一种方法是在每个表或列属性中添加元数据——换句话说是更好地描述数据的数据。
要向每个表或列添加元数据请执行以下步骤具体取决于它是表还是列
转到“模型”视图。单击以选择表描述整个表或表中的列。您需要在表中选择特定的列。在“属性”窗格中在“说明”框中输入说明。这可以是关于特定项目的扩展语句。输入也可以描述表或列名的同义词。注意:不要将数据类别与数据类型混淆。数据类别是对模型中的数据进行分组的一种方式。而如果数据是文本、数字或混合数据则数据类型是特定的有助于进行限定。将城市视为一个数据类别将数据类型视为文本。
排列数据在数据集中排列数据与在可视化数据中转换数据时的体验不同。Power BI中的排列数据可以通过几种不同的方式进行分类排序依据、分组依据和隐藏数据。接下来的几节将深入了解每种类型的细节。
排序依据和分组依据您很容易被“排序依据”和“分组依据”混淆。“排序依据》按列按升序A–Z和降序Z–A对数据进行排序。要提升或降低数据集中的数据您需要转到Power Query Editor来完成任何形式的操作排序。一次只能按一列进行排序。
分组依据允许根据数学运算例如计数、总和和平均值和另一个字段对字段进行分组。高级选项允许您使用一个或多个字段进行分组如图9-22所示。
隐藏数据有时您可能希望抑制表中的列数据。在显示结果时列可能在数据集中提供的价值很小或者数据给可视化增加了太多复杂性。这可能是因为该列包含在数据集中时实际上提供了不准确的数据。隐藏数据的原因可能有很多。但是您可以暂时隐藏它而不是在以后可能仍然需要数据时简单地删除列。
要隐藏列如图9-23所示请执行以下步骤
在“模型”视图中转到包含有问题列的表。单击以选择字段。转到“属性”窗格。找到“隐藏”滑块。将选项从“否”滑动到“是”。您可以看到一只眼睛出现在字段中其中有一条线穿过它表明它已被隐藏。
如果您想在任何时候取消隐藏列只需重复这些步骤但这次将“隐藏”滑块滑动到“否”。
使用扩展数据模型无论您对Power BI Desktop使用哪种导入方法都会受到限制。并非所有的数据模型都需要计算但基本要求是需要数学计算来帮助在某个时刻分析定性数据。计算百分比和比较数字太常见了。
DAXData Analysis eExpression的缩写是为Power Bi Desktop中的计算而编写的语言。
这种基于公式的语言由300多个单独或组合使用的公式组成用于创建面向数学的度量。DAX中的许多公式与Excel中的公式完全相同。
每次导入数据或通过DirectQuery连接到数据源以创建可视化时您可能会惊讶地发现Power BI让您的生活变得轻松多了因为您几乎不需要对数据集进行转换。不过有一个问题假设你需要量化你正在可视化的数据。您的目标可能是从表中开发计算以便扩展数据集。
Power BI Desktop允许从源计算和导入所有度量类型。
这些组件不仅对可视化工作很重要而且对DAX计算也很重要
用于过滤可视化的组件用于数据分类的组件数据集的顺序和排名数据集的权重和值向数据集添加新列不管是什么原因使用其中一种技术扩展数据集都是因为导入数据或连接到实时数据集无法为用户提供量化和公式丰富的选择。请记住这份清单并非详尽无遗。对计算数据进行量化处理还有其他原因。没有办法从一开始就知道数据集的期望模式、趋势和需求。
使用列内容和联接尽管我在本章中倾向于讨论仅从单一来源导入数据但企业组织将多个来源的数据导入单一来源并不罕见。在这种情况下组织必须合并这些数据源中的列并将它们连接到表和列中。
假设您想要创建一个列其中包含与公司位置数据相关联的所有股票代码的数据。数据源位于两个不同的源中。您需要做的是创建一个新列该列从两列中获取数据并在导入和转换后在其中一个表中创建一个条目。要执行此操作请执行以下步骤
在Power BI Desktop中打开两个数据源。转到“报表”视图。在“字段”窗格中单击以选择“Location”表中的“Location”和两个表中的Ticker Symbol。参见图9-24。转到数据视图。
这样做可以创建列内容的联合视图该视图基于一个公共字段Ticker Symbols字段聚合内容。不同之处在于这两个表中都没有位置如图9-25所示。
发布数据模型当数据模型准备好发布到Power BI Services时这个过程就像按下按钮一样简单——假设您已经在 Platform/Office 365应用程序的电子邮件地址。根据您拥有的许可证类型您的型号的数据量和刷新率会有所不同。
要发布您的模型请转到Power BI Desktop上的Home选项卡然后按publish如图9-26所示。