Plaza 新闻汇总

Bruin:使用SQL和Python构建数据管道

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标志来运行该任务及其所有下游任务。

原文地址
2024-12-17 19:11:07