
# 配置DBT连接DLI进行数据调度和分析
DBT（Data Build Tool），是一款开源的数据建模和转换工具，运行在Python环境上。DBT连接DLI，用来定义和执行SQL转换，支持从数据集成、转换到分析的整个数据生命周期管理，适用于大规模数据分析项目和复杂的数据分析场景。
本节操作介绍DBT连接DLI的操作步骤。
#### 操作前准备
- **环境要求**
  确保您的系统环境满足以下要求。
  - 操作系统：Windows 或 Linux
  
  - DBT是一个基于Python的工具，请确保已安装了Python。 Python 版本：Python 3.8 或更高版本，推荐使用 Python 3.8
    
   
- **获取dli-dbt驱动包：**
  单击[dli-jdbc-x.x.x.jar](https://uquery-sdk.obs-website.cn-north-1.myhuaweicloud.com)获取JDBC驱动，驱动名称：huaweicloud-dli-jdbc-xxx-dependencies.jar。
  
- **连接信息：**
  表1连接信息 
  | 类别             | 说明                                | 获取方式                                                                                   |
  |:---|:---|:---|
  | DLI AKSK       | AK/SK认证就是使用AK/SK对请求进行签名，从而通过身份认证。 | [获取AK/SK](https://support.huaweicloud.com/devg-apisign/api-sign-provide-aksk.html)     |
  | DLI Endpoint地址 | 地区与终端节点，即云服务在不同Region有不同的访问域名。    | [获取EndPoint](https://support.huaweicloud.com/devg-apisign/api-sign-provide-start.html) |
  | DLI所在的项目ID     | 项目编号，用于资源隔离。                      | [获取项目ID](https://support.huaweicloud.com/api-dli/dli_02_0183.html)                     |
  | DLI区域信息        | DLI所属区域信息                         | [地区和终端节点](https://console.huaweicloud.com/apiexplorer/#/endpoint)                      |
     
  
 
#### 步骤1：部署DBT环境
1. **安装dbt-core**
   使用pip安装建议版本的dbt-core：
   ```
   pip install dbt-core==1.7.9
   ```
   ![](https://support.huaweicloud.com/bestpractice-dli/public_sys-resources/note_3.0-zh-cn.png)
   pip是Python的包管理工具，通常与Python一起安装。
   如果尚未安装pip，可以通过Python内置的ensurepip模块安装：
   python -m ensurepip
   
2. **安装dli-sdk-python**
   执行安装命令：
   ```
   python setup.py install
   ```
   
3. **安装dli** **-** **dbt**
   从DLI管理控制台下载dli-dbt驱动。
   执行安装命令：
   ```
   python setup.py install
   ```
   安装完成后，可以通过运行以下命令来验证dbt是否正确安装：
   ```
   dbt --version
   ```
   
 
 #### 步骤2：配置DBT连接DLI
配置profiles.yml文件用于保存DBT与DLI的连接信息。
在安装DBT的服务器的主目录下找到 .dbt 目录，创建或编辑 profiles.yml 文件。
例如，在Windows系统中，路径可能是 C:\\Users\\用户名\\.dbt\\profiles.yml。
配置文件内容应包含DBT与DLI的连接配置，例如：
```
profiles:
  - name: dbt_dli
    target: dev
    outputs:
      dev:
        type: dli
        region: your-region-name
        project_id: your-project_id
        access_id：your-ak
        secret_key：your-sk
        queue：your-queue-name
        database: your-dli-database
        schema: your-dli-schema
```
表2DBT连接DLI参数说明 
| 参数                   | 是否必选 | 说明                                                                                                                           | 配置样例                             |
|:---|:---|:---|:---|
| type                 | 是    | 数据源类型，本例配置为dli。                                                                                                              | dli                              |
| region               | 是    | DLI的区域名称和服务名称。                                                                                                               | ap-southeast-2                   |
| project_id           | 是    | DLI资源所在的项目ID。 [获取项目ID](https://support.huaweicloud.com/devg-apisign/api-sign-provide-start.html) | 0b33ea2a7e0010802fe4c009bb05076d |
| access_id和secret_key | 是    | AK/SK认证密钥。                                                                                                                   | -                                |
| queue                | 是    | DLI服务的队列名称。                                                                                                                  | dli_test                         |
| database             | 是    | 数据目录名称。默认使用dli数据目录。 如果使用Lakeformation元数据，填写具体的数据目录名称。                                            | dli                              |
| schema               | 是    | 提交作业使用的DLI的数据库名称。                                                                                                            | tpch                             |
   
#### 步骤3：测试使用DBT提交作业至DLI
1. **初始化DBT项目**
   在空目录下执行以下命令以初始化DBT项目：
   ```
   dbt init
   ```
   
2. **配置dbt_project.yml文件**
   在项目根目录下创建或编辑 dbt_project.yml文件。
   参考[dbt_project.yml](https://docs.getdbt.com/reference/dbt_project.yml)配置项目。
   确保[步骤2：配置DBT连接DLI]profile文件中已设置该项目的profiles.yml中定义的数据源名称。
   图1profile文件   
   ![](https://support.huaweicloud.com/bestpractice-dli/zh-cn_image_0000001980352625.png)
   图2dbt_project.yml文件中配置的profile   
   ![](https://support.huaweicloud.com/bestpractice-dli/zh-cn_image_0000001949788778.png "点击放大") 
3. **验证配置**
   执行以下命令测试DBT配置是否正确：
   ```
   dbt debug
   ```
   
4. **执行项目作业**
   测试通过后执行以下命令来执行您的数据模型。
   ```
   dbt run
   ```
   
 
