TiDB setup
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:
python -m pip install dbt-core dbt-tidb
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
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
Option | Description | Required? | Example |
---|---|---|---|
type | The specific adapter to use | Required | tidb |
server | The server (hostname) to connect to | Required | yourorg.tidb.com |
port | The port to use | Required | 4000 |
schema | Specify the schema (database) to build models into | Required | analytics |
username | The username to use to connect to the server | Required | dbt_admin |
password | The password to use for authenticating to the server | Required | awesome_password |
retries | The retry times after an unsuccessful connection | Optional | default 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.X | TiDB 5.0 ~ 5.2 | TiDB >= 5.3 | Feature |
---|---|---|---|
✅ | ✅ | ✅ | 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.