# SAS DBT adapter
[![Build Status](https://github.com/DLBD-Department/dbt-sas/workflows/Tests/badge.svg)](https://github.com/DLBD-Department/dbt-sas/actions)
[![PyPI version](https://badge.fury.io/py/dbt-sas.svg)](https://badge.fury.io/py/dbt-sas)
[![PyPI](https://img.shields.io/pypi/pyversions/dbt-sas.svg)](https://pypi.org/project/dbt-sas)
[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
The dbt-sas package allows dbt to connect to SAS.
## Installation
```
pip install dbt-sas
```
## Configurations
Basic `profile.yml` for connecting to SAS:
```yml
sas-test:
outputs:
dev:
type: sas
host: SAS host
port: 8591
database: sas (keep 'sas', don't change)
schema: default libray name
user: SAS username
password: SAS password
autoexec: optional local path of autoexec.sas file
lib_base_path: optional path (on the SAS server) for new libraries
threads: 1
fail_on_warnings: False
lib_name_strict_mode: False
target: dev
```
| Key | Required | Description |
| ---------------------- | -------- | ---------------------------------------------------- |
| `type` | Yes | The specific adapter to use (`sas`) |
| `host` | Yes | SAS server hostname |
| `port` | Yes | SAS server port |
| `database` | Yes | `sas`, don't change |
| `schema` | Yes | Default SAS libname |
| `username` | Yes | The username to use to connect to the server |
| `password` | Yes | The password to use for authenticating to the server |
| `handler` | Yes | SAS handler `ws` (default) or `saspy` |
| `autoexec` | No | Local path of autoexec.sas file |
| `lib_base_path` | No | Base path on the SAS server for new libraries |
| `fail_on_warnings` | No | Raise and error if it encounters a warning |
| `lib_name_strict_mode` | No | Enable strict libname/identifier check |
## Features
| Key | Supported | Description |
| -------- | -------- | ---------------------------------------------------- |
| [Tests](https://docs.getdbt.com/docs/build/tests) | Yes | Run dbt tests on SAS |
| [Load seed files](https://docs.getdbt.com/docs/build/seeds) | Yes | Load seeds from CSV files to SAS |
| [View Materialization](https://docs.getdbt.com/docs/build/materializations#view) | Yes | Materialize dbt models as views in SAS |
| [Table Materialization](https://docs.getdbt.com/docs/build/materializations#table) | Yes | Materialize dbt models as tables in SAS |
| [Ephemeral Materialization](https://docs.getdbt.com/docs/build/materializations#ephemeral) | Partial | Materialize dbt ephemeral tables as temporary views in SAS |
| [Incremental Materialization](https://docs.getdbt.com/docs/build/materializations#incremental) | No | |
| [Snapshots](https://docs.getdbt.com/docs/build/snapshots) | No | |
| [Grants](https://docs.getdbt.com/reference/resource-configs/grants) | No | SQL grants are not supported by SAS |
## Limitations
- Schemas (lib names) are limited to 8 characters.
- Table names, column names, and aliases are limited to 32 characters.
## Usage
- Create dbt project, choose sas database and set up connection
```console
$ dbt init <project_name>
```
## Query Logging
Enable additional logging by setting the `DBT_SAS_LOG` environment variable to the log filename, e.g.:
```console
export DBT_SAS_LOG='file.log'
```
Select the log families, e.g.:
```console
export DBT_SAS_FAMILY='sas,sql'
```
Log families are:
- sas
- sql
- original_sql
## Adapter Testing
- Install dev requirements
```console
$ pip install -r dev_requirements.txt
```
- Run pytest
```console
$ python -m pytest tests/
```
## Licence
Apache License, Version 2.0
## Links
* [SASpy](https://github.com/sassoftware/saspy)
* [SQL Procedure](https://documentation.sas.com/doc/en/pgmsascdc/9.4_3.5/sqlproc/n0w2pkrm208upln11i9r4ogwyvow.htm)
Raw data
{
"_id": null,
"home_page": "https://github.com/DLBD-Department/dbt-sas",
"name": "dbt-sas",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "dbt,sas",
"author": "Alkemy Spa",
"author_email": "DLBDDepartment@nunatac.it",
"download_url": "https://files.pythonhosted.org/packages/74/03/98d16f106a418cc61461791acb5eb2e8fd83a5689cc57145319761f45984/dbt-sas-1.3.0a17.tar.gz",
"platform": "any",
"description": "# SAS DBT adapter\n\n[![Build Status](https://github.com/DLBD-Department/dbt-sas/workflows/Tests/badge.svg)](https://github.com/DLBD-Department/dbt-sas/actions)\n[![PyPI version](https://badge.fury.io/py/dbt-sas.svg)](https://badge.fury.io/py/dbt-sas)\n[![PyPI](https://img.shields.io/pypi/pyversions/dbt-sas.svg)](https://pypi.org/project/dbt-sas)\n[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n\nThe dbt-sas package allows dbt to connect to SAS.\n\n## Installation\n\n```\npip install dbt-sas\n```\n\n## Configurations\n\nBasic `profile.yml` for connecting to SAS:\n\n```yml\nsas-test:\n outputs:\n dev:\n type: sas\n host: SAS host\n port: 8591\n database: sas (keep 'sas', don't change)\n schema: default libray name\n user: SAS username\n password: SAS password\n autoexec: optional local path of autoexec.sas file\n lib_base_path: optional path (on the SAS server) for new libraries\n threads: 1\n fail_on_warnings: False\n lib_name_strict_mode: False\n target: dev\n\n```\n| Key | Required | Description |\n| ---------------------- | -------- | ---------------------------------------------------- |\n| `type` | Yes | The specific adapter to use (`sas`) |\n| `host` | Yes | SAS server hostname |\n| `port` | Yes | SAS server port |\n| `database` | Yes | `sas`, don't change | \n| `schema` | Yes | Default SAS libname |\n| `username` | Yes | The username to use to connect to the server |\n| `password` | Yes | The password to use for authenticating to the server |\n| `handler` | Yes | SAS handler `ws` (default) or `saspy` |\n| `autoexec` | No | Local path of autoexec.sas file |\n| `lib_base_path` | No | Base path on the SAS server for new libraries |\n| `fail_on_warnings` | No | Raise and error if it encounters a warning |\n| `lib_name_strict_mode` | No | Enable strict libname/identifier check |\n\n## Features\n\n| Key | Supported | Description | \n| -------- | -------- | ---------------------------------------------------- |\n| [Tests](https://docs.getdbt.com/docs/build/tests) | Yes | Run dbt tests on SAS |\n| [Load seed files](https://docs.getdbt.com/docs/build/seeds) | Yes | Load seeds from CSV files to SAS |\n| [View Materialization](https://docs.getdbt.com/docs/build/materializations#view) | Yes | Materialize dbt models as views in SAS |\n| [Table Materialization](https://docs.getdbt.com/docs/build/materializations#table) | Yes | Materialize dbt models as tables in SAS |\n| [Ephemeral Materialization](https://docs.getdbt.com/docs/build/materializations#ephemeral) | Partial | Materialize dbt ephemeral tables as temporary views in SAS |\n| [Incremental Materialization](https://docs.getdbt.com/docs/build/materializations#incremental) | No | |\n| [Snapshots](https://docs.getdbt.com/docs/build/snapshots) | No | |\n| [Grants](https://docs.getdbt.com/reference/resource-configs/grants) | No | SQL grants are not supported by SAS |\n\n## Limitations\n\n- Schemas (lib names) are limited to 8 characters.\n- Table names, column names, and aliases are limited to 32 characters.\n\n## Usage\n\n- Create dbt project, choose sas database and set up connection\n```console \n$ dbt init <project_name>\n```\n\n## Query Logging\n\nEnable additional logging by setting the `DBT_SAS_LOG` environment variable to the log filename, e.g.:\n\n```console\nexport DBT_SAS_LOG='file.log'\n```\n\nSelect the log families, e.g.:\n\n```console\nexport DBT_SAS_FAMILY='sas,sql'\n```\n\nLog families are:\n- sas\n- sql\n- original_sql\n\n## Adapter Testing\n\n- Install dev requirements\n```console\n$ pip install -r dev_requirements.txt\n```\n- Run pytest\n```console \n$ python -m pytest tests/\n```\n\n## Licence\n\nApache License, Version 2.0\n\n## Links\n\n* [SASpy](https://github.com/sassoftware/saspy)\n* [SQL Procedure](https://documentation.sas.com/doc/en/pgmsascdc/9.4_3.5/sqlproc/n0w2pkrm208upln11i9r4ogwyvow.htm)\n",
"bugtrack_url": null,
"license": "Apache License 2.0",
"summary": "dbt (data build tool) adapter for SAS",
"version": "1.3.0a17",
"split_keywords": [
"dbt",
"sas"
],
"urls": [
{
"comment_text": "",
"digests": {
"md5": "3f26afdceb521b6d6e31f72c4ae7769a",
"sha256": "8347e13f85280cb778c361429363b35b8fd157a5c328459092bcf33d17ca7629"
},
"downloads": -1,
"filename": "dbt_sas-1.3.0a17-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "3f26afdceb521b6d6e31f72c4ae7769a",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=3.6",
"size": 40245,
"upload_time": "2022-12-20T12:53:04",
"upload_time_iso_8601": "2022-12-20T12:53:04.280631Z",
"url": "https://files.pythonhosted.org/packages/82/bd/b20bdb0b9c0c5ee3caee15067e1b6513f1988b6dcbd23c94abd2b77ed337/dbt_sas-1.3.0a17-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "fdcef7940f9d6c5f6e19e4f585b714ad",
"sha256": "4692d52162e2f8f7a5a22c22519cbaabeb2a4205511e1f8543aad98d8fe96584"
},
"downloads": -1,
"filename": "dbt-sas-1.3.0a17.tar.gz",
"has_sig": false,
"md5_digest": "fdcef7940f9d6c5f6e19e4f585b714ad",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 26031,
"upload_time": "2022-12-20T12:53:05",
"upload_time_iso_8601": "2022-12-20T12:53:05.969562Z",
"url": "https://files.pythonhosted.org/packages/74/03/98d16f106a418cc61461791acb5eb2e8fd83a5689cc57145319761f45984/dbt-sas-1.3.0a17.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-12-20 12:53:05",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "DLBD-Department",
"github_project": "dbt-sas",
"lcname": "dbt-sas"
}