This release is a pre-release and may not be stable for production use.
SQLMesh is a next-generation data transformation framework designed to ship data quickly, efficiently, and without error. Data teams can efficiently run and deploy data transformations written in SQL or Python with visibility and control at any size.
It is more than just a dbt alternative.
Core Features
Get instant SQL impact analysis of your changes, whether in the CLI or in SQLMesh Plan Mode
Virtual Data Environments
- See a full diagram of how Virtual Data Environments work
- Watch this video to learn more
- Create isolated development environments without data warehouse costs
- Plan / Apply workflow like Terraform to understand potential impact of changes
- Easy to use CI/CD bot for true blue-green deployments
Efficiency and Testing
Running this command will generate a unit test file in the tests/ folder: test_stg_payments.yaml
Runs a live query to generate the expected output of the model
sqlmesh create_test tcloud_demo.stg_payments --query tcloud_demo.seed_raw_payments "select * from tcloud_demo.seed_raw_payments limit 5"
# run the unit test
sqlmesh test
MODEL (
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` is currently stored in cents, so we convert it to dollars */
'new_column' AS new_column, /* non-breaking change example */
FROM tcloud_demo.seed_raw_payments
test_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
- Never build a table more than once
- Track what data’s been modified and run only the necessary transformations for incremental models
- Run unit tests for free and configure automated audits
Level Up Your SQL
Write SQL in any dialect and SQLMesh will transpile it to your target SQL dialect on the fly before sending it to the warehouse.- Debug transformation errors before you run them in your warehouse in 10+ different SQL dialects
- Definitions using simply SQL (no need for redundant and confusing
Jinja+YAML) - See impact of changes before you run them in your warehouse with column-level lineage
For more information, check out the website and documentation.
Getting Started
Install SQLMesh through pypi by running:
mkdir sqlmesh-example
cd sqlmesh-example
python -m venv .env
source .env/bin/activate
pip install sqlmesh
sqlmesh init duckdb # get started right away with a local duckdb instance
Follow the quickstart guide to learn how to use SQLMesh. You already have a head start!
Follow this example to learn how to use SQLMesh in a full walkthrough.
Optional Extensions
SQLMesh supports several optional extensions that can be installed separately:
sqlmesh[athena]: Support for Amazon Athenasqlmesh[azuresql]: Support for Azure SQLsqlmesh[bigquery]: Support for Google BigQuerysqlmesh[clickhouse]: Support for ClickHousesqlmesh[cube]: Support for generating Cube semantic layer configurationssqlmesh[databricks]: Support for Databricks
Join Our Community
Together, we want to build data transformation without the waste. Connect with us in the following ways:
- Join the Tobiko Slack Community to ask questions, or just to say hi!
- File an issue on our GitHub
- Send us an email at hello@tobikodata.com with your questions or feedback
- Read our blog
Contribution
Contributions in the form of issues or pull requests (from fork) are greatly appreciated.
Read more on how to contribute to SQLMesh open source.
Watch this video walkthrough to see how our team contributes a feature to SQLMesh.
Metadata
Release files for sqlmesh-cube 0.1.dev3089
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| sqlmesh_cube-0.1.dev3089.tar.gz | 28.0 MB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sqlmesh_cube-0.1.dev3089-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.6 MB
Release files / sqlmesh_cube-0.1.dev3089.tar.gz
| Download URL | sqlmesh_cube-0.1.dev3089.tar.gz |
|---|---|
| Size | 28.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2674385dad8ce983e5dd7aa3167776418cf76f0106913c1bcf8baa417b01e3b1
|
|
BLAKE2b-256 checksum How to use checksums |
e77125df8baa7e0db2c24521355614065d60b14a9cd22b062c6e85f0fb2cc4a0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.9.4
|
Release files / sqlmesh_cube-0.1.dev3089-py3-none-any.whl
| Download URL | sqlmesh_cube-0.1.dev3089-py3-none-any.whl |
|---|---|
| Size | 657.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1e4e6fc770abf563f8f3054e5c4a537148e8ef1d24b07714e8a442281c574943
|
|
BLAKE2b-256 checksum How to use checksums |
8f3ddfa04ae678fb49216acd497a6e460d0d2ec5fe5cba07f3225932b70bf9ec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.9.4
|
Security for sqlmesh-cube 0.1.dev3089
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.