Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
© 2022 ООО «Яндекс.Облако»
Практические руководства
  • Веб-сервис
    • Все руководства
    • Cтатический сайт в Object Storage
    • Cайт на LAMP- или LEMP-стеке
    • Отказоустойчивый сайт с балансировкой нагрузки через Network Load Balancer
    • Отказоустойчивый сайт с балансировкой нагрузки через Application Load Balancer
    • Сайт на базе Joomla с БД PostgreSQL
    • Сайт на WordPress
    • Сайт на WordPress с БД MySQL
    • Перенос WordPress сайта с хостинга в Yandex Cloud
    • Веб-сайт на базе 1С-Битрикс
    • Интеграция L7-балансировщика с CDN и Object Storage
    • Сине-зеленое и канареечное развертывание версий сервиса
  • Интернет-магазины
    • Все руководства
    • Интернет-магазин на 1С-Битрикс
    • Интернет-магазин на Opencart
  • Архив данных
    • Все руководства
    • Однонодовый файловый сервер
    • Настройка SFTP-сервера на Centos 7
    • Резервное копирование в Object Storage через Acronis
    • Резервное копирование в Object Storage через CloudBerry Desktop Backup
    • Резервное копирование в Object Storage через Duplicati
    • Резервное копирование в Object Storage через Bacula
    • Резервное копирование в Object Storage через Veritas Backup Exec
    • Оцифровка архива в Yandex Vision
  • Тестовая среда
    • Все руководства
    • Тестирование приложений с помощью GitLab
    • Создание тестовых ВМ через GitLab CI
    • Высокопроизводительные вычисления на прерываемых виртуальных машинах
    • Эмуляция множества IoT-устройств
    • Нагрузочное тестирование gRPC-сервиса
    • HTTPS-тест с постоянной нагрузкой с помощью Phantom
    • HTTPS-тест со ступенчатой нагрузкой с помощью Pandora
  • Управление инфраструктурой
    • Все руководства
    • Начало работы с Terraform
    • Загрузка состояний Terraform в Object Storage
    • Начало работы с Packer
    • Автоматизация сборки образов ВМ с помощью Jenkins
    • Непрерывное развертывание контейнеризованных приложений с помощью GitLab
    • Создание кластера Linux-серверов «1С:Предприятия» с кластером Managed Service for PostgreSQL
    • Создание кластера Windows-серверов «1С:Предприятия» с базой данных MS SQL Server
    • Миграция в Yandex Cloud с помощью Hystax Acura
    • Защита от сбоев с помощью Hystax Acura
    • Настройка отказоустойчивой архитектуры в Yandex Cloud
    • Создание SAP-программы в Yandex Cloud
  • Построение Data Platform
    • Все руководства
    • Синхронизация данных из MySQL с помощью Yandex Data Transfer
    • Миграция базы данных из Yandex Managed Service for MySQL в MySQL
    • Настройка управляемой базы данных в кластере ClickHouse для Graphite
    • Обмен данными между Yandex Managed Service for ClickHouse и Yandex Data Proc
    • Импорт базы данных в Yandex Data Proc с использованием Sqoop
    • Использование Confluent Schema Registry с Yandex Managed Service for Apache Kafka®
    • Поставка данных в Yandex Managed Service for Apache Kafka® с помощью Debezium
    • Миграция данных в Yandex Managed Service for Apache Kafka®
    • Перенос коллекций из MongoDB в Yandex Managed Service for MongoDB
    • Миграция базы данных в Yandex Managed Service for SQL Server
    • Перенос данных из PostgreSQL в ClickHouse с помощью Yandex Data Transfer
    • Настройка Kafka Connect для работы с кластером Yandex Managed Service for Apache Kafka®
    • Настройка Yandex Cloud DNS для доступа к кластерам управляемых баз данных из других облачных сетей
  • Windows в Yandex Cloud
    • Все руководства
    • Развертывание Active Directory
    • Развертывание Microsoft Exchange
    • Развертывание Remote Desktop Services
    • Развертывание группы доступности Always On
    • Развертывание группы доступности Always On с внутренним сетевым балансировщиком
    • Развертывание Remote Desktop Gateway
  • Сетевая маршрутизация
    • Все руководства
    • Маршрутизация с помощью NAT-инстанса
    • Создание VPN-туннеля
    • Установка виртуального роутера Cisco CSR1000v
    • Установка виртуального роутера Mikrotik CHR
    • Соединение с облачной сетью при помощи OpenVPN
  • Визуализация и анализ данных
    • Все руководства
    • Визуализация данных из CSV-файла
    • Создание и публикация диаграммы с картой Москвы из CSV-файла
    • Анализ продаж сети магазинов из БД ClickHouse
    • Анализ открытых данных ДТП на дорогах России
    • Анализ продаж и локаций пиццерий на данных из БД Clickhouse и Marketplace
    • Веб-аналитика с подключением к Яндекс Метрике
    • Веб-аналитика с расчетом воронок и когорт на данных Яндекс Метрики
    • Аналитика мобильного приложения на данных AppMetrica
    • Анализ статистики подкастов Яндекс Музыки (для авторов подкастов)
    • Визуализация данных с помощью SQL-чарта
    • Анализ customer journey мобильного приложения на данных AppMetrica
    • Анализ логов Object Storage при помощи DataLens
  • Интернет вещей
    • Руководства по работе с интернетом вещей
    • Мониторинг состояния географически распределенных устройств
    • Мониторинг показаний датчиков и уведомления о событиях
  • Бессерверные технологии
    • Сокращатель ссылок
    • Ввод данных в системы хранения
    • Хранение журналов работы приложения
  1. Построение Data Platform
  2. Синхронизация данных из MySQL с помощью Yandex Data Transfer

