powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Переброс данных из разных стороних баз через MS Access
8 сообщений из 8, страница 1 из 1
Переброс данных из разных стороних баз через MS Access
    #39476606
Casper2002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток,
Столкнулся с проблемой переброса данных. В данном случаи необходимо перебросить данные таблицы из одной базы IBM DB2 в другую (кросс базные запросы DB2 составить нельзя так как нет соответствующей лицензии и базы находятся в разных местах).

Если перетягиваются маленькие таблички, то я создаю прилинкованую таблицу (куда писать. Например: db2_tbl2)
и создаю 2ва запроса:

Запрос 1 (Pass-Throught query) выбирает нужные данные. Например:
Код: sql
1.
select * from db1_tbl1;



Запрос 2 (обычный запрос MS Access) записывает данные в прилинкованую таблицу.
Код: sql
1.
INSERT INTO db2_tbl2 select * from Запрос 1;



Если таблица большая, то MS Access уходит в нирвану на много часов и не всегда выходит.
Если использовать инструмент типа Jasper ETL то там он тоже затягивает данные к себе (как MS Access), а потом записывает в нужную таблицу, но делает он это гораздо быстрее.

Думаю что разница только в моем "топорном" подходе передачи данных и что как-то можно сделать все тоже самое на MS Access только с использованием VBA кода.
...
Рейтинг: 0 / 0
Переброс данных из разных стороних баз через MS Access
    #39476614
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Casper2002Запрос 2 (обычный запрос MS Access) записывает данные в прилинкованую таблицу.
А почему не сразу
Код: sql
1.
INSERT INTO db2_tbl2 select * from db1_tbl1;


?
...
Рейтинг: 0 / 0
Переброс данных из разных стороних баз через MS Access
    #39476629
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Casper2002,
а экспорт-импорт таблички средствами самой IBM DB2, разве, выполнить нельзя? нет, разве, там такого инструментария?
...
Рейтинг: 0 / 0
Переброс данных из разных стороних баз через MS Access
    #39476659
Casper2002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

В смысле обычный MS Access запрос вида:
Код: sql
1.
2.
3.
Insert into 
[ODBC;DSN=DB1;...].tbl1
select * from [ODBC;DSN=DB2;...].tbl2



Так вроде тоже получается, но тут другой затык выходит - в обычном запросе MS Access я не могу писать запрос на SQL-е DB2, а у меня исходные данные для переноса на самом деле запрос DB2, а не таблица tbl1 в чистом виде.
...
Рейтинг: 0 / 0
Переброс данных из разных стороних баз через MS Access
    #39476666
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Casper2002у меня исходные данные для переноса на самом деле запрос DB2, а не таблица tbl1 в чистом виде.Ну так заставьте DB2 шустренько серверным запросом у себя, не гоняя данных, слить данные для переноса в требуемых структуре и формате во временную таблицу, потом показанным запросом перелейте данные во вторую БД без трансформаций посередине, а после с чистой совестью прибейте времянку.

Сейчас же Вы выволакиваете все эти данные к себе в Access в твёрдую копию - чё б ему не закоматозиться...
...
Рейтинг: 0 / 0
Переброс данных из разных стороних баз через MS Access
    #39476779
Casper2002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
Доступ к первой DB только на чтение. Поэтому такой вариант не подходит.
...
Рейтинг: 0 / 0
Переброс данных из разных стороних баз через MS Access
    #39476999
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Casper2002Akina,
Доступ к первой DB только на чтение...
Всё-же не пойму, что мешает выгрузить результаты запроса например в XML, а потом в другую базу импортировать из этого XML?
http://www.sql.ru/forum/1152800/vygruzka-dannyh-select-zaprosa-v-xml-i-csv
http://www.sql.ru/forum/529982/import-dannyh-iz-xml-fayla-v-tablicu-bazy-dannyh
...
Рейтинг: 0 / 0
Переброс данных из разных стороних баз через MS Access
    #39477069
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.к. напрямую базы соединить нельзя, то единственный выход - передача данных через промежуточные структуры данных. Если в таблице много строк, то при передаче через Акцесс всего массива сразу можно превысить максимальный размер файла в 2 Гб запросто, т.к. очистка неиспользуемых областей файла данных в Аксе работает очень плохо, база начинает тормозить при приближении к максимальныму размеру файла. Поэтому лучше передавать через внешние файлы, как это предложено выше или можно попробовать копирование данных по частям, допустим, по 1000 строк за раз. Так будет возможность видеть прогресс и работать, думаю, будет быстрее при правильном пользовании индексами.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Переброс данных из разных стороних баз через MS Access
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]