本教程介绍如何使用 Microsoft Fabric 为 Power BI 报告准备、加载和建模数据。 你将使用数据流第 2 代引入数据并将其转换为 Lakehouse,使用管道协调数据刷新,并使用 Direct Lake 模式生成维度模型。 最后,你将自动生成一个报表来可视化最新的销售数据。
完成本教程后,可执行以下操作:
- 准备数据并将其加载到湖屋
- 协调数据管道以刷新数据,并在失败时发送电子邮件
- 在湖屋中创建语义模型
- 使用快速创建功能自动创建报表
先决条件
在开始之前,确保你拥有:
- 如果尚未为组织启用 Fabric。
- 如果没有访问权限,请注册免费试用版。
- 创建新工作区并分配 Fabric 容量。 可以使用现有工作区,但本教程建议使用非生产工作区。
- 下载 Power Query 模板 文件,其中包含 Contoso 数据的示例查询。
创建用于存储数据的湖屋
首先创建一个数据湖来存储您的数据。 你将使用 Dataflows Gen2 来准备和转换数据,然后使用一个管道来协调计划的刷新和电子邮件通知。
在工作区中,选择页面顶部的新项目。
在 “新建 项创建”屏幕上,搜索或选择 Lakehouse。
输入 SalesLakehouse 作为名称(名称可以包括字母、数字和下划线,但不包括特殊字符或空格),然后选择“ 创建”。
在 Lakehouse 编辑器中,从功能区中选择 “新建数据流 Gen2”。
注意
或者,从功能区中选择“ 获取数据 ”,然后选择“ 新建数据流 Gen2”。
将数据流 OnlineSalesDataflow 命名(仅使用字母、数字和下划线),然后选择“ 创建”。
使用 Dataflows Gen2 准备并将数据加载到 Lakehouse 中
在数据流 Gen2 的 Power Query Online 编辑器中,从 Power Query 模板中选择“导入”,然后选择在先决条件中下载的 ContosoSales.pqt 模板文件。
选择数据加载组下的 DimDate 查询。 如果出现提示,请选择“ 配置连接”,将身份验证设置为 “匿名”,然后选择“ 连接”。
选中 DimDate 后,在数据预览中,找到 DateKey 列。 在列标题中选择数据类型图标,然后从下拉列表中选择 “日期/时间 ”。
在“更改列类型”窗口中,选择“替换当前”。
配置数据目标
选中 DimDate 后,查看右下角的数据目标设置。 将鼠标悬停在配置的 Lakehouse 上以查看其属性。
你创建的 Lakehouse 是所有表的存储目的地。 默认更新方法为 Replace,用于在每次刷新期间覆盖以前的数据。
选择 FactOnlineSales 表并查看其数据目标设置。
由于 FactOnlineSales 源更改频繁,因此通过追加新数据来优化刷新。 通过选择 X 图标删除其当前数据目标。 不要删除其他表的目的地。
选中 FactOnlineSales 后,选择 + 图标以添加数据目标,然后选择 Lakehouse。
如果系统提示,请将身份验证设置为 组织帐户 ,然后选择“ 下一步”。
在导航器中,选择工作区并展开以查看所有 Lakehouse 项。 选择 SalesLakehouse 并确保已选择 “新建表 ”,然后选择“ 下一步”。
在数据目标设置面板中,清除 “使用自动设置”,将 “更新”方法 设置为 “追加”,然后选择“ 保存设置”。
注意
Append 方法在每次刷新期间向表添加新行,从而保留现有数据。
在“ 开始 ”选项卡中,选择“ 保存并运行”。
若要退出 Power Query Online 编辑器,请选择左侧轨道中的 OnlineSalesDataflow 项上的 X。
注意
选择 X 会关闭编辑器,但不删除数据流。
协调数据管道
通过发送具有关键详细信息的自定义 Outlook 电子邮件,自动刷新数据流并处理错误。
在工作区中,选择“ 新建”项。
在 “新建 项创建”屏幕上,搜索或选择 “数据管道”。
将管道 命名为 SalesPipeline ,然后选择“ 创建”。
在管道编辑器中,选择 “管道”活动,然后选择 “数据流”。
注意
还可以从功能区中选择“数据流”。
在管道编辑器中选择数据流活动。 在 “常规 ”部分中,将 Name 设置为 OnlineSalesActivity。
选择数据流活动后,转到 “设置” ,然后从“数据流”列表中选择 OnlineSalesDataflow 。 如果需要,请选择 “刷新 ”图标以更新列表。
选择“ 活动 ”选项卡,然后添加 Office365 Outlook 活动。
注意
如果出现 “授予许可 ”窗口提示,请选择“ 确定”,使用组织帐户登录,并允许访问。
在管道编辑器中选择 Office365 Outlook 活动。 在“常规”部分中,将“名称”设置为“在失败时发送邮件”。
选中 Office365 Outlook 活动后,转到“设置”。 在收件人字段中输入电子邮件地址,并将主题设置为管道失败。 对于邮件 正文,请选择 表达式生成器中的“视图”。
注意
在高级属性下提供了其他电子邮件选项,例如“发件人(以…的身份发送)”、“抄送”、“密件抄送”和“敏感度标签”。
在 管道表达式生成器中,将以下表达式粘贴到页面顶部的文本块中:
@concat( 'Pipeline: ' , pipeline().PipelineId , '<br>' , 'Workspace: ' , pipeline().WorkspaceId , '<br>' , 'Time: ' , utcnow() )
此表达式将管道 ID、工作区 ID 和当前 UTC 时间动态插入电子邮件正文中。
在管道编辑器中,选择 OnlineSalesActivity。 从 “X”(失败时) 句柄拖动,并将其放到 “失败时的邮件” 活动上。 这可确保在数据流活动失败时发送电子邮件。
从“开始”选项卡中,选择“计划”。 按如下所示配置计划,然后选择 “应用” :
名称 值 计划的运行 开 重复 每天 时间 12:00:00 凌晨 从“主页”选项卡中,选择“运行”。 如果出现提示,请选择“ 保存并运行 ”以继续。
若要监视管道的状态,请查看显示活动进度的 “输出 ”表。 表自动刷新,也可以选择刷新图标手动更新。
当状态显示 “成功”时,返回到工作区以继续学习本教程。
在湖屋中创建语义模型
加载的数据基本已经可用于报表。 接下来,使用 Lakehouse 中的表创建语义模型-一个元数据层,用于组织物理数据并将其转换为逻辑对象。 语义模型旨在反映业务结构,并使数据更易于分析。
在工作区视图中,选择 SalesLakehouse 项。
在资源管理器中,从“ 开始 ”选项卡中选择“ 新建语义模型”。
在“新建语义模型”窗口中,将模型 命名为 SalesModel。 然后,展开 dbo 架构和 表 组。 选择下表,然后选择“ 确认”
表名称 DimCustomer DimDate DimEmployee DimProduct DimStore FactOnlineSales
创建关系
此模型使用星型架构,在数据仓库中很常见。 星的中心是一个事实数据表,周围是维度表,它与事实数据表相关。
通过将 CustomerKey 列从 FactOnlineSales 表拖放到 DimCustomer 表上的 CustomerKey 列来创建关系。
在 “创建关系 ”窗口中,确保以下设置,然后选择“ 确认”
激活此关系 发件人:表 1(列) 收件人:表 2(列) 基数 交叉筛选器方向 ☑ FactOnlineSales (CustomerKey) DimCustomer (CustomerKey) 多对一(*:1) 单身 对以下每个关系重复这些步骤:
激活此关系 发件人:表 1(列) 收件人:表 2(列) 基数 交叉筛选器方向 ☑ FactOnlineSales(ProductKey) DimProduct (ProductKey) 多对一(*:1) 单身 ☑ FactOnlineSales (StoreKey) DimStore (StoreKey) 多对一(*:1) 单身 ☑ FactOnlineSales (DateKey) DimDate (DateKey) 多对一(*:1) 单身 ☑ DimStore (StoreKey) DimEmployee(门店密钥) 多对一(*:1) 推送、请求和匿名 下图显示了语义模型的已完成视图,其中包含所有关系。
使用 DAX 编写度量值
创建基本度量值以计算总销售额。
选择 FactOnlineSales 表,然后在“ 开始 ”选项卡上,选择“ 新建度量值”。
在公式编辑器中,输入以下 DAX 度量,然后选择 勾选标记 以提交:
Total Sales Amount = SUM(FactOnlineSales[SalesAmount])
自动创建报表
现在,你已对数据进行建模,可以使用快速创建快速可视化和浏览数据。
通过从左侧栏选择工作区,返回到工作区。 将鼠标悬停在 SalesModel 项上,选择省略号 (... ),然后选择 “自动创建报表”。
根据 数据 窗格中的列选择,自动生成报表并动态更新。
从功能区中选择 “保存 ”,将副本保存到当前工作区。
注意
若要进入完整的视觉化创作体验,请选择功能区上的编辑。
详细了解 快速创建。
相关内容
祝贺你完成本教程! 如果为本教程创建了专用工作区,现在可以选择删除它,或删除在此过程中创建的单个项。
本教程演示了 Power BI 用户如何借助 Microsoft Fabric 在任何规模上发现见解。