模块 2:使用数据工厂中的数据流转换数据

此模块需要大约 25 分钟才能完成。 创建数据流、应用转换,并将原始数据从 层数据表移到 黄金 数据层表中。

将原始数据从最后一个模块加载到铜湖屋表后,现在可以对其进行扩充。 您将把它与另一个表格结合,该表格包含各供应商在特定一天的折扣及其行程。 然后,此最终的 Gold Lakehouse 表将加载并准备好使用。

数据流中的高级步骤包括:

先决条件

本系列教程的第 1 模块:使用数据工厂创建管道

从 Lakehouse 表获取数据

  1. 在边栏中,选择工作区,选择 “新建项”,然后选择 “数据流 Gen2 ”以创建新的数据流 Gen2。

    显示“Fabric 创建”页的屏幕截图,其中突出显示了“数据流 Gen2”按钮。

  2. 从新的数据流菜单中,选择“ 获取数据”,然后选择 “更多...”

    显示“数据流”菜单的屏幕截图,其中突出显示了“获取数据”按钮,以及其菜单中的“更多...”选项。

  3. 搜索并选择 Lakehouse 连接器。

    显示从“选择数据源”菜单中选择 Lakehouse 数据源的屏幕截图。

  4. 此时会显示 “连接到数据源 ”对话框,并根据当前登录的用户自动创建一个新连接。 选择“下一步”。

    屏幕截图显示了新 Lakehouse 的数据源设置的配置,其中显示了当前已登录用户以及已选择的“下一步”按钮。

  5. 将显示 “选择数据 ”对话框。 使用导航窗格查找在上一模块中为目标创建的 Lakehouse,然后选择 Tutorial_Lakehouse 数据表。 然后选择 创建

    显示 Lakehouse 浏览器的屏幕截图,其中显示了使用模块 1 中的复制活动创建的工作区、Lakehouse 和表。

  6. (可选) 一旦画布填充了数据,您可以设置 列概要 信息,因为这对于数据分析非常有用。 可以应用正确的转换,并根据它定位正确的数据值。

    为此,请从功能区窗格中选择 “选项 ”,然后在 “列配置文件”下选择前三个选项,然后选择“ 确定”。

    显示用于选择数据列选项的屏幕截图。

