На этой странице перечислены основные способы передачи данных из MySQL в Google BigQuery. Бесплатные способы могут оказаться слишком сложными, неудобными или затратными по времени внедрения. В таких случаях рекомендуем перейти на страницу сервиса Renta, с которым экспорт данных настраивается за несколько кликов мыши.

Что такое MySQL?

MySQL — одна из самых популярных баз данных. Многие предприятия используют MySQL в своей операционной деятельности. Большая часть онлайн-приложений работает с MySQL. Большинство фреймворков поддерживают MySQL на уровне базовой конфигурации. Эксплуатация этой СУБД недорога, так как она распространяется по опен-сорс лицензии.

При этом MySQL проста в настройке, хорошо масштабируется в больших проектах и может быть перестроена под нужды конкретного бизнеса

Почему данные из MySQL нужно объединять с другими источниками

MySQL не является аналитической базой данных, в отличие от онлайн-хранилищ BigQuery или ClickHouse. Это означает, что MySQL прекрасно подходит для операций записи, например, обработки и учета транзакций онлайн-покупок. Но в запросах со сложными select-запросами MySQL демонстрирует низкую производительность и не выдерживает обработку больших массивов данных.

Для построение сложных отчетов в BI-системах, которые обрабатывают различными данные, такие как движение товарной базы, затраты на маркетинг и необходимо использовать аналитические БД. Например, Google BigQuery или ClickHouse. Они оптимизированы для быстрой обработки больших массивов данных данных, широких таблиц.

В добавок, обладают инструментами автоматического импорта данных из разных источников.

Почему именно Google BigQuery?

Облачное хранилище Google BigQuery прекрасно подходит для построение хранилища данных для задач связанных с маркетингом. Поскольку очень быстро обрабатывает большие массивы информации, а также имеет нативные инструменты для импорта данных из Google Analytics. Также Google BigQuery удобен возможностью быстрой настройки передачи данных из других источников, в том числе из MySQL.

Импорт данных MySQL в Google BigQuery с помощью Renta

Renta удобна тем, что позволяет выгружать данные из более чем двадцати различных интернет-сервисов и агрегировать их в одном из трех основных облачных хранилищ: Google BigQuery, Clickhouse или SQL Server. Таким образом, аналитик получает комплексное решение стоящей перед ним задачи за скромную абонентскую плату.

Все коннекторы и хранилища собраны, все технические вопросы решает поддержка, можно не тратить рабочее время на организацию простого трансфера данных.

Для настройки экспорта данных в Google BigQuery нужно, в первую очередь, выбрать правильный тип интеграции. В нашем случае это — MySQL Database.

Далее нужно указать базу данных, из которого будут экспортироваться данные:

Для этого необходимо ввести:

  1. адрес сервера,
  2. логин и пароль от БД.

После этого нужно настроить параметры интеграции по следующим параметрам:

Где:

  • Database — нужная нам база данных;
  • Tables — выбор таблиц для выгрузки;
  • Update time — задаем время регулярной экспорта данных из выбранных таблиц в BigQuery.

Затем указываем Google BigQuery в качестве хранилища данных. Если в BigQuery у вас несколько проектов, вы сможете указать конкретный датасет.

После настройки в Google BigQuery будет создан набор данных Renta_dataset. В него будут выгружаться данные в виде отдельных таблиц.

Импорт данных MySQL в Google BigQuery с помощью Google Cloud Functions

Этот метод удобен тем, что хранилище данных Google BigQuery и сервис по запуску кода в облаке Google Cloud Functions являются частью одной экосистемы продуктов Google. С помощью Google Cloud Functions можно настроить автоматическую передачу данных из MySQL в Google BigQuery, используя достаточно простой python-скрипт.

Чтобы настроить синхронизацию, нужно завести проект в Google Cloud Platform с активированным биллингом и создать в нем функцию с нужными вам параметрами виртуальной машины и синхронизации.

Сам скрипт имеет следующий вид:

К недостаткам такого метода можно отнести невозможность спрогнозировать объем затрат за использование Google Cloud Functions. Особенно это актуально для очень больших бизнес-проектов, которые ежедневно загружают в BigQuery огромное количество данных — плата за пользование Google Cloud может оказаться высока.

Также, в Google Cloud Functions есть лимиты на обьем обработанных данных.

Экспорт данных из MySQL вручную

Чтобы самостоятельно настроить извлечение данных из MySQL, воспользуйтесь последней версией инструкций по экспорту данных из MySQL. Для экспорта данных, используйте инструмент командной строки mysqldump.

С помощью mysqldump можно извлекать целые таблицы и БД в выбранном формате, включая текст с разделителями CSV. В дальнейшем CSV файлы будет проще импортировать в BigQuery.

Для импорта данных в Google BigQuery используйте инструкцию из этого руководства.

Проблема «ручного» метода заключается в том, что необходимо:

  1. Написать приложении для автоматического экспорта из MySQL в BigQuery.
  2. Поддержку решения: часто приходят данные, которые ломают структуру данных / таблиц. В этом случае, приходится повторно привлекать разработчика для отладки ETL-процесса.

В итоге, бизнесу дешевле обходится использования готовых ETL-решений, чем разработка и поддержка собственного.