Mysql copy DB

helg
Уже с Приветом
Posts: 4827
Joined: 15 May 2001 09:01

Re: Mysql copy DB

Post by helg »

helg wrote:В дополнение к вышепосоветованному "split -l", чтобы разбить гигантский файл на кусочки перевариваемого размера, можно ещё убрать автокоммит и проверку constraints при каждом insert. Для InnoDB таблицы:

Code: Select all

SET FOREIGN_KEY_CHECKS = 0;
SET UNIQUE_CHECKS = 0;
SET AUTOCOMMIT = 0;
-- тут  запускаем миллиард инсертов
SET UNIQUE_CHECKS = 1;
SET FOREIGN_KEY_CHECKS = 1;
COMMIT;
https://support.tigertech.net/mysql-large-inserts" onclick="window.open(this.href);return false;
Вы глупости говорите, уважаемый. У дамы миллиард записей, если их без промежуточных коммитов вставлять - лопнет лог, он по умолчанию у MySQL не тянет столько. Наблюдаемый эффект, видимо, и есть результат переполнения этого лога.

Надо либо причесать файл с миллиардом строк, вставив в него коммиты после каждой сотни инсертов, либо испечь текстовый файл с данными по записи на строку - и скормить его: команде mysqlimport или SQL-у "LOAD DATA INFILE".
8K
Уже с Приветом
Posts: 5552
Joined: 20 Mar 2001 10:01
Location: SFBA

Re: Mysql copy DB

Post by 8K »

Проблема в том, как файл пилить. Нужно самопальный парсер писать хоть на том же Питоне. Авк'ом вряд ли получится. Там же единственный INSERT на всю таблицу, еще и в одну строчку записанный.
Увидев друга, Портос вскрикнул от радости...
Palych
Уже с Приветом
Posts: 13723
Joined: 16 Jan 2001 10:01

Re: Mysql copy DB

Post by Palych »

Я знаю что нужно:
- Поднять Spark на кластере в облаке,
- Добавить в него Deep Learning
- Процедить тот здоровый файл через нейронную сеть
- Создать report который будет содержать insert statements для разных кусков, сохранить его в NoSQL
- запустить на том же кластере распределённую задачу, которая будет читать из NoSQL и писать в MySQL
Всё просто! :)

Return to “Вопросы и новости IT”