Блоки транзакций CloverETL для временных таблиц - PullRequest
1 голос
/ 10 мая 2011

Я пытаюсь создать сценарий ETL в CloverETL Designer, который в рамках своей обработки создает временную таблицу, которую затем использует в соединении. По причинам, характерным для системы, идеальной является временная таблица, которая не существует вне блока транзакции, и поэтому я стараюсь избегать создания представления или стандартной таблицы. Соединения устанавливаются через драйвер JDBC с соответствующими базами данных.

Я уже знаю SQL как для временной таблицы, так и для запроса, который следует с использованием этой таблицы.

Однако я не совсем уверен, что лучший способ сделать это под CloverETL. Могу ли я заставить DBExecute работать в том же блоке транзакции, что и DBInputTable? Моя лучшая ставка будет заключаться в том, чтобы перенести обе таблицы в локальную базу данных, а затем работать с ними оттуда?

Есть идеи или предложения?

1 Ответ

1 голос
/ 12 мая 2011

Чтобы компоненты Clover работали в одной транзакции, вам нужно указать threadSafeConnection = "false" .По умолчанию для этого параметра установлено значение true , поэтому каждый компонент использует свой собственный экземпляр подключения для работы с базой данных.Вы можете найти несколько тем на форуме CloverETL, которые подробно описывают проблему, например: http://forum.cloveretl.org/viewtopic.php?f=4&t=3342 http://forum.cloveretl.org/viewtopic.php?f=7&t=3431

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...