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 (причину см. ниже в разделе «Примечания»).
-
Экспорт схемы и данных указанной таблицы
mysqldump -h127.0.0.1 -P9030 -uroot --no-tablespaces \
--databases test --tables table1 -
Экспорт только схемы указанной таблицы (без данных)
mysqldump -h127.0.0.1 -P9030 -uroot --no-tablespaces \
--databases test --tables table1 --no-data -
Экспорт всех таблиц из нескольких баз данных
mysqldump -h127.0.0.1 -P9030 -uroot --no-tablespaces \
--databases test1 test2 -
Экспорт всех баз данных и всех таблиц
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;
Примечания
- Параметр
--no-tablespacesобязателен: Doris не поддерживает концепцию табличных пространств MySQL. Без этого параметра экспорт завершится ошибкой. - Подходит только для разработки, тестирования или работы с небольшими объёмами данных:
mysqldumpвыполняет логический экспорт в одном потоке. Его производительность и стабильность недостаточны для работы с большими объёмами данных. Не используйте его для экспорта больших объёмов данных в производственных средах. Для экспорта данных в производственных средах используйте один из следующих способов:- Оператор
EXPORT: асинхронный экспорт в объектное хранилище или HDFS SELECT INTO OUTFILE: синхронный экспорт результатов запроса в файл
- Оператор