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

MySQL Dump

mysqldump — официальный инструмент логического экспорта MySQL. Начиная с версии 0.15, Apache Doris совместим с mysqldump. С его помощью можно экспортировать схемы таблиц (DDL) или данные (DML), а затем повторно импортировать их в Doris командой source.

Сценарии использования​

СценарийРекомендацияПримечания
Миграция данных в средах разработки и тестированияРекомендуетсяИнструмент прост в использовании и широко доступен
Резервное копирование и миграция схемРекомендуетсяИспользуйте --no-data, чтобы экспортировать только DDL
Экспорт небольших объёмов данныхРекомендуетсяОт нескольких MB до сотен MB
Экспорт больших объёмов данных в производственных средахНе рекомендуетсяПроизводительность и стабильность ограничены. Вместо этого используйте EXPORT или OUTFILE

Предварительные требования​

  • Версия Doris >= 0.15
  • В клиентской среде установлен mysqldump
  • У вас есть права на чтение целевых баз данных и таблиц (порт FE для протокола MySQL по умолчанию: 9030)

Примеры использования​

Экспорт данных или схемы​

Во всех следующих примерах используется подключение к FE по адресу 127.0.0.1:9030 с учётной записью root. Во все команды необходимо включать параметр --no-tablespaces (причину см. ниже в разделе «Примечания»).

  1. Экспорт схемы и данных указанной таблицы

    mysqldump -h127.0.0.1 -P9030 -uroot --no-tablespaces \
    --databases test --tables table1
  2. Экспорт только схемы указанной таблицы (без данных)

    mysqldump -h127.0.0.1 -P9030 -uroot --no-tablespaces \
    --databases test --tables table1 --no-data
  3. Экспорт всех таблиц из нескольких баз данных

    mysqldump -h127.0.0.1 -P9030 -uroot --no-tablespaces \
    --databases test1 test2
  4. Экспорт всех баз данных и всех таблиц

    mysqldump -h127.0.0.1 -P9030 -uroot --no-tablespaces \
    --all-databases

Дополнительные параметры описаны в официальном руководстве MySQL по mysqldump.

Импорт результатов экспорта в Doris​

Вывод mysqldump можно перенаправить в файл .sql, а затем импортировать с помощью команды source в клиенте Doris:

# 1. Export to a file
mysqldump -h127.0.0.1 -P9030 -uroot --no-tablespaces \
--databases test --tables table1 > table1.sql

# 2. Log in to Doris and run source to import
mysql -h127.0.0.1 -P9030 -uroot
source table1.sql;

Примечания​

  1. Параметр --no-tablespaces обязателен: Doris не поддерживает концепцию табличных пространств MySQL. Без этого параметра экспорт завершится ошибкой.
  2. Подходит только для разработки, тестирования или работы с небольшими объёмами данных: mysqldump выполняет логический экспорт в одном потоке. Его производительность и стабильность недостаточны для работы с большими объёмами данных. Не используйте его для экспорта больших объёмов данных в производственных средах. Для экспорта данных в производственных средах используйте один из следующих способов:
    • Оператор EXPORT: асинхронный экспорт в объектное хранилище или HDFS
    • SELECT INTO OUTFILE: синхронный экспорт результатов запроса в файл