在 Microsoft Fabric 中查询 Cosmos DB 中的跨数据库数据

镜像的 SQL 分析终结点使可以在 Microsoft Fabric 容器或数据库中跨两个不同的 Cosmos DB 创建查询。 在本指南中,您将创建一个跨越 Fabric 中两个 Cosmos DB 数据库的查询。

先决条件

  • 包含数据的现有容器

  • Fabric 数据库项中第二个 Cosmos DB 至少有一个其他 SQL 分析终结点。

打开第一个数据库的 SQL 分析终结点

首先,访问 Fabric 数据库中第一个 Cosmos DB 的 SQL 分析终结点。

  1. 打开 Fabric 门户(https://app.fabric.microsoft.com)。

  2. 进入您的第一个 Cosmos DB 数据库。

    重要

    对于本指南,第一个 Cosmos DB 数据库已加载 示例数据集 。 本指南中的其余查询示例假定你使用此数据库的同一数据集。

  3. 在菜单栏中,选择 Cosmos DB 列表,然后选择 SQL 终结点

    Fabric 中 Cosmos DB 中数据库的菜单栏中终结点选择选项的屏幕截图。

  4. 在分析终结点页中,在菜单栏中选择 “新建 SQL 查询 ”。

  5. 打开新的查询编辑器,然后运行测试查询。 确保看到预期的数据。

    SELECT TOP 5
      countryOfOrigin AS geography,
      COUNT(*) AS itemCount
    FROM
      [<first-database-name>].[SampleData]
    GROUP BY
      countryOfOrigin
    ORDER BY
      COUNT(*) DESC
    

    此查询结果为:

    geography itemCount
    Nigeria 21
    Egypt 20
    France 18
    Japan 18
    Argentina 17

    注释

    此查询还使用在名为SampleData的容器中的示例数据集中的数据。 有关详细信息,请参阅 示例数据集

连接到第二个数据库终结点

现在,连接到 Fabric 数据库中第二个 Cosmos DB 的镜像 SQL 分析终结点。

  1. 仍在分析终结点页中,从菜单栏中选择 “+ 仓库 ”。

  2. 为要查询的第二个 Fabric 项添加另一个 SQL 分析终结点项。

  3. 打开另一个新的查询编辑器,然后运行测试查询。 同样,请确保看到预期的数据。

    SELECT 
      *
    FROM
      [<second-database-endpoint>].[<second-database-name>].[<second-database-container-name>]
    

    注释

    此示例使用存储在 Fabric 容器中的 Cosmos DB 中的任意数据集。 此数据集包含与第一个查询中指定的区域对应的语言环境。 此处提供了此数据集的子集:

    name code
    Nigeria en-ng
    Egypt ar-eg
    France fr-fr
    Japan ja-jp
    Argentina es-ar

运行跨数据库查询

最后,运行合并两个数据库中数据的查询。

  1. 在 SQL 分析终结点中,打开第三个查询编辑器。

  2. 运行合并两个终结点中的数据的查询。

    SELECT TOP 5
      regionCodes.code AS regionCode,
      COUNT(*) AS itemCount
    FROM
      [<first-database-endpoint>].[<first-database-name>].[SampleData] sampleData
    INNER JOIN
      [<second-database-endpoint>].[<second-database-name>].[<second-database-container-name>] regionCodes
    ON
      sampleData.countryOfOrigin = regionCodes.name
    GROUP BY
      sampleData.countryOfOrigin, regionCodes.code
    ORDER BY
      itemCount DESC
    

    此查询结果为:

    regionCode itemCount
    en-ng 21
    ar-eg 20
    fr-fr 18
    ja-jp 18
    es-ar 17