Bruin是一个数据管道工具,它将数据摄取、使用SQL和Python进行数据转换以及数据质量整合到一个框架中。它适用于所有主要的数据平台,并且可以在您的本地机器、EC2实例或GitHub Actions上运行。
Bruin拥有众多功能:
* 📥 使用ingestr/Python摄取数据
* ✨ 在许多平台上运行SQL和Python转换
* 📐 表/视图物化,增量表
* 🐍 使用uv在隔离的环境中运行Python
* 💅 内置数据质量检查
* 🚀 Jinja模板以避免重复
* ✅ 通过dry-run端到端验证管道
* 👷 在本地机器、EC2实例或GitHub Actions上运行
* 🔒 通过环境变量注入机密
* VS Code扩展,带来更佳的开发体验
* ⚡ 使用Golang编写
* 📦 易于安装和使用
**安装**
请访问我们的安装说明。
**社区**
加入我们的Slack社区。
**入门**
您只需要在Git仓库中创建一个简单的pipeline.yml文件:
```yaml
name: bruin-example
schedule: "daily"
start_date: "2023-03-01"
default_connections:
google_cloud_platform: "gcp"
```
创建一个名为assets的新文件夹,并在其中创建您的第一个资产assets/bruin-test.sql:
```sql
/* @bruin
name: dataset.bruin_test
type: bq.sql
materialization:
type: table
@bruin */
SELECT 1 as result
```
Bruin将获取此结果,并在BigQuery上创建一个dataset.bruin_test表。您还可以使用view物化类型而不是table来创建视图。
**Snowflake资产**
如果您想在Snowflake上运行资产,只需将bq.sql替换为sf.sql,并将snowflake定义为连接而不是google_cloud_platform。
然后让我们创建一个Python资产assets/hello.py:
```python
""" @bruin
name: hello
depends:
- dataset.bruin_test
@bruin """
print("Hello, world!")
```
完成后,运行以下命令以验证您的管道:
```bash
bruin validate .
```
您应该会看到如下输出:
```
Pipeline: bruin-example (.)
No issues found
✓ Successfully validated 2 assets across 1 pipeline, all good.
```
如果您已定义凭据,Bruin将自动检测它们并使用dry-run验证所有查询。
**环境**
Bruin允许您针对不同的环境(例如开发或生产)运行管道/资产。环境在.bruin.yml文件中管理。
以下是一个定义了两个名为default和production的环境的配置示例:
```yaml
environments:
default:
connections:
google_cloud_platform:
- name: "gcp"
service_account_file: "/path/to/my/key.json"
project_id: "my-project-dev"
snowflake:
- name: "snowflake"
username: "my-user"
password: "my-password"
account: "my-account"
database: "my-database"
warehouse: "my-warehouse"
schema: "my-dev-schema"
generic:
- name: KEY1
value: value1
production:
connections:
google_cloud_platform:
- name: "gcp"
service_account_file: "/path/to/my/prod-key.json"
project_id: "my-project-prod"
snowflake:
- name: "snowflake"
username: "my-user"
password: "my-password"
account: "my-account"
database: "my-database"
warehouse: "my-warehouse"
schema: "my-prod-schema"
generic:
- name: KEY1
value: value1
```
您可以简单地使用--environment标志切换环境,例如:
```bash
bruin validate --environment production .
```
**运行管道**
Bruin CLI可以运行整个管道或任何带有下游的任务:
```bash
bruin run .
```
您还可以运行单个任务:
```bash
bruin run assets/hello.py
```
您可以选择传递一个--downstream标志来运行该任务及其所有下游任务。