JDBC: экспорт / импорт необработанных данных CSV из / в удаленная база данных MySQL с использованием потоков (SELECT INTO OUTFILE / LOAD DATA INFILE)

Веб-приложение, которое я сейчас разрабатываю, поддерживает экспорт CSV (с использованием SELECT INTO OUTFILE) и импорт (с помощью LOAD DATA INFILE) на сервер MySQL для поддержки огромных наборов данных, которые чрезвычайно дороги в использовании. обрабатываются с помощью операторов SELECT и группового INSERT в коде Java (наборы результатов обработки, кодировка строк, наследие бизнес-логики и т. д.). Эти файлы CSV не управляются приложениями, поэтому они просто представляют необработанное содержимое таблиц из базы данных MySQL.Но насколько я понимаю, этот подход хорош, только если у меня есть локальные файлы, поэтому и сервер веб-приложений, и mysqld должны работать на одном компьютере.

Конфигурация приложения может указывать подключение к удаленной базе данных. Это, очевидно, означает, что загруженные файлы CSV хранятся где-то локально на машине, на которой выполняется веб-приложение, поэтому я не могу указать местоположение файла данных в инструкции MySQL LOAD DATA INFILE. (Тот же сценарий для запроса загрузки CSV). Итак, я пытаюсь найти способ указать файл CSV «виртуально» - используя поток ввода-вывода, который может обрабатываться JDBC и MySQL, аналогично управлению большими двоичными объектами и т. Д.

Поддерживает ли JDBC / MySQL эта техника для файлов CSV для импорта и экспорта?

Заранее спасибо.

5
задан Lyubomyr Shaydariv 20 January 2012 в 18:19
поделиться