转换从 Lakehouse 导入的数据

  1. 选择第二列 IpepPickupDatetime 列标题中的数据类型图标以显示下拉菜单,并从菜单中选择数据类型,以将列从 日期/时间 转换为 日期 类型。

    屏幕截图显示正在为 IpepPickupDatetime 列选择 Date 数据类型。

  2. (可选)在功能区的“开始”选项卡上,从“管理列”组中选择“选择列”选项。

    显示数据流编辑器的“开始”选项卡上的“选择列”按钮的屏幕截图。

  3. (可选) 在“ 选择列 ”对话框中,取消选择此处列出的某些列,然后选择“ 确定”。

    • lpepDropoffDatetime
    • puLocationId
    • doLocationId
    • 取货纬度
    • 投放点经度
    • 费率代码ID

    显示“选择列”对话框的屏幕截图,其中已标识的列已取消选中。

  4. 选择 storeAndFwdFlag 列的筛选器和排序下拉菜单。 (如果看到警告 列表可能不完整,请选择 “加载更多” 以查看所有数据。

    用于列筛选和排序对话框的屏幕截图。

  5. 选择“Y”仅显示应用折扣的行,然后选择“ 确定”。

    显示值筛选器的屏幕截图,其中仅选择了“Y”。

  6. 选择 IpepPickupDatetime 列排序和筛选器下拉菜单,然后选择 “日期”筛选器,然后选择为“日期”和“日期/时间”类型提供的 “介于 ...”筛选器。

    显示列排序和格式下拉列表中“日期筛选器”选项选择的屏幕截图。

  7. “筛选行 ”对话框中,选择 2015 年 1 月 1 日至 2015 年 1 月 31 日之间的日期,然后选择“ 确定”。

    显示 2015 年 1 月日期选择的屏幕截图。

连接到包含折扣数据的 CSV 文件

有了行程中的数据,我们希望加载包含每天和 VendorID 的相应折扣的数据,并在将数据与行程数据组合在一起之前做好准备。

  1. 在数据流编辑器菜单中的“ 开始 ”选项卡中,选择“ 获取数据 ”选项,然后选择 “文本/CSV”。

    显示从“开始”选项卡中选择“获取数据”菜单的屏幕截图,其中突出显示了“文本/CSV”。

  2. “连接到数据源 ”对话框中,提供以下详细信息:

    • 文件路径或 URL - https://raw.githubusercontent.com/ekote/azure-architect/master/Generated-NYC-Taxi-Green-Discounts.csv
    • 身份验证类型 - 匿名

    然后选择下一步

    显示连接的文本/CSV 设置的屏幕截图。

  3. “预览文件数据 ”对话框中,选择“ 创建”。

    显示“预览文件数据”对话框的屏幕截图,其中突出显示了“创建”按钮。

转换折扣数据

  1. 查看数据时,我们看到标题似乎位于第一行中。 通过在预览网格区域的左上角选择表的上下文菜单,然后选择使用第一行作为标题,将它们提升为标题。

    显示从表上下文菜单中选择“使用第一行作为标题”选项的屏幕截图。

    注释

    提升表头后,您可以在数据流编辑器顶部的 已应用步骤 窗格中看到一个针对列数据类型的新步骤。

  2. 右键单击 VendorID 列,然后从显示的上下文菜单中选择“ 取消透视其他列”选项。 这样,就可以将列转换为属性值对,其中列成为行。

    显示 VendorID 列的上下文菜单的屏幕截图,其中突出显示了“取消透视其他列”选项。

  3. 在表格取消透视后,双击属性列和列,将属性更名为日期,将更名为折扣

    显示将表列“Attribute”重命名为“日期”和“Value”重命名为“折扣”后的屏幕截图。

  4. 通过选择列名左侧的数据类型菜单并选择 “日期”来更改 Date 列的数据类型。

    显示选择“日期”列的“日期”数据类型的屏幕截图。

  5. 选择“ 折扣 ”列,然后选择菜单上的“ 转换 ”选项卡。 选择 “数字”列,然后从子菜单中选择 “标准 数字转换”,然后选择“ 除法”。

    显示选择“除法”选项以转换“折扣”列中数据的屏幕截图。

  6. “划分 ”对话框中,输入值 100。

    显示“划分”对话框的屏幕截图,其中输入了值 100,并突出显示了“确定”按钮。

合并行程和折扣数据

下一步是将这两个表合并为一个表,其中包含应应用于行程的折扣和调整后的总计。

  1. 首先,切换窗口右下角的 “关系图视图 ”按钮,以便可以看到这两个查询。

    显示“关系图”视图切换按钮的屏幕截图,其中显示了本教程中创建的两个查询。

  2. 选择原始数据查询(在我们的示例中称作“Bronze”),然后在开始选项卡上选择合并菜单,并选择合并查询,再选择将查询合并为新查询

    显示合并查询作为nyc_taxi查询的新选择的屏幕截图。

  3. “合并”对话框中,选择左外部合并,然后从“用于合并的右侧表”下拉列表中选择Generated-NYC-Taxi-Green-Discounts,然后选择对话框右上角的“灯泡”图标,以查看两个表之间列的建议映射。

    屏幕截图显示“合并”对话框的配置,以及建议的列映射。

    选择建议的映射来映射这两个表中的 VendorID 和日期列。 添加这两个映射后,每个表中都会突出显示匹配的列标题。

  4. 将显示一条消息,要求你允许合并来自多个数据源的数据以查看结果。 在“合并”对话框中选择“确定”。

    显示批准合并来自多个数据源的数据的请求的屏幕截图,其中突出显示了“确定”按钮。

  5. 在表区域中,你最初会看到一条警告,指出“有关数据隐私的信息是必需的”。选择 “继续 ”以解决警告。

    显示有关合并来自多个数据源的数据的警告的屏幕截图,其中突出显示了“继续”按钮。

  6. 对于本教程,请选择忽略隐私级别检查此文档,因为这是没有敏感信息的示例数据。 对于自己的数据源,请设置适当的隐私级别来保护敏感数据。

    显示隐私级别对话框的屏幕截图,其中选择了“忽略隐私级别”选项。

  7. 选择“保存”

  8. 请注意如何在关系图视图中创建新查询,其中显示了新合并查询与之前创建的两个查询之间的关系。 查看编辑器的表窗格,滚动到合并查询列列表右侧,以查看存在具有表值的新列。 这是“自动生成的 NYC 出租车绿色折扣”列,其类型为 [表]。 在列标题中,有一个图标,有两个箭头朝相反的方向移动,允许你从表中选择列。 取消选择所有列,只保留折扣,然后选择确定

    显示合并查询的屏幕截图,其中显示了新生成的列 Generated-NYC-Taxi-Green-Discounts 的列选择菜单。

  9. 现在,使用行级别的折扣值,我们可以创建一个新列来计算折扣后的总金额。 为此,请选择编辑器顶部的“添加列”选项卡,然后从“常规”组中选择“自定义”列

    屏幕截图显示“添加列”选项卡的“常规”部分中突出显示的“添加自定义列”按钮。

  10. “自定义列 ”对话框中,可以使用 Power Query 公式语言(也称为 M) 来定义新列的计算方式。 输入TotalAfterDiscount作为新列名称,选择Currency作为数据类型,并为自定义列公式提供以下 M 表达式:

    如果 [totalAmount] > 0,则 [totalAmount] * ( 1 -[Discount] ) 否则 [totalAmount]

    然后选择“ 确定”。

    显示“自定义列配置”屏幕的屏幕截图,其中突出显示了“新建列名称”、“数据类型”和“自定义列公式”。

  11. 选择新建的 TotalAfterDiscount 列,然后选择编辑器窗口顶部的 “转换 ”选项卡。 在 “数字”列 组中,选择“ 舍入 ”下拉列表,然后选择“ 舍入...”

    截图显示编辑器窗口中“转换”选项卡上的“圆...”选项。

  12. 在“ 圆形”对话框中,输入 2 表示小数位数,然后选择“ 确定”。

    截图显示“取整对话框”,其中小数位数设置为2,并突出显示“确定”按钮。

  13. 将 IpepPickupDatetime 的数据类型从日期更改为日期/时间。

    显示选择 IpepPickupDatetime 列的日期/时间数据类型的屏幕截图。

  14. 最后,如果尚未展开,请从编辑器右侧展开 “查询设置 ”窗格,并将查询从 “合并 ”重命名为 “输出”。

    显示从合并到输出的查询重命名的屏幕截图。

将输出查询加载到 Lakehouse 中的表

现在,输出查询已完全准备好,并且数据已准备好输出,我们可以定义查询的输出目标。

  1. 选择之前创建的 输出 合并查询。 然后在编辑器中选择“开始”选项卡,然后从“查询”分组中添加数据目标,以选择 Lakehouse 目标。

    显示“添加数据目标”按钮的屏幕截图,其中突出显示了 Lakehouse。

  2. 连接到数据目标对话框中,连接应已被选择。 选择“下一步”继续操作。

  3. “选择目标目标 ”对话框中,浏览到要在其中加载数据的 Lakehouse,并将新表命名 为nyc_taxi_with_discounts,然后再次选择“ 下一步 ”。

    显示“选择目标目标”对话框的屏幕截图,其中表名称nyc_taxi_with_discounts。

  4. 选择目标设置对话框中,可以使用自动设置,或者取消自动设置并保留默认的替换更新方法,仔细检查列是否已正确映射,然后选择保存设置

    显示“选择目标设置”对话框的屏幕截图,其中突出显示了“保存设置”按钮。

  5. 在主编辑器窗口中,确认在“数据目标”下的“输出”设置窗格中看到输出目标,然后选择“保存*”。

    重要

    在工作区中创建第一个 Dataflow Gen2 时,将会预配湖屋和仓库项及其相关的 SQL 分析终结点和语义模型。 这些项由工作区中的所有数据流共享,并且是运行 Dataflow Gen2 所必需的,不应将其删除,但不会由用户直接使用。 这些项是 Dataflow Gen2 的实现详细信息。 这些项在工作区中不可见,但在其他体验(例如 Notebook、SQL 终结点、湖屋和仓库 体验)中可能是可访问的。 可以通过名称中的前缀来识别这些项。 这些项的前缀是“DataflowsStaging”。

  6. (可选) 在工作区页上,可以通过选择行后显示的数据流名称右侧的省略号并选择 “设置”来重命名数据流。 在此示例中,我们将它重命名为 nyc_taxi_with_discounts

    显示数据流菜单中选择的“属性”选项的屏幕截图,可在其中重命名该选项。

  7. 选择“ 更多选项 ”省略号下的数据流的刷新图标,完成后,应会看到在 数据目标 设置中配置的新 Lakehouse 表。

    显示用于刷新数据流的刷新按钮选择的屏幕截图。

  8. 查看 Lakehouse,查看已加载的新表。

后续步骤

继续到下一部分以集成您的处理流程。