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

Настройка 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: Не поддерживается
  • Минимальная версия платформы данных: MySQL 5.7 и 8.0

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

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

python -m pip install dbt-core 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
Loading table...

Поддерживаемые функции​

MariaDB 10.5MySQL 5.7MySQL 8.0Функция
✅✅✅Материализация таблиц
✅✅✅Материализация представлений
✅✅✅Инкрементальная материализация
✅❌✅Эфемерная материализация
✅✅✅Семена
✅✅✅Источники
✅✅✅Пользовательские тесты данных
✅✅✅Генерация документации
🤷🤷✅Снимки
Loading table...

Примечания​

  • Эфемерные материализации зависят от Общих табличных выражений (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
Loading