powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Перенос данных между базами используя SSIS
11 сообщений из 11, страница 1 из 1
Перенос данных между базами используя SSIS
    #40028194
Pallich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем добрый день.

Прошу вашего совета, в следующей задаче.

Необходимо сделать в SSIS проект, который бы брал таблицу из базы №1, по ней фильтровал (по нескольким полям) таблицу из базы №2 и то что осталось ложил в отдельную таблицу из базы №1.

Обычный перенос данных в SSIS я делал и не раз.
Но как быть теперь? Как сделать join таблиц с разных двух баз так, что бы уже результат этого соединения положить куда нужно.

Вариант типа полностью перенести все данные в одну базу и уже потом сделать join не подходит ибо таблицы громадны.

Возможно кто то подскажет вариант решения.


Спасибо.
...
Рейтинг: 0 / 0
Перенос данных между базами используя SSIS
    #40028196
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
базы на двух разных серверах или на одном?
...
Рейтинг: 0 / 0
Перенос данных между базами используя SSIS
    #40028202
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pallich

Необходимо сделать в SSIS проект, который бы брал таблицу из базы №1, по ней фильтровал (по нескольким полям) таблицу из базы №2 и то что осталось ложил в отдельную таблицу из базы №1.

Вариант типа полностью перенести все данные в одну базу и уже потом сделать join не подходит ибо таблицы громадны.

Не, ну можно, канешно, испытывать иллюзии "а-ля страус", но перенести то придется.
Либо туда, либо сюда.
Ментальный join на расстоянии еще не работает.
...
Рейтинг: 0 / 0
Перенос данных между базами используя SSIS
    #40028208
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pallich
Как сделать join таблиц с разных двух баз
ровно так же, как в SSIS делается join таблиц из одной базы
Pallich
Необходимо сделать в SSIS проект, который бы брал таблицу из базы №1, по ней фильтровал (по нескольким полям) таблицу из базы №2 и то что осталось ложил в отдельную таблицу из базы №1.
имхо, с учетом "таблицы громадны", и в зависимости от того, какой объём из "таблицу из базы №2" в итоге пойдёт в "таблицу из базы №1" (если относительно немного), может быть более "экономным" НЕ тащить "таблицу из базы №2" для джойна, а крутить в SSIS цикл по "таблицу из базы №1, по ней фильтровал (по нескольким полям)", формировал запрос к "таблицу из базы №2", результат которого сразу и заливался бы в "ложил в отдельную таблицу из базы №1."
...
Рейтинг: 0 / 0
Перенос данных между базами используя SSIS
    #40028243
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pallich,

какие проблемы, не пойму, в SSIS имеются средства влияния, фильтрации и другие, которые могут потребовать для сравнения данных. Изучайте SSIS.
...
Рейтинг: 0 / 0
Перенос данных между базами используя SSIS
    #40028266
Ferdipux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pallich
Необходимо сделать в SSIS проект, который бы брал таблицу из базы №1, по ней фильтровал (по нескольким полям) таблицу из базы №2 и то что осталось ложил в отдельную таблицу из базы №1.
...Как сделать join таблиц с разных двух баз так, что бы уже результат этого соединения положить куда нужно.

А зачем вам вообще join? Исходя из вашей постановки, вы извлекаете данные из таблицы 2, фильтруете по таблице 1 (то есть сбрасываете не соответствующие или соответствующие строки) и записываете. Join потребуется, если вы захотите сделать из 1 строки несколько.
Инструмент SSIS для такой задачи -- Lookup в режиме Partial. Устанавливаете соответствие полей, устанавливаете свойство "Redirect missing rows to No match output" и обрабатываете далее как вам надо.
Как сделать с учетом большого размера таблиц - нужно смотреть какая таблица больше и другие их особенности. Если 2 - имеет смысл думать в сторону циклического опроса 2 с параметрами из 1 в запросе, как вам предлагали выше.
...
Рейтинг: 0 / 0
Перенос данных между базами используя SSIS
    #40028271
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pallich,
если данные отсортированы, то Join, в противном случае Lookup. Более сложные (но и интересные) варианты со скриптами не предлагаю.
...
Рейтинг: 0 / 0
Перенос данных между базами используя SSIS
    #40028348
Pallich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот например есть вариант джоина:
https://www.sqlshack.com/using-the-merge-join-transformation-in-ssis-packages/

Но это вариант только точного совпадения полей.

Как быть если джоинить нужно по двум полям, одно поле - точное совпадение а второе по условию >=?
...
Рейтинг: 0 / 0
Перенос данных между базами используя SSIS
    #40028350
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pallich
Вот например есть вариант джоина:
https://www.sqlshack.com/using-the-merge-join-transformation-in-ssis-packages/

Но это вариант только точного совпадения полей.

Как быть если джоинить нужно по двум полям, одно поле - точное совпадение а второе по условию >=?
Следующий за джоином Conditional Split
...
Рейтинг: 0 / 0
Перенос данных между базами используя SSIS
    #40028352
Pallich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
видимо нужно делать так как в видео:
YouTube Video
...
Рейтинг: 0 / 0
Перенос данных между базами используя SSIS
    #40028353
Pallich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.Евгений,

да, понял, попробую.

Спасибо!
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Перенос данных между базами используя SSIS
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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