У меня есть более 500 таблиц на сервере SQL, которые я хочу перенести в Dynamics 365. Пока я использую SSIS. Проблема с SSIS заключается в том, что конечный объект динамической CRM должен быть указан вместе с сопоставлениями, и поэтому было бы глупо создавать отдельные потоки данных для объектов для сотен источников таблиц SQL-сервера. Есть ли лучший способ добиться этого? Поток данных

Control flow

enter image description here

enter image description here

Я новичок в SSIS. Я не считаю, что это правильный подход. Я просто имитирую мастер импорта / экспорта SQL-сервера. Пожалуйста, дайте мне знать, есть ли способы получше

0
Sahil Tiwari 24 Окт 2018 в 21:59

2 ответа

Лучший ответ

Удивительно, как часто об этом спрашивают!

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

Единственный способ повторно использовать поток данных - это если все сопоставления источника и назначения одинаковы - например, если у вас есть 2 таблицы с точно такой же структурой DDL.

Один из вариантов (ужасный IMO) - объединить все столбцы в массивный VARCHAR, разделенный конвейером, а затем записать это в пункт назначения в настраиваемую промежуточную таблицу с двумя столбцами, например (table_name, column_dump), а затем «распаковать» это в вашу целевую систему с помощью SQL-оператора post-Load.

Я бы схватился за пулю, надел наушники и начал бы один за другим обрабатывать потоки данных SSIS - вы были бы удивлены, насколько быстро вы можете их обработать!

1
marc_s 3 Фев 2019 в 08:37

ETL работает именно так. Вы должны сопоставить источник, назначение и сопоставление столбцов. Если вы хотите, чтобы это было динамически, это возможно в Execute SQL task внутри контейнера цикла foreach. Подробнее

Но когда мы используем целевой коннектор Kingswaysoft CRM - это немного сложно (может или не может быть?), Поскольку для этого требуется очень конкретное сопоставление столбцов между источником и местом назначения.

То же самое, когда исходная схема взята из OLEDB, лучше иметь отдельные задачи потока данных для каждой таблицы.

0
Arun Vinoth 25 Окт 2018 в 12:53