<p align="center">
<img src="https://raw.githubusercontent.com/dbt-labs/dbt/ec7dee39f793aa4f7dd3dae37282cc87664813e4/etc/dbt-logo-full.svg" alt="dbt logo" width="500"/>
</p>
**[dbt](https://www.getdbt.com/)** enables data analysts and engineers to transform their data using the same practices that software engineers use to build applications.
dbt is the T in ELT. Organize, cleanse, denormalize, filter, rename, and pre-aggregate the raw data in your warehouse so that it's ready for analysis.
## ODPS
ODPS, called [MaxCompute](https://www.alibabacloud.com/product/maxcompute) before. This adapter is a wrapper bridged PyOdps and DBT together.
MaxCompute Features:
| Feature | Status |
| ---------------- | ------ |
| Partition Table | ❎ |
| Cluster Table | ❎ |
| External Table | ❎ |
| Table Properties | ❎ |
DBT features:
| Name | Status |
| ----------------------------------------------- | -------------- |
| Materialization: Table | ✅ |
| Materialization: View | ✅ |
| Materialization: Incremental - Append | ✅ |
| Materialization: Incremental - Insert+Overwrite | ✅ |
| Materialization: Incremental - Merge | ✅ |
| Materialization: Ephemeral | ✅ |
| Seeds | ✅ |
| Tests | ✅ |
| Snapshots | ✅<sup>1</sub> |
| Documentation | ✅ |
## Getting Started
### Install DBT-ODPS
```bash
python setup.py install --force
or pip install dbt-odps-winwin
```
### How to Configure?
#### For Fresh Codebase
Run following command after installing dbt-odps:
```bash
dbt init
```
#### For Existing Codebase
Read more in here: https://docs.getdbt.com/docs/core/connection-profiles
Configuration options:
| Property | Description | Example |
| ----------------- | ------------------------------------------------------------ | ---------------------------------------------------- |
| Endpoint | The endpoint of odps, read more in https://help.aliyun.com/document_detail/34951.html | http://service.cn-shanghai.maxcompute.aliyun.com/api |
| database | The **project name** of odps, which you can find in https://maxcompute.console.aliyun.com/{your area}/project-list | odps-test-project |
| schema | Using **default** if you don't know what is schema. | default |
| access_id | access id | LTAXXXXXXXXX |
| secret_access_key | secret access key | bZXXXXXXXXXX |
| type | odps | odps |
## NOTES
1. When using merge statement, ODPS required that table is a transactional table. So, we have to create the snapshot table before select. Under the hook, we using the first referred table as source data structure to create table, so this data source must be a table, view is not supported.
## DEVELOPER REF
DBT docs [what-are-adapters](https://docs.getdbt.com/guides/dbt-ecosystem/adapter-development/1-what-are-adapters)
Raw data
{
"_id": null,
"home_page": null,
"name": "dbt-odps-winwin",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9.0",
"maintainer_email": "Winwin Inc <dev@brandct.com>",
"keywords": "MaxCompute, adapter, adapters, aliyun, database, dbt, dbt Cloud, dbt Core, dbt Labs, dbt-core, elt, odps",
"author": null,
"author_email": "Winwin Inc <dev@brandct.com>",
"download_url": "https://files.pythonhosted.org/packages/d6/72/7656c9a02d10e1e4d62260cac50df18f57654fa6e18191ba83c50e545164/dbt_odps_winwin-1.9.0.tar.gz",
"platform": null,
"description": "<p align=\"center\">\n<img src=\"https://raw.githubusercontent.com/dbt-labs/dbt/ec7dee39f793aa4f7dd3dae37282cc87664813e4/etc/dbt-logo-full.svg\" alt=\"dbt logo\" width=\"500\"/>\n</p>\n\n**[dbt](https://www.getdbt.com/)** enables data analysts and engineers to transform their data using the same practices that software engineers use to build applications.\n\ndbt is the T in ELT. Organize, cleanse, denormalize, filter, rename, and pre-aggregate the raw data in your warehouse so that it's ready for analysis.\n\n## ODPS\n\nODPS, called [MaxCompute](https://www.alibabacloud.com/product/maxcompute) before. This adapter is a wrapper bridged PyOdps and DBT together.\n\nMaxCompute Features:\n\n| Feature | Status |\n| ---------------- | ------ |\n| Partition Table | \u274e |\n| Cluster Table | \u274e |\n| External Table | \u274e |\n| Table Properties | \u274e |\n\nDBT features:\n\n| Name | Status |\n| ----------------------------------------------- | -------------- |\n| Materialization: Table | \u2705 |\n| Materialization: View | \u2705 |\n| Materialization: Incremental - Append | \u2705 |\n| Materialization: Incremental - Insert+Overwrite | \u2705 |\n| Materialization: Incremental - Merge | \u2705 |\n| Materialization: Ephemeral | \u2705 |\n| Seeds | \u2705 |\n| Tests | \u2705 |\n| Snapshots | \u2705<sup>1</sub> |\n| Documentation | \u2705 |\n\n## Getting Started\n\n### Install DBT-ODPS\n\n```bash\npython setup.py install --force \nor pip install dbt-odps-winwin\n```\n\n### How to Configure?\n\n#### For Fresh Codebase\n\nRun following command after installing dbt-odps:\n\n```bash\ndbt init\n```\n\n#### For Existing Codebase\n\nRead more in here: https://docs.getdbt.com/docs/core/connection-profiles\n\nConfiguration options:\n\n| Property | Description | Example |\n| ----------------- | ------------------------------------------------------------ | ---------------------------------------------------- |\n| Endpoint | The endpoint of odps, read more in https://help.aliyun.com/document_detail/34951.html | http://service.cn-shanghai.maxcompute.aliyun.com/api |\n| database | The **project name** of odps, which you can find in https://maxcompute.console.aliyun.com/{your area}/project-list | odps-test-project |\n| schema | Using **default** if you don't know what is schema. | default |\n| access_id | access id | LTAXXXXXXXXX |\n| secret_access_key | secret access key | bZXXXXXXXXXX |\n| type | odps | odps |\n\n## NOTES\n\n1. When using merge statement, ODPS required that table is a transactional table. So, we have to create the snapshot table before select. Under the hook, we using the first referred table as source data structure to create table, so this data source must be a table, view is not supported.\n\n\n## DEVELOPER REF\nDBT docs [what-are-adapters](https://docs.getdbt.com/guides/dbt-ecosystem/adapter-development/1-what-are-adapters)",
"bugtrack_url": null,
"license": null,
"summary": "The ODPS(MaxCompute) adapter plugin for dbt",
"version": "1.9.0",
"project_urls": null,
"split_keywords": [
"maxcompute",
" adapter",
" adapters",
" aliyun",
" database",
" dbt",
" dbt cloud",
" dbt core",
" dbt labs",
" dbt-core",
" elt",
" odps"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "fe0354b5d9700f2a7a9bf23fb48de7ca3ad2a4927171df8a4b3d6490ca1c698c",
"md5": "8f915c6b57950e714ccd280404778ec2",
"sha256": "d4cebe52e7c9897e0d09299fb5a5c92125cee2c550f1008fb78a13b826f4bb12"
},
"downloads": -1,
"filename": "dbt_odps_winwin-1.9.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8f915c6b57950e714ccd280404778ec2",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9.0",
"size": 58621,
"upload_time": "2025-06-18T07:19:40",
"upload_time_iso_8601": "2025-06-18T07:19:40.069846Z",
"url": "https://files.pythonhosted.org/packages/fe/03/54b5d9700f2a7a9bf23fb48de7ca3ad2a4927171df8a4b3d6490ca1c698c/dbt_odps_winwin-1.9.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d6727656c9a02d10e1e4d62260cac50df18f57654fa6e18191ba83c50e545164",
"md5": "2c4ca347de3d28adf90ede079d68580d",
"sha256": "806a49dc6e314fe2cd9c3648b90b899db06164cec0ee8ecfa74f86f2dd3dd3c6"
},
"downloads": -1,
"filename": "dbt_odps_winwin-1.9.0.tar.gz",
"has_sig": false,
"md5_digest": "2c4ca347de3d28adf90ede079d68580d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9.0",
"size": 117005,
"upload_time": "2025-06-18T07:19:41",
"upload_time_iso_8601": "2025-06-18T07:19:41.917512Z",
"url": "https://files.pythonhosted.org/packages/d6/72/7656c9a02d10e1e4d62260cac50df18f57654fa6e18191ba83c50e545164/dbt_odps_winwin-1.9.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-06-18 07:19:41",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "dbt-odps-winwin"
}