Как экспортировать файлы 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 на вашем клиентском компьютере.

Другие вопросы по тегам