Skip to main content

TiDB setup

Vendor-supported plugin

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

  • Maintained by: PingCAP
  • Authors: Xiang Zhang, Qiang Wu, Yuhang Shi
  • GitHub repo: pingcap/dbt-tidb
  • PyPI package: dbt-tidb
  • Slack channel: #db-tidb
  • Supported dbt Core version: v1.0.0 and newer
  • dbt Cloud support: Not Supported
  • Minimum data platform version: n/a

Installing dbt-tidb

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:

Configuring dbt-tidb

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

Connecting to TiDB with dbt-tidb

User / Password Authentication

Configure your dbt profile for using TiDB:

TiDB connection profile

profiles.yml
dbt-tidb:
target: dev
outputs:
dev:
type: tidb
server: 127.0.0.1
port: 4000
schema: database_name
username: tidb_username
password: tidb_password

# optional
retries: 3 # default 1

Description of Profile Fields

OptionDescriptionRequired?Example
typeThe specific adapter to useRequiredtidb
serverThe server (hostname) to connect toRequiredyourorg.tidb.com
portThe port to useRequired4000
schemaSpecify the schema (database) to build models intoRequiredanalytics
usernameThe username to use to connect to the serverRequireddbt_admin
passwordThe password to use for authenticating to the serverRequiredawesome_password
retriesThe retry times after an unsuccessful connectionOptionaldefault 1

Database User Privileges

Your database user would be able to have some abilities to read or write, such as SELECT, CREATE, and so on. You can find some help here with TiDB privileges management.

Required Privilege
SELECT
CREATE
CREATE TEMPORARY TABLE
CREATE VIEW
INSERT
DROP
SHOW DATABASE
SHOW VIEW
SUPER

Supported features

TiDB 4.XTiDB 5.0 ~ 5.2TiDB >= 5.3Feature
Table materialization
View materialization
Incremental materialization
Ephemeral materialization
Seeds
Sources
Custom data tests
Docs generate
Snapshots
Grant
Connection retry

Note:

  • TiDB 4.0 ~ 5.0 does not support CTE, you should avoid using WITH in your SQL code.
  • TiDB 4.0 ~ 5.2 does not support creating a temporary table or view.
  • TiDB 4.X does not support using SQL func in CREATE VIEW, avoid it in your SQL code. You can find more detail here.
0