Подключение MySQL к dbt v1
Плагин сообщества
Некоторая основная функциональность может быть ограничена. Если вы заинтересованы в участии, ознакомьтесь с исходным кодом для каждого из перечисленных ниже репозиториев.
- Поддерживается: Community
- Авторы: Doug Beatty (https://github.com/dbeatty10)
- Репозиторий GitHub: dbeatty10/dbt-mysql
- Пакет PyPI:
dbt-mysql - Канал Slack: #db-mysql-family
- Поддерживаемая версия dbt: v0.18.0 и новее
- Поддержка dbt: Не поддерживается
- Минимальная версия платформы данных: MySQL 5.7 и 8.0
Установка dbt-mysql
Установите адаптер с помощью `pip`:python -m pip install dbt-mysql
Настройка dbt-mysql
Конфигурацию, специфичную для MySQL, см. на странице настроек MySQL.
Это экспериментальный плагин:
- Он не был тщательно протестирован.
- Движки хранения, отличные от InnoDB по умолчанию, не тестировались.
- Протестирован только с dbt-adapter-tests с следующими версиями:
- MySQL 5.7
- MySQL 8.0
- MariaDB 10.5
- Совместимость с другими пакетами dbt (такими как dbt_utils) также не тестировалась.
Пожалуйста, внимательно прочитайте эту документацию и используйте на свой страх и риск. Проблемы и PRs приветствуются!
Подключение к MySQL с помощью dbt-mysql
Цели MySQL должны быть настроены с использованием следующей конфигурации в вашем файле profiles.yml.
Пример:
~/.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
Описание полей профиля MySQL
| Опция | Описание | Обязательно? | Пример |
|---|---|---|---|
| type | Конкретный адаптер для использования | Обязательно | mysql, mysql5 или mariadb |
| server | Сервер (имя хоста) для подключения | Обязательно | yourorg.mysqlhost.com |
| port | Порт для использования | Необязательно | 3306 |
| schema | Укажите схему (базу данных) для построения моделей | Обязательно | analytics |
| username | Имя пользователя для подключения к серверу | Обязательно | dbt_admin |
| password | Пароль для аутентификации на сервере | Обязательно | correct-horse-battery-staple |
| ssl_disabled | Установите для включения или отключения TLS подключения к mysql5.x | Необязательно | True или False |
Поддерживаемые функции
| MariaDB 10.5 | MySQL 5.7 | MySQL 8.0 | Функция |
|---|---|---|---|
| ✅ | ✅ | ✅ | Материализация таблиц |
| ✅ | ✅ | ✅ | Материализация представлений |
| ✅ | ✅ | ✅ | Инкрементальная материализация |
| ✅ | ❌ | ✅ | Эфемерная материализация |
| ✅ | ✅ | ✅ | Семена |
| ✅ | ✅ | ✅ | Источники |
| ✅ | ✅ | ✅ | Пользовательские тесты данных |
| ✅ | ✅ | ✅ | Генерация документации |
| 🤷 | 🤷 | ✅ | Снимки |
Примечания
- Эфемерные материализации зависят от Общих табличных выражений (CTEs), которые поддерживаются только с MySQL 8.0.
- MySQL 5.7 имеет некоторые особенности конфигурации, которые могут повлиять на работу снимков dbt из-за автоматической инициализации и обновления для
TIMESTAMP.- Если вывод
SHOW VARIABLES LIKE 'sql_mode'включаетNO_ZERO_DATE. Решением является включение следующего в файл*.cnf:
[mysqld]
explicit_defaults_for_timestamp = true
sql_mode = "ALLOW_INVALID_DATES,{other_sql_modes}" - Если вывод
- Где
{other_sql_modes}— остальные режимы из выводаSHOW VARIABLES LIKE 'sql_mode'.
Нашли ошибку?
0