1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/qieangel2013-goMontioringDdl

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

goMontioringDdl — это инструмент на языке Go, который позволяет отслеживать DDL-изменения в MySQL и отправлять уведомления через DingTalk.

v1.0.1

  1. Добавлены рекомендации по оптимизации SQL.

Эффект: Рисунок 1. Рисунок 2.

Установка

  • Установите Go (1.6+) и задайте свой GOPATH.
  • Выполните команду go get github.com/qieangel2013/goMontioringDdl. Она выведет некоторые сообщения в консоль, но их можно пропустить. :-)
  • Перейдите в каталог $GOPATH/src/github.com/qieangel2013/goMontioringDdl
  • Соберите программу с помощью команды go build main
  • Запустите программу командой ./main

Использование

  • Создайте таблицу в MySQL.
  • Настройте базовую конфигурацию, см. пример конфигурации river.toml.
  • Настройте URL вебхука DingTalk для отправки уведомлений.
  • Укажите источник данных MySQL в конфигурационном файле, см. раздел Источник ниже.
  • Настройте правила сопоставления MySQL и Elasticsearch в конфигурационном файле, см. раздел Правила ниже.
  • Запустите ./main, чтобы начать работу.

Примечание

  • Формат binlog должен быть row.
  • Изображение строки binlog должно быть полным для MySQL, иначе вы можете потерять данные полей при обновлении первичного ключа в MySQL с минимальным или noblob изображением строки binlog. MariaDB поддерживает только полное изображение строки.
  • Нельзя изменить формат таблицы во время выполнения.
  • Таблица MySQL, которая будет синхронизироваться, должна иметь первичный ключ (PK), теперь разрешены многоколоночные PK, например, если PKs равен (a, b), мы будем использовать «a:b» в качестве ключа. Данные PK будут использоваться как «id» в Elasticsearch. Также можно настроить составные части идентификатора с другим столбцом.
  • Сначала следует создать связанные отображения в Elasticsearch, использование стандартного отображения не является разумным решением, необходимо знать, как точно выполнять поиск.
  • mysqldump должен существовать на том же узле, что и go-mysql-elasticsearch, иначе go-mysql-elasticsearch будет пытаться синхронизировать только binlog.
  • Не изменяйте слишком много строк одновременно в одном SQL.

Источник

Конфигурация источника данных.

Формат в конфигурационном файле следующий:

# Источник данных MySQL
[[источник]]
схема = "тест"
таблицы = ["*"]

# Источник данных MySQL
[[источник]]
схема = "test_1"
таблицы = ["*", t4]

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

Список пожертвований проекту

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Go реализует мониторинг DDL-команд через binlog и отправляет оповещения в WeChat (ДинДонг). Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/qieangel2013-goMontioringDdl.git
git@api.gitlife.ru:oschina-mirror/qieangel2013-goMontioringDdl.git
oschina-mirror
qieangel2013-goMontioringDdl
qieangel2013-goMontioringDdl
master