0

У меня 2,8 миллиарда записей в таблице. В таблице используется INFOBRIGHT запуск двигателя при установке mysql. У меня есть несколько неправильных записей в таблице и вы хотите их исправить.Обмен данными в большой базе данных

Таблица Тест имеет 350 нечетных столбцов. У меня было как к данным своп из колонки P1 в колонке P3 несколько записей (не все). , Что я планировал осуществлять перенос данных подход заключается в следующем

  1. Извлечение данных из таблицы Test в файл CSV с помощью INTO OUTFILE функциональность MySQL
  2. Удалите ненужные записи из таблицы.
  3. Импорт данных CSV с использованием данных INFILE ЗАГРУЗИТЬ и использовать SET положение, чтобы переместить данные от P1 к P3 (пустая строка для P1 и SET P1 = P3)

подход, казалось, имеет смысл, пока я не понял, что Infobright не поддерживает SET пункт как упомянуто here

Выдержки из приведенной ниже ссылке

Конструкция SET поддерживается загрузчиком MySQL найден в стандартном MySQL загрузки , но не загрузчиком Infobright включены в ICE. Я смог выполнить загрузку с помощью инструкции SET; Интересно, что он будет работать, но SET будет проигнорирован Infobright.

Вопрос

  1. Есть ли более простой способ сделать это?
  2. Конечно, я могу редактировать CSV-файл. Но за 2,8 миллиарда записей I хотел бы иметь верный способ сделать это. Любые проверенные сценарии оценены.
  3. Я бы не хотел использовать загрузчик mysql и загружать данные в таблицу MYISAM, потому что от большого объема данных. Есть ли более быстрые подходы?
+0

Почему бы не создать временную таблицу и выполнить запрос UPDATE с использованием этой таблицы temp и вашей таблицы llive для обмена данными? Или попробуйте использовать своп на месте? –

+0

сообщите нам, поддерживает ли версия infobright обновить/вставить/удалить или нет? –

+0

Обновление будет намного медленнее, поэтому исключается. Идея состоит в том, чтобы иметь минимальный перерыв –

ответ

1

Infobright не позволяет SET при импорте из файла, но вы можете выбрать загрузчик mysql для загрузки файла. По умолчанию он использует собственный загрузчик, но вы можете выбрать загрузчик mysql для загрузки файла, а затем вы можете использовать SET.

Вы можете установить загрузчик mysql, используя: set @bh_dataformat = 'mysql';

Я не знаю, сколько загрузчика mysql будет медленнее, чем загрузчик IB.Я загрузил файл ~ 60 ГБ с ~ 60 столбцами за 1,5 часа.

+0

загрузчик Infobrighrt в два раза быстрее, чем mysql. По умолчанию IEE загружается с загрузчиком mysql на документацию. Но после тестов кажется, что он по умолчанию используется загрузчиком Infobright. Я использовал подобный подход, о котором вы говорили. Существует другой способ загрузки данных с использованием Infobright IEE. Существует специальный процессор данных, называемый DLP-процессором, который передает данные препроцессоров. Поэтому загрузка данных происходит слишком быстро. –