Skip to main content

Exasol setup

Community plugin

Some core functionality may be limited. If you're interested in contributing, check out the source code for each repository listed below.

  • Maintained by: Community
  • Authors: Torsten Glunde, Ilija Kutle
  • GitHub repo: exasol/dbt-exasol
  • PyPI package: dbt-exasol
  • Slack channel: n/a
  • Supported dbt Core version: v1.8.0 and newer
  • dbt support: Not Supported
  • Minimum data platform version: Exasol 6.x

Installing dbt-exasol

Use pip to install the adapter. Before 1.8, installing the adapter would automatically install dbt-core and any additional dependencies. Beginning in 1.8, installing an adapter does not automatically install dbt-core. This is because adapters and dbt Core versions have been decoupled from each other so we no longer want to overwrite existing dbt-core installations. Use the following command for installation:

python -m pip install dbt-core dbt-exasol

Configuring dbt-exasol

For Exasol-specific configuration, please refer to Exasol configs.

Connecting to Exasol with dbt-exasol

User / password authentication

Configure your dbt profile for using Exasol:

Exasol connection information
profiles.yml
dbt-exasol:
target: dev
outputs:
dev:
type: exasol
threads: 1
dsn: HOST:PORT
user: USERNAME
password: PASSWORD
dbname: db
schema: SCHEMA

OpenID authentication (Exasol SaaS)

For Exasol SaaS environments, you can authenticate using OpenID tokens instead of username and password:

profiles.yml
dbt-exasol:
target: dev
outputs:
dev:
type: exasol
threads: 1
dsn: HOST:PORT
user: USERNAME
access_token: YOUR_ACCESS_TOKEN # or use refresh_token
dbname: db
schema: SCHEMA
encryption: True # required for SaaS
  • access_token — Personal access token for OpenID authentication
  • refresh_token — Refresh token for OpenID authentication (alternative to access_token)
info

Use either access_token or refresh_token, not both. TLS encryption is required when using OpenID authentication with Exasol SaaS.

Optional parameters

  • connection_timeout — defaults to pyexasol default
  • socket_timeout — defaults to pyexasol default
  • query_timeout — defaults to pyexasol default
  • compression — default: False
  • encryption — default: True. Enables SSL/TLS encryption for secure connections. Required for Exasol SaaS
  • validate_server_certificate — default: True. Validates the SSL/TLS certificate when encryption is enabled. Set to False only for development/testing with self-signed certificates (not recommended for production)
  • protocol_version — default: v3
  • row_separator — default: CRLF for windows - LF otherwise
  • timestamp_format — default: YYYY-MM-DDTHH:MI:SS.FF6
SSL/TLS Certificate Validation

By default, dbt-exasol validates SSL/TLS certificates when encryption=True. For development/testing with self-signed certificates, you can either:

  • Set validate_server_certificate: False (not recommended for production)
  • Use a certificate fingerprint in the DSN: dsn: myhost/FINGERPRINT:8563
  • Use dsn: myhost/nocertcheck:8563 to skip validation (testing only)

For more information, see the PyExasol security documentation.

Was this page helpful?

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

0
Loading