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

Настройка 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