# dbt 包和项目依赖

由于 Recurve 数据建模的核心功能依赖于 dbt，因此也支持外部 dbt 包（Packages）和项目依赖（Dependencies）。

<details>

<summary>什么是 dbt 包？</summary>

**定义**

dbt 包是将 dbt 资源封装成文件夹结构的集合。类似于软件工程中的代码库，dbt 包是可重用的资源集合（如源、模型和宏），可以在多个项目之间分发和复用。这些包通常由其他团队或社区创建，提供有用的功能、最佳实践或行业特定的逻辑。

**优势**

* **代码重用性：**&#x901A;过 dbt 包，您可以在多个项目中复用经过测试的模型、宏和转换，节省开发时间。
* **标准化：**&#x901A;过使用共享包，能够在团队间应用一致的逻辑和最佳实践。
* **协作：**&#x56E2;队可以将自己的工作打包成包，与其他团队共享，从而避免重复造轮子。
* **社区资源：**&#x5F00;源包提供由社区维护的行业标准工具和实用程序，减少了定制开发的需求。

</details>

<details>

<summary>什么是 dbt 项目依赖？</summary>

**定义**

通过包的灵活性和模块化，每个 dbt 项目都可以作为一个包进行使用。这意味着一个项目可以依赖另一个项目中的模型、资源或数据。这样的结构允许多个团队在保持项目独立性的同时进行协作并共享数据模型。&#x20;

项目之间的依赖关系可以动态解析，因此您可以引用其他项目中的模型，而无需将其源代码直接纳入到自己的项目中。

**优势**

* **共享逻辑：**&#x56E2;队可以跨多个项目重用模型，从而促进一致性并减少重复工作。
* **动态解析：**&#x4F9D;赖关系会被动态解析，您无需手动引入其他项目的源代码，使得项目管理更加简洁和易于维护。
* **明确的边界：**&#x6BCF;个团队依然保持对自己项目的控制权，同时其他团队也能从中获益。

</details>

Recurve通&#x8FC7;**“包管理/ Packages”**&#x548C;**“依赖管理/ Dependencies”**&#x529F;能简化了包导入和依赖管理的流程。

## 管理包

要访&#x95EE;**“包管理/ Packages”**&#x83DC;单，您只需在项目的顶部导航栏中点&#x51FB;**“包/ Packages”**&#x5373;可。

该菜单会显示一个精选的包列表，您可以选择将它们安装到您的项目中。

<figure><img src="https://3914025029-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMNJfiu2Or0lnmkm2x228%2Fuploads%2FbNAQcKjVMbgP0HMHh066%2FRecurve_packages_menu.png?alt=media&#x26;token=de9ecaa5-f5d8-4e3a-8aad-d60c25c825c5" alt=""><figcaption></figcaption></figure>

### 安装包

您可以搜索包，&#x5728;**“版本列 / Version”**&#x4E2D;选择特定版本，并打&#x5F00;**“安装 / Install”**&#x9009;项。这样，包的资源就可以在您的项目中使用了。

要查看完整的包列表及其描述，请参考Package Hub——这是一个由dbt社区维护的dbt包注册中心： [Package Hub](https://hub.getdbt.com/)。

### 卸载包

要卸载一个包，只需&#x5728;**“包管理/ Packages”**&#x83DC;单中找到该包所在行，并关&#x95ED;**“安装/ Install ”**&#x9009;项即可。

请注意，卸载后，所有引用该包资源的地方可能会出现失败。

## 管理依赖

要访&#x95EE;**“项目依赖 / Dependencies”**&#x83DC;单，您只需在项目的顶部导航栏中点&#x51FB;**“项目依赖 / Dependencies”**&#x5373;可。

**“项目依赖 / Dependencies”**&#x83DC;单会列出您组织中的所有项目及相关信息，包括正在使用的分析数据库和项目所有者。

<figure><img src="https://3914025029-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMNJfiu2Or0lnmkm2x228%2Fuploads%2FWiEZ9NjfHm5InIkQqLoZ%2FRecurve_dependencies_menu.png?alt=media&#x26;token=58def810-9d7f-4ddc-ae6b-100aeb152609" alt=""><figcaption></figcaption></figure>

### 连接依赖项目

要将组织中的另一个项目作为依赖项目连接，只需在列表中找到该项目并启&#x7528;**“连接 / Connect”**&#x9009;项。

此时，来自依赖项目的所有`Public` 资源，例如源、模型和宏等，都可以在当前项目中使用。请查阅：[元数据类型](https://docs.reorc.com/cn-reorc-help-center/yuan-shu-ju#yuan-shu-ju-lei-xing)。

### 移除依赖项目

若要移除依赖项目，直接&#x5728;**“项目依赖 / Dependencies”**&#x4E2D;找到该项目并关&#x95ED;**“连接 / Connect”**&#x9009;项即可。

请注意，当前项目中依赖于被移除项目的所有资源可能会导致失败。