Синхронизация данных из MySQL с помощью Yandex Data Transfer

Статья создана
Yandex.Cloud
  • Подготовьте облако к работе
    • Необходимые платные ресурсы
  • Создайте ВМ с интернет-магазином
  • Создайте стейджинговое хранилище
  • Настройте параметры трансфера
  • Проследите за переносом изменений в Yandex Cloud
  • Как удалить созданные ресурсы

Из описания сценария вы узнаете, как обеспечить периодическую доставку изменений из внешней базы данных в облако при помощи Data Transfer. Для синхронизации данных в вашем облаке нужно создать промежуточное стейджинговое хранилище данных — Managed Service for MySQL, в которое будут реплицироваться таблицы. Данные синхронизируются практически в режиме реального времени.

Чтобы настроить передачу изменений:

  1. Подготовьте облако к работе.
  2. Создайте ВМ с интернет-магазином.
  3. Создайте стейджинговое хранилище.
  4. Настройте параметры трансфера.
  5. Проследите за переносом изменений в БД в облаке.

Если созданные ресурсы вам больше не нужны, удалите их.

Подготовьте облако к работе

Перед тем, как разворачивать сервер, нужно зарегистрироваться в Yandex Cloud и создать платежный аккаунт:

  1. Перейдите в консоль управления, затем войдите в Yandex Cloud или зарегистрируйтесь, если вы еще не зарегистрированы.
  2. На странице биллинга убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его.

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

Подробнее об облаках и каталогах.

Необходимые платные ресурсы

В стоимость поддержки инфраструктуры передачи данных входит:

  1. Плата за постоянно запущенную виртуальную машину (см. тарифы Yandex Compute Cloud);
  2. Плата за использование динамического или статического внешнего IP-адреса (см. тарифы Yandex Virtual Private Cloud);
  3. Плата за постоянно запущенный кластер Managed Service for MySQL (см. тарифы Managed Service for MySQL);
  4. Плата за сервис Data Transfer (см. тарифы Data Transfer).

Создайте ВМ с интернет-магазином

  1. Создайте ВМ с интернет-магазином web-store-vm на базе MySQL:

    CLI

    Создайте диск с предварительно настроенным публичным образом виртуальной машины с интернет-магазином:

    yc compute disk create \
       --name web-store-lab-dataplatform \
       --source-image-id fd8lcf21vlpfdhb84m2s \
       --folder-id <your-yc-folder-id>
    

    Создайте виртуальную машину:

    yc compute instance create \
       --name magento \
       --zone ru-central1-a \
       --network-interface subnet-name=default-ru-central1-a,nat-ip-version=ipv4 \
       --hostname ya-sample-store \
       --use-boot-disk disk-name=web-store-lab-dataplatform \
       --ssh-key ~/.ssh/id_rsa.pub
    
  2. В параметрах группы безопасности добавьте разрешение на входящий и исходящий трафик с 80 и 443 порта, а также с порта MySQL 3306.

  3. Подключитесь к ВМ по ssh:

    ssh yc-user@<публичный_IP-адрес_виртуальной_машины>
    
  4. От имени администратора откройте файл hosts (C:\Windows\System32\drivers\etc\hosts), добавьте строку:

    <ip-address-vm> ya-sample-store.local
    
  5. Подключитесь к интернет-магазину по адресу http://ya-sample-store.local/.

  6. Схему интернет-магазина можно посмотреть при помощи DBeaver.

Создайте стейджинговое хранилище

Для реплицирования таблиц с информацией о заказах интернет-магазина создайте кластер Managed Service for MySQL:

  1. В консоли управления выберите каталог, в котором нужно создать кластер БД.

  2. Выберите сервис Managed Service for MySQL и нажмите Создать кластер.

  3. Задайте имя кластера — ya-sample-cloud-mysql.

  4. Выберите класс хоста — s2.small.

  5. В блоке Размер хранилища:

    • Выберите тип хранилища — network-ssd.
    • Выберите объем — 32ГБ.
  6. В блоке База данных:

    • Укажите имя базы данных — magento-cloud.
    • Укажите имя пользователя — yc-user и пароль — 12345678.
  7. В блоке Сетевые настройки выберите облачную сеть для размещения кластера и группы безопасности для сетевого трафика кластера.

  8. В блоке Хосты выберите параметры хостов БД, создаваемых вместе с кластером:

    • Зона доступности — ru-central1-a.
    • Подсеть — default-ru-central1-a.
  9. Нажмите кнопку Создать кластер.
    Подробнее о создании кластера см. раздел Как начать работать с Managed Service for MySQL.

Настройте параметры трансфера

Чтобы синхронизировать информацию о заказах из БД MySQL интернет-сайта с промежуточным хранилищем данных, которое находится в облаке, настройте Data Transfer:

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

  2. Выберите сервис Data Transfer и нажмите Создать эндпоинт.

  3. Определите параметры источника данных — виртуальной машины интернет-магазина с запущенным на нем экземпляром MySQL:

    • Имя — magento-source.
    • Выберите из списка тип БД — MySQL.
    • IP хоста — <публичный_IP-адрес_виртуальной_машины>.
    • Имя базы данных — ya_sample_store.
    • Имя пользователя — magento-svc и пароль — m@gent0.
    • В белом списке укажите префиксы таблиц, которые подлежат репликации, например, sales_*.
    • Нажмите кнопку Создать.
  4. Определите параметры приемника данных — управляемой базы данных Managed Service for MySQL, которая находится в облаке:

    • Имя — magento-report-dest.
    • База данных — Managed Service for MySQL.
    • Выберите из списка идентификатор кластера — ya-sample-cloud-mysql.
    • Имя базы данных — magento-cloud.
    • Имя пользователя репликации — yc-user и пароль — 12345678.
    • В строке Отключение проверки констрейнтов поставьте галочку.
      В данном случае, если произойдет нарушение порядка передачи данных, не будут выдаваться сообщения об ошибках.
    • Нажмите кнопку Создать.
  5. Выберите в меню раздел Трансферы и нажмите кнопку Создать трансфер.

  6. Определите параметры трансфера:

    • Имя — sales-order-sync.
    • В блоке Источник выберите эндпоинт magento-source.
    • В блоке Приемник выберите эндпоинт magento-report-dest.
    • В блоке Тип трансфера выберите — Копировать и реплицировать.
    • Нажмите кнопку Создать.
    • Нажмите на в строке с описанием трансфера и выберите Активировать.

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

  7. Проверьте, что схемы базы данных появились в стейджинговом хранилище:

    • Перейдите в раздел SQL стейджингового хранилища ya-sample-cloud-mysql.
    • Введите имя пользователя — yc-user и пароль — 12345678.
    • Выберите БД — magento-cloud.
    • Нажмите Подключиться.

    В окне появится схема БД интернет-магазина.

Проследите за переносом изменений в Yandex Cloud

  1. Создайте заказ в интернет-магазине по адресу http://ya-sample-store.local/.
  2. Выполните запрос к БД в облаке:
    SELECT so.*, soi.* FROM sales_order_grid so
    INNER JOIN sales_order_item soi ON so.entity_id = soi.order_id
    ORDER BY entity_id DESC 
    LIMIT 10
    
  3. Убедитесь, что данные вашего заказа появились в БД.

Как удалить созданные ресурсы

Чтобы перестать платить за инфраструктуру для передачи данных, удалите ВМ magento и кластер ya-sample-cloud-mysql.

Если вы зарезервировали публичный статический IP-адрес, удалите его.

Была ли статья полезна?

Language / Region
© 2022 ООО «Яндекс.Облако»
В этой статье:
  • Подготовьте облако к работе
  • Необходимые платные ресурсы
  • Создайте ВМ с интернет-магазином
  • Создайте стейджинговое хранилище
  • Настройте параметры трансфера
  • Проследите за переносом изменений в Yandex Cloud
  • Как удалить созданные ресурсы