Существует три варианта обработки преобразования:
На стороне источника данных Вы можете поместить логику в хранимую процедуру (не уверен, что это возможно с postgresql) или в SQL-запрос напрямую.Затем выберите только таблицу результатов.
- Меньше сетевого трафика
- больше нагрузки на источник, возможно, не разрешено
Обработка наСреда выполнения интеграции фабрики данных Это вариант с потоком данных.Здесь таблицы копируются во время выполнения интеграции, затем обрабатываются, а затем результат копируется в ваш приемник.Так как это тихая новая опция, доступно не так много соединений.вам, возможно, придется сначала обойтись с копированием данных на ASQL Server.
- возможно, медленнее, в зависимости от размеров ваших ресурсов
- простой в создании логический / визуальный интерфейс
Обработка в приемнике Скопируйте необработанные данные на сервер ASQL и выполните там запрос или хранимую процедуру.
- большая гибкость, так как вы можете изменить размер ASQL, если он требует больше ресурсов
- быстрая обработка
- более гибкая, если возможен прием и обработка дельта (выполнение операций upserts / merges)
- много обслуживания
Все три являются допустимыми вариантами и полностью зависят от вашего варианта использования и требований (относительно операций, SLA, ...)
О проблеме с выбором нескольких таблиц: вам нужно будет делать каждую таблицу отдельно, но если все они следуют одной и той же логике, вы можете создать таблицу водяных знаков, найти все имена таблиц в ней и зациклить модуль копирования.Таким образом, у вас есть только один конвейер, который копирует все таблицы последовательно.
Об имеющихся данных: copy только вставляет данные.Если вы хотите сначала обрезать таблицу, вы можете добавить это как «сценарий предварительного копирования».
Если я что-то забыл, пожалуйста, прокомментируйте, я обновлю сообщение соответственно