MySQL Profile
Community plugin
Some core functionality may be limited. If you're interested in contributing, check out the source code for each repository listed below.
Overview of dbt-mysqlβ
Maintained by: Community
Author: Doug Beatty
Source: GitHub
Core version: v1.0.8
dbt Cloud: Not Supported
The package can be installed from PyPI with:
pip install dbt-mysql
This is an experimental plugin:
- It has not been tested extensively.
- Storage engines other than the default of InnoDB are untested.
- Only tested with dbt-adapter-tests with the following versions:
- MySQL 5.7
- MySQL 8.0
- MariaDB 10.5
- Compatibility with other dbt packages (like dbt_utils) are also untested.
Please read these docs carefully and use at your own risk. Issues and PRs welcome!
Connecting to MySQL with dbt-mysqlβ
MySQL targets should be set up using the following configuration in your profiles.yml
file.
Example:
~/.dbt/profiles.yml
your_profile_name:
target: dev
outputs:
dev:
type: mysql
server: localhost
port: 3306
schema: analytics
username: your_mysql_username
password: your_mysql_password
ssl_disabled: True
Description of MySQL Profile Fieldsβ
Option | Description | Required? | Example |
---|---|---|---|
type | The specific adapter to use | Required | mysql , mysql5 or mariadb |
server | The server (hostname) to connect to | Required | yourorg.mysqlhost.com |
port | The port to use | Optional | 3306 |
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 | correct-horse-battery-staple |
ssl_disabled | Set to enable or disable TLS connectivity to mysql5.x | Optional | True or False |
Supported featuresβ
MariaDB 10.5 | MySQL 5.7 | MySQL 8.0 | Feature |
---|---|---|---|
β | β | β | Table materialization |
β | β | β | View materialization |
β | β | β | Incremental materialization |
β | β | β | Ephemeral materialization |
β | β | β | Seeds |
β | β | β | Sources |
β | β | β | Custom data tests |
β | β | β | Docs generate |
π€· | π€· | β | Snapshots |
Notesβ
- Ephemeral materializations rely upon Common Table Expressions (CTEs), which are not supported until MySQL 8.0.
- MySQL 5.7 has some configuration gotchas that might affect dbt snapshots to not work properly due to automatic initialization and updating for
TIMESTAMP
.- If the output of
SHOW VARIABLES LIKE 'sql_mode'
includesNO_ZERO_DATE
. A solution is to include the following in a*.cnf
file:
[mysqld]
explicit_defaults_for_timestamp = true
sql_mode = "ALLOW_INVALID_DATES,{other_sql_modes}"- Where
{other_sql_modes}
is the rest of the modes from theSHOW VARIABLES LIKE 'sql_mode'
output.
- If the output of