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.

Overview of dbt-tidb

  • 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: and newer
  • dbt Cloud support: Not Supported
  • Minimum data platform version:

Installing dbt-tidb

pip is the easiest way to install the adapter:

pip install dbt-tidb

Installing dbt-tidb will also install dbt-core and any other dependencies.

Configuring dbt-tidb

For TiDB-specifc configuration please refer to TiDB Configuration

For further info, refer to the GitHub repository: pingcap/dbt-tidb

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