练习 - 使用 lookup 运算符合并表结果

已完成

上一个练习使用了 join 运算符来查找每种产品的总销售额。 本练习将使用 lookup 运算符查找各个国家/地区的总销售额。

使用 lookup 运算符

你的销售团队想知道公司在各个国家/地区的总销售额。 你可使用 join 运算符来获取客户和产品信息。 但是,使用 lookup 运算符获取此信息时,这种查询的性能最佳。

回想一下,lookup 运算符使用维度表中的数据来扩充事实数据表。 这有点像阅读一本图书(事实数据表)并在字典中(维度表)查阅不认识的字词。

对于此查询,可以从 SalesFact 表开始,使用 lookup 运算符获取 Customer 数据并将其添加到结果表中。

在以下过程中,你将分阶段生成查询,以便更好地了解使用 lookup 运算符的结果。

  1. 运行以下查询,从 SalesFact 表和 Customers 表中获取 10 个匹配的任意行。

    运行查询

    SalesFact
    | lookup Customers on CustomerKey
    | take 10
    

    查看生成的列表。 请注意,生成的表包含 SalesFact 表中的列,后跟 Customers 表中的匹配列。

  2. 运行以下查询获取每个国家/地区的总销售额。

    运行查询

    SalesFact
    | lookup Customers on CustomerKey
    | summarize TotalSales = count() by RegionCountryName
    | order by TotalSales desc
    

    结果应如下图所示:

    Screenshot of the lookup operator, with total sales per country/region query and results.

  3. 查看生成的列表。 请注意,销售额最高的是美国。 尝试修改查询以按州显示美国总销售额。

上一个单元使用了 rightouterjoin 按产品类别获取总销售额。 该查询运行时间为 0.834 秒。 现在,请编写一个查询,以使用 lookup 运算符获取相同的结果,然后比较执行时间。

  1. 运行以下查询。

    运行查询

    SalesFact
    | lookup Products on ProductKey
    | summarize TotalSales = count() by ProductCategoryName
    | order by TotalSales desc
    

    结果应如下图所示:

    Screenshot of lookup operator with total sales per product query and results.

    请注意,得到的结果相同,但执行时间为 0.398 秒。 执行时间更短是因为 lookup 运算符针对此类型的查询进行了优化。