Как экспортировать файлы IXF и LOB из dashdb
Мне нужно скопировать несколько таблиц в одну базу данных dashdb, чтобы разделить базу данных dashdb. Обычно я экспортирую CSV-файл из одного и загружаю его в другой с помощью веб-консоли, однако, в частности, в одной таблице есть столбец CLOB, поэтому нам нужно будет экспортировать его в файлы ixf + lob, а затем импортировать его. К сожалению, я не вижу простого способа сделать это, так как похоже, что clpplus может экспортировать только на сервер, на котором находится база данных (к которому у меня нет доступа), и я не могу найти способ получить его экспортировать файлы LOB. Кто-нибудь знает, как лучше всего это сделать?
2 ответа
Если значения CLOB в действительности меньше 32 КБ, вы можете попытаться преобразовать их в значение VARCHAR как часть оператора SELECT, который вы предоставляете для EXPORT.
Если вам действительно необходимо экспортировать файлы больших объектов, вы можете записать их в домашнюю директорию пользователей внутри экземпляра dashDB, а затем использовать /home REST API для загрузки файлов, например, с помощью curl: https://developer.ibm.com/static/site-id/85/api/dashdb-analytics/
Другой вариант - экспортировать таблицу с большими объектами на локальный компьютер, а затем импортировать в другую dashDB.
Один из способов экспортировать таблицу dashDB на локальный клиент - запустить команду EXPORT в процессоре командной строки DB2 (CLP) на вашем клиентском компьютере. Для этого вам нужно установить клиент времени выполнения IBM Data Server, а затем каталогизировать ваши базы данных dashDB на клиенте, например:
CATALOG TCPIP NODE mydash REMOTE dashdb-txn-small-yp-lon02-99.services.eu-gb.bluemix.net SERVER 50000;
CATALOG DATABASE bludb AS dash1 AT NODE mydash;
CONNECT TO dash1 USER <username> USING <password>;
Теперь давайте экспортируем таблицу с именем "mytable", чтобы столбец больших объектов записывался в отдельный файл:
export to mytable.del of del
lobfile mylobs
modified by lobsinfile
select * from mytable;
Эта команда экспорта создает файлы mytable.del и mylobs.001.lob. Файл mytable.del содержит указатели на файл mylobs.001.lob, которые определяют смещение и длину каждого значения.
Если данные большого объекта слишком велики, чтобы поместиться в один файл, будут созданы дополнительные файлы mylobs.002.lob, mylobs.003.lob и т. Д.
Обратите внимание, что экспортированные данные будут отправлены из dashDB вашему локальному клиенту в несжатом виде, что может занять некоторое время в зависимости от объема данных.
Если файлы.DEL и.LOB находятся на клиентском компьютере, таком как ваш ноутбук или локальный сервер, вы можете использовать команду IMPORT, чтобы включить эти файлы в таблицу со столбцом LOB. В CLP вы сначала подключитесь к базе данных dashDB, в которую хотите загрузить.
Давайте предположим, что исходная таблица была экспортирована в файлы mytable.del и mylobs.001.lob, и теперь эти файлы расположены на вашем клиентском компьютере в каталоге /mydata. Затем эта команда загрузит данные и большие объекты в целевую таблицу:
IMPORT FROM /mydata/mytable.del OF DEL
LOBS FROM /mydata
MODIFIED BY LOBSINFILE
INSERT INTO mytable2;
Эту команду IMPORT можно запустить в процессоре командной строки DB2 на вашем клиентском компьютере.