教程:为 Fabric 数据仓库设置 dbt

适用于:✅Microsoft Fabric 中的仓库

本教程将指导你完成设置 dbt 并将第一个项目部署到 Fabric 仓库。

介绍

dbt(数据生成工具)开放源代码框架可简化数据转换和分析工程。 它侧重于分析层中基于 SQL 的转换,并将 SQL 视为代码。 dbt 支持版本控制、模块化、测试和文档。

Microsoft Fabric 的 dbt 适配器可用于创建 dbt 项目,然后会将其部署到 Fabric 数据仓库。

还可以仅通过更改适配器来更改 dbt 项目的目标平台,例如,可将为 Azure Synapse 专用 SQL 池生成的项目在几秒钟内升级到 Fabric 数据仓库

Microsoft Fabric dbt 适配器的先决条件

按照以下列表安装和设置 dbt 先决条件:

  1. Python 3.7(或更高版本)

  2. Microsoft ODBC Driver for SQL Server.

  3. 使用 pip install dbt-fabricPyPI(Python 包索引)存储库中最新版本的 dbt-fabric 适配器。

    pip install dbt-fabric
    

    注意

    通过将 pip install dbt-fabric 更改为 pip install dbt-synapse 并使用以下说明,可以为 Synapse 专用 SQL 池安装 dbt 适配器

  4. 请确保使用 pip list 命令验证是否已安装 dbt-fabric 及其依赖项:

    pip list
    

    应从此命令返回包和当前版本的长列表。

  5. 如果还没有仓库,请创建一个仓库。 可以使用本练习的试用容量:注册 Microsoft Fabric 免费试用版创建工作区,然后创建仓库

开始使用 dbt-fabric 适配器

此教程使用 Visual Studio Code,但你可以使用所选的首选工具。

  1. jaffle_shop 演示 dbt 项目克隆到计算机上。

    git clone https://github.com/dbt-labs/jaffle_shop.git
    
  2. 在 Visual Studio Code 中打开 jaffle_shop 项目文件夹。

    Visual Studio Code 的屏幕截图,其中显示了打开的项目。

  3. 如果已创建仓库,则可以跳过注册。

  4. 创建 profiles.yml 文件。 将以下配置添加到 profiles.yml。 此文件使用 dbt-fabric 适配器配置与 Microsoft Fabric 中仓库的连接。

    config:
      partial_parse: true
    jaffle_shop:
      target: fabric-dev
      outputs:    
        fabric-dev:
          authentication: CLI
          database: <put the database name here>
          driver: ODBC Driver 18 for SQL Server
          host: <enter your SQL analytics endpoint here>
          schema: dbo
          threads: 4
          type: fabric
    

    注意

    typefabric 更改为 synapse,以根据需要将数据库适配器切换为 Azure Synapse Analytics。 通过更改数据库适配器,可以更新任何现有 dbt 项目的数据平台。 有关详细信息,请参阅受支持的数据平台的 dbt 列表

  5. 在 Visual Studio Code 终端中向 Azure 验证自己的身份。

  6. 现在,你已准备好测试连接。 在 Visual Studio Code 终端中运行 dbt debug 以测试与仓库的连接。

    dbt debug
    

    Visual Studio Code 的屏幕截图,其中显示了 dbt 调试命令。

    通过所有检查,这意味着可以使用 dbt-fabric 适配器从 jaffle_shop dbt 项目连接仓库。

  7. 现在,可以测试适配器是否正常工作。 首先运行 dbt seed 以将示例数据插入仓库。

    Visual Studio Code 的屏幕截图,其中显示了 dbt 种子命令。

  8. 运行 dbt run 以针对某些测试验证数据。

    dbt run
    

    Visual Studio Code 的屏幕截图,其中显示了 dbt 运行命令。

  9. 运行 dbt test 以运行演示 dbt 项目中定义的模型。

    dbt test
    

    Visual Studio Code 的屏幕截图,其中显示了 dbt 测试命令。

现已将 dbt 项目部署到 Fabric 数据仓库。

在不同仓库之间移动

在不同的仓库之间移动 dbt 项目非常简单。 可以使用以下三个步骤的过程快速迁移任何受支持仓库上的 dbt 项目:

  1. 安装新适配器。 有关详细信息和完整安装说明,请参阅 dbt 适配器

  2. 更新 profiles.yml 文件中的 type 属性。

  3. 生成项目。

Fabric 数据工厂中的 dbt

与常用的工作流管理系统 Apache Airflow 集成时,dbt 将成为编排数据转换的强大工具。 Airflow 的计划和任务管理功能使数据团队能够自动执行 dbt 运行。 它可以确保定期进行数据更新,并保持一致的高质量数据流进行分析和报告。 这种组合方法将 dbt 的转换专业知识与 Airflow 的工作流管理结合使用,提供高效可靠的数据管道,最终产生更快、更深入的数据驱动决策。

Apache Airflow 是一个开源平台,用于以编程方式创建、计划和监视复杂的数据工作流。 它允许定义一组称为运算器的任务,这些任务可以组合成有向无环图 (DAG) 以表示数据管道。

有关通过仓库使 dbt 可操作化的详细信息,请参阅通过 Microsoft Fabric 中的数据工厂使用 dbt 转换数据

注意事项

使用 dbt-fabric 适配器时要考虑的重要事项:

  • 查看 Microsoft Fabric 数据仓库中的当前限制

  • Fabric 支持适用于用户主体、用户标识和服务主体的 Microsoft Entra ID(以前称为 Azure Active Directory)身份验证。 用于在仓库上交互工作的建议身份验证模式是 CLI(命令行接口)和使用服务主体实现自动化。

  • 查看 Fabric 数据仓库不支持的 T-SQL (Transact-SQL) 命令

  • 使用 Create Table as Select (CTAS)、DROPCREATE 时,dbt-fabric 适配器支持某些 T–SQL 命令,例如 ALTER TABLE ADD/ALTER/DROP COLUMNMERGETRUNCATEsp_rename

  • 查看不支持的数据类型,以了解受支持的和不受支持的数据类型。

  • 可以通过访问问题 · microsoft/dbt-fabric · GitHub 来记录 GitHub 上有关 dbt-fabric 适配器的问题。

下一步