Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Вопрос по SSIS
|
|||
|---|---|---|---|
|
#18+
Добрый день, подскажите, пож-та. Нужно через SSIS пакет настроить обновление таблицы - справочника. То есть нужно обновлять имеющиеся записи и добавлять отсутствующие. Я так понимаю, что для этого можно использовать элемент Lookup. Вопрос, собственно корректно ли использовать данный элемент под указанную задачу и есть ли какие либо ограничения в использовании? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2019, 13:45 |
|
||
|
Вопрос по SSIS
|
|||
|---|---|---|---|
|
#18+
Michail A.Добрый день, подскажите, пож-та. Нужно через SSIS пакет настроить обновление таблицы - справочника. То есть нужно обновлять имеющиеся записи и добавлять отсутствующие. Я так понимаю, что для этого можно использовать элемент Lookup. Вопрос, собственно корректно ли использовать данный элемент под указанную задачу и есть ли какие либо ограничения в использовании? Можно, так часто и делают. Для небольшого потока вполне подходит, для интенсивных изменений лучше использовать push down processing. Материализовывать данные в постоянную или временную таблицу и мержить SQL командами (merge или insert/update) Если будете пользоваться lookup-ом надо помнить несколько вещей 1. Для больших справочников отключать кеширование в lookup-е 2. Входящий поток должен быть уникальным ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2019, 14:08 |
|
||
|
Вопрос по SSIS
|
|||
|---|---|---|---|
|
#18+
Помните только, что в случае использования SSIS обновления будут идти итеративно, для каждой записи свой UPDATE. Если с точки зрения производительности это OK, то OK! :-) Если же нет, то надо думать о какой-то BATCH LOAD логике. Например выгружать очередную порцию в промежуточную таблицу, а потом с ней соединяться в одном UPDATE как предыдущем варианте, но использовать MERGE генерить CUSTOM запрос, где очередной пакет в Table Value Constructor упакован и с ним уже UPDATE/INSERT или MERGE возможны варианты с передачей JSON, XML или CUSTOM табличного типа данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2019, 14:20 |
|
||
|
Вопрос по SSIS
|
|||
|---|---|---|---|
|
#18+
Yuri Abele... то надо думать о какой-то BATCH LOAD логике ... В SSIS этим не пользовался, но уверен, что для такого есть решения соронних поставщиков (я про расширения для SSIS) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2019, 14:24 |
|
||
|
Вопрос по SSIS
|
|||
|---|---|---|---|
|
#18+
msLex, для небольших потоков - это для каких? И по п.2 - что имеется ввиду, что поток должен быть уникальным? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2019, 14:30 |
|
||
|
Вопрос по SSIS
|
|||
|---|---|---|---|
|
#18+
Michail A.msLex, для небольших потоков - это для каких? Если у вас хотя бы 10-ки тысяч изменений в час, стоит задуматься. Michail A.И по п.2 - что имеется ввиду, что поток должен быть уникальным? Стандартный воркфлоу с lookup-ом: 1. Lookup: Проверяем через lookup наличие записи с ключом в базе и делим на два потока insert и update 2.1 Insert: Соответственно, вставляем запись 2.2 Update: Соответственно, обновляем запись Проблема (а точнее особенность) в том, что эти компоненты работают асинхронно. Если в Lookup придут две записи с одним ключом, отсутствующим в таргет таблице, есть не иллюзорный шанс, что первая из них еще не будет вставлена до проверки на lookup-е второй, а значит и вторая запись уйдет в insert потоки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2019, 14:39 |
|
||
|
Вопрос по SSIS
|
|||
|---|---|---|---|
|
#18+
msLex, нет ли примера, как реализуется поток update? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2019, 17:31 |
|
||
|
Вопрос по SSIS
|
|||
|---|---|---|---|
|
#18+
Michail A.msLex, нет ли примера, как реализуется поток update? Обычный OLE DB Command с параметризированным update ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2019, 17:42 |
|
||
|
Вопрос по SSIS
|
|||
|---|---|---|---|
|
#18+
msLex, вот именно параметризованный update интересует. Как в данном update выбрать только те строки, в которых происходило изменение значений полей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2019, 17:52 |
|
||
|
Вопрос по SSIS
|
|||
|---|---|---|---|
|
#18+
Michail A. Нужно через SSIS пакет настроить обновление таблицы - справочника. То есть нужно обновлять имеющиеся записи и добавлять отсутствующие. Если позволяет версия, то иcпользуйте SQL Script и MERGE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2019, 17:57 |
|
||
|
Вопрос по SSIS
|
|||
|---|---|---|---|
|
#18+
Michail A.msLex, вот именно параметризованный update интересует. Как в данном update выбрать только те строки, в которых происходило изменение значений полей? обычный Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2019, 18:03 |
|
||
|
Вопрос по SSIS
|
|||
|---|---|---|---|
|
#18+
msLex, а можно ли в рамках данного потока как нибудь сравнить записи, и произвести update только тех записей, в которых были изменения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2019, 18:19 |
|
||
|
Вопрос по SSIS
|
|||
|---|---|---|---|
|
#18+
Michail A.msLex, а можно ли в рамках данного потока как нибудь сравнить записи, и произвести update только тех записей, в которых были изменения? можно. Например, "влоб" добавить and ( field1 != ? or filed2 != ? ... ) если в полях допустимы null, добавить isnull(...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2019, 18:35 |
|
||
|
Вопрос по SSIS
|
|||
|---|---|---|---|
|
#18+
В этом случае получаю ошибку "error at data flow task [ole db command [27]]: Parameters are not bound. All parameters in the SQL command must be bound to input columns. Т.е. я так понимаю вопрос в том, что поставить в соответствие параметрам, которые возникают после добавлении данной секции ( and ( field1 != ? or filed2 != ? ... )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2019, 19:21 |
|
||
|
Вопрос по SSIS
|
|||
|---|---|---|---|
|
#18+
Michail A., почитайте что означает назначение (привязка) параметров (Bound parameters) У вас этого нет, отсюда и ошибка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2019, 10:36 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39839952&tid=1687507]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
34ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 334ms |

| 0 / 0 |
