Как импортировать данные в базу данных в памяти? - PullRequest
1 голос
/ 24 мая 2009

Существуют ли способы импорта данных из баз данных, таких как MS SQL, MySQL, в базы данных в памяти, такие как HSQLDB, H2 и т. Д.?

Ответы [ 8 ]

2 голосов
/ 02 мая 2011

H2 поддерживает специальный URL базы данных, который инициализирует базу данных из файла сценария SQL :

"jdbc:h2:mem;INIT=RUNSCRIPT FROM '~/create.sql'"

Насколько я знаю, HSQLDB и Apache Derby не поддерживают такую ​​функцию.

1 голос
/ 01 мая 2011

В Hibernate: Добавление import.sql к пути к классу работает отлично, hbm2dll проверяет, существует ли файл, и выполняет его. Единственное, что каждая команда sql находится в одной строке, иначе она не будет выполнена

1 голос
/ 24 мая 2009

Я думаю, вам нужно сделать

  1. запрос данных из MS SQL

  2. импорт данных в БД в памяти с его API

Либо выражения SQL, либо API, связанные с БД

0 голосов
/ 16 июня 2011

Последние версии HSQLDB позволяют открывать CSV (значения, разделенные запятыми) или другой файл данных с разделителями-разделителями как TEXT TABLE в HSQLDB даже с базами данных mem:, которые затем можно скопировать в другие таблицы.

Как уже отмечали другие, для этой цели также существуют способные и ухоженные сторонние инструменты.

0 голосов
/ 25 мая 2009

Вы можете использовать dbunit для выгрузки базы данных в XML-файлы и импорта ее обратно в другую rdbms.

0 голосов
/ 24 мая 2009

Это действительно зависит от того, о чем ты думаешь. Есть ли инструмент, который мог бы сделать это автоматически без программирования? Может быть.

Хотите развить это? Затем выясните, поддерживает ли ваш любимый язык оба механизма базы данных (стандартный и в памяти), и если это так, просто напишите скрипт, который это делает. Обрабатывайте все порциями (извлекайте n строк за раз, затем вставляйте их; повторите). Насколько большой размер куска? Это зависит от вас, попробуйте разные размеры (скажем, 100, 500, 1k и т. Д.), Посмотрите, какой из них лучше работает на вашем оборудовании, точно отрегулируйте его.

Если ваш любимый язык, с другой стороны, не поддерживает их оба, попробуйте использовать что-то, что делает.

0 голосов
/ 24 мая 2009

Посмотрите на бесплатный «универсальный конвертер баз данных» http://eva -3-universal-database-converter-udc.optadat-com.qarchive.org / - он претендует на поддержку MySQL, MS -SQL и HSQLDB, среди прочих.

0 голосов
/ 24 мая 2009

Вы можете сбросить данные как операторы SQL INSERT, а затем прочитать их обратно.

Вы можете прочитать временный объект (например, структуру), а затем записать обратно во внутреннюю базу данных.

...