MySQL设置
社区插件
一些核心功能可能受到限制。如果您对贡献感兴趣,请查看下面列出的每个存储库的源代码。
dbt-mysql概要
- Maintained by: 社区
- Authors: Doug Beatty (https://github.com/dbeatty10)
- GitHub repo: dbeatty10/dbt-mysql
- PyPI package:
dbt-mysql - Slack channel: #db-mysql-family
- Supported dbt Core version: MySQL 5.7 and 8.0及以后
- dbt Cloud support: 不支持
- Minimum data platform version: v0.18.0
安装dbt-mysql
pip安装是最简便的方式:
pip install dbt-mysql
安装 dbt-mysql同样会安装 dbt-core 以及其它依赖项.
dbt-mysql配置
查看未来计划, 请参阅GitHub仓库: dbeatty10/dbt-mysql
这是一个实验性的插件: - 它还没有经过广泛的测试. - InnoDB以外的存储引擎未经测试. - 仅在dbt-adapter-tests以下版本经过测试: - MySQL 5.7 - MySQL 8.0 - MariaDB 10.5 - 与其他dbt packages (比如dbt_utils) 的兼容性也未经过测试.
请仔细阅读这些文档,并自行承担使用风险。Issues 和 PRs
使用dbt-mysql连接MYSQL¶
Mysql targets在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
MySQL Profile 字段详细说明¶
| Option | Description | Required? | Example |
|---|---|---|---|
| type | 指定的适配器 | 必须 | mysql, mysql5 or mariadb |
| server | 连接服务器 | 必须 | yourorg.mysqlhost.com |
| port | 连接端口 | 可选 | 3306 |
| schema | 指定的schema(数据库) | 必须 | analytics |
| username | 用户名 | 必须 | dbt_admin |
| password | 密码 | 必须 | correct-horse-battery-staple |
| ssl_disabled | 设置为启用或禁用到mysql5.x的TLS连接 | 可选 | True or False |
支持功能¶
| MariaDB 10.5 | MySQL 5.7 | MySQL 8.0 | 功能 |
|---|---|---|---|
| ✅ | ✅ | ✅ | 物化表 |
| ✅ | ✅ | ✅ | 物化视图 |
| ✅ | ✅ | ✅ | 增量 |
| ✅ | ❌ | ✅ | 临时表 |
| ✅ | ✅ | ✅ | 种子 |
| ✅ | ✅ | ✅ | Sources |
| ✅ | ✅ | ✅ | 自定义测试 |
| ✅ | ✅ | ✅ | 生成文档 |
| 🤷 | 🤷 | ✅ | 快照 |
注意¶
- 临时表物化依赖于Common Table Expressions (CTEs), 但MySQL 8.0不支持.
- MySQL 5.7有一些配置问题,可能会影响dbt快照无法正常工作 自动初始化和更新
TIMESTAMP. - 如果
SHOW VARIABLES LIKE 'sql_mode'的输出包含NO_ZERO_DATE. 解决方案是在.conf文件中包含以下内容: - 其中
{other_sql_modes}是SHOW VARIABLES LIKE 'sql_mode'输出中的其余模式.