У меня есть mysql база данных, работающая на Amazon RDS, и я хочу знать, как экспортировать всю таблицу в формат CSV. Я в настоящее время использую mysql сервер в Windows для запросов базы данных Amazon, но когда я пытаюсь выполнить экспорт, я получаю ошибку, вероятно, потому что нет никакого выделенного файлового сервера для амазонки RDS. Там какое-либо решение к этому?
MySQL Assuming в RDS, альтернатива должна использовать пакетный режим, какие выводы РАЗДЕЛЕННЫЕ ОТ ВКЛАДКИ значения и выходят из новых строк, вкладок и других специальных символов. Я еще не ударил инструмент импорта CSV, который не может обработать РАЗДЕЛЕННЫЕ ОТ ВКЛАДКИ данные. Так, например:
$ mysql -h myhost.rds.amazonaws.com -u user -D my_database -p --batch --quick -e "SELECT * FROM my_table" > output.csv
, Как отмечено Halfgaar выше, --quick
сбросы опции сразу так избегает ошибок из памяти для больших таблиц. Для заключения в кавычки (рекомендуемых) строк необходимо будет сделать немного дополнительной работы в запросе:
SELECT id, CONCAT('"', REPLACE(text_column, '"', '""'), '"'), float_column
FROM my_table
REPLACE
Escape любые символы двойной кавычки в text_column
значения. Я также предложил бы использовать строки iso8601 для полей даты и времени, таким образом:
SELECT CONCAT('"', DATE_FORMAT(datetime_column, '%Y%m%dT%T'), '"') FROM my_table
знать, что CONCAT возвращает ПУСТОЙ УКАЗАТЕЛЬ, если у Вас есть ПУСТОЕ значение столбца.
я выполнил это на некоторых довольно больших таблицах с разумной производительностью. 600M строки и данные на 23 ГБ заняли ~30 минут при выполнении команды mysql в том же VPC как экземпляр RDS.