SQLMesh 是 Linux 基金会的一个项目
SQLMesh 是一款下一代数据转换框架,旨在快速、高效且无错误地传输数据。数据团队可以运行和部署用SQL或Python编写的数据转换,且可在任何规模下实现可视化和控制。
它不仅仅是DBT的替代方案。
在CLI和SQLMesh VSCode扩展中,都能即时获得SQL的影响和更改的上下文
虚拟数据环境
- 查看虚拟数据环境工作的完整示意图
- 观看此视频以了解更多
效率与测试
执行此命令将会生成一个单元测试文件 tests/ : test_stg_payments.yaml
运行实时查询以生成模型的预期输出
sqlmesh create_test tcloud_demo.stg_payments --query tcloud_demo.seed_raw_payments "select * from tcloud_demo.seed_raw_payments limit 5"
# 运行单元测试
sqlmesh testMODEL (
name tcloud_demo.stg_payments,
cron '@daily',
grain payment_id,
audits (UNIQUE_VALUES(columns = (
payment_id
)), NOT_NULL(columns = (
payment_id
)))
);
SELECT
id AS payment_id,
order_id,
payment_method,
amount / 100 AS amount, /* `amount 字段当前以美分为单位存储,所有我们将其转换为美元 */
'new_column' AS new_column, /* 非破坏性变更的实例 */
FROM tcloud_demo.seed_raw_paymentstest_stg_payments:
model: tcloud_demo.stg_payments
inputs:
tcloud_demo.seed_raw_payments:
- id: 66
order_id: 58
payment_method: coupon
amount: 1800
- id: 27
order_id: 24
payment_method: coupon
amount: 2600
- id: 30
order_id: 25
payment_method: coupon
amount: 1600
- id: 109
order_id: 95
payment_method: coupon
amount: 2400
- id: 3
order_id: 3
payment_method: coupon
amount: 100
outputs:
query:
- payment_id: 66
order_id: 58
payment_method: coupon
amount: 18.0
new_column: new_column
- payment_id: 27
order_id: 24
payment_method: coupon
amount: 26.0
new_column: new_column
- payment_id: 30
order_id: 25
payment_method: coupon
amount: 16.0
new_column: new_column
- payment_id: 109
order_id: 95
payment_method: coupon
amount: 24.0
new_column: new_column
- payment_id: 3
order_id: 3
payment_method: coupon
amount: 1.0
new_column: new_column- 在仓库运行转换错误 之前 ,先调试 10+种不同的SQL语言
- 仅使用 simply SQL 定义 (无需冗余和难懂的
Jinja+YAML) - 在数据仓库中执行变更操作前,通过列级血缘关系查看变更的影响范围
对于更多信息, 请查看 技术文档.
通过 pypi 安装 SQLMesh, 执行:
mkdir sqlmesh-example
cd sqlmesh-example
python -m venv .venv
source .venv/bin/activate
pip install 'sqlmesh[lsp]' # 安装带VSCode扩展功能的sqlmesh包
source .venv/bin/activate # 重新激活虚拟环境,确保使用的是正确的安装版本
sqlmesh init # 按照提示开始操作(选择DuckDB)注意:根据你的 Python 安装情况,可能需要运行
python3或pip3来代替pythonorpip
Windows 安装
mkdir sqlmesh-example
cd sqlmesh-example
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install 'sqlmesh[lsp]' # 安装带VSCode扩展功能的sqlmesh包
.\.venv\Scripts\Activate.ps1 # 重新激活虚拟环境,确保使用的是正确的安装版本
sqlmesh init # 按照提示开始操作(选择DuckDB)跟着 快速入门指南 学习如何使用SQLMesh,你已经有了一个好的开始!
跟着 速成课程 学习核心招式,并使用易于查阅的速查表。
跟着这个 例子 学习如何完整操作SQLMesh。
通过以下方式与我们联系:
- 加入 Tobiko Slack社区 ,提问或打个招呼吧!
- 请在我们的 GitHub 提交问题
- 请通过 hello@tobikodata.com 发送电子邮件,提出您的问题或反馈
- 阅读我们的 blog
我们欢迎大家的贡献!请参阅 CONTRIBUTING.md 有关如何参与的指导方针,包括我们的DCO签字要求。
阅读更多 关于如何搭建你的开发环境的信息。
本项目采用 Apache License 2.0 授权。文档采用 CC-BY-4.0 授权.



