Перейти к основному содержимому

Настройка MySQL

Плагин сообщества

Некоторая основная функциональность может быть ограничена. Если вы заинтересованы в участии, ознакомьтесь с исходным кодом для каждого из перечисленных ниже репозиториев.

  • Поддерживается: Community
  • Авторы: Doug Beatty (https://github.com/dbeatty10)
  • Репозиторий на GitHub: dbeatty10/dbt-mysql
  • Пакет на PyPI: dbt-mysql
  • Канал в Slack: #db-mysql-family
  • Поддерживаемая версия dbt Core: v0.18.0 и новее
  • Поддержка dbt Cloud: Не поддерживается
  • Минимальная версия платформы данных: MySQL 5.7 и 8.0

Установка dbt-mysql

Используйте pip для установки адаптера. До версии 1.8 установка адаптера автоматически устанавливала dbt-core и любые дополнительные зависимости. Начиная с версии 1.8, установка адаптера не устанавливает автоматически dbt-core. Это связано с тем, что адаптеры и версии dbt Core были разделены, и мы больше не хотим перезаписывать существующие установки dbt-core. Используйте следующую команду для установки:

Конфигурация 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.5MySQL 5.7MySQL 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