Подходит ли веб-сервис для ETL? - PullRequest
5 голосов
/ 24 декабря 2009

Моя компания рассматривает возможность использования веб-сервиса в качестве средства ETL-процесса. Однако я не думаю, что веб-сервис подходит для этой цели по нескольким причинам: 1. веб-сервис может потреблять много памяти при генерации большого XML. 2. XML является раздутым форматом. 3. возможно тайм-аут, если серверу требуется огромное количество времени для генерации данных 4. ограничение размера файла? (для windows это 2 Гб, если память мне не изменяет)

Я не эксперт по веб-сервисам, поэтому мне нужно ваше мнение. :)

Спасибо.

Ответы [ 6 ]

6 голосов
/ 24 декабря 2009

В инструменте веб-сервисов есть множество технологий, которые позволяют обойти все проблемы, которые вы разрабатываете. Существует потоковое ориентированное измельчение XML, есть форматы сжатия XML для доставки, протоколы, которые имеют дело с фрагментацией и честностью, и есть много систем хранения, которые могут хранить терабайты на терабайтах данных.

Если с помощью веб-службы вы представляете себе какую-то придуманную домашнюю работу колледжа для интерфейса, который принимает один аргумент glop с сериализованной таблицей в 2 ГБ, тогда все ваши аргументы верны. Но если вы предъявляете свои требования опытной команде, знакомой с понятиями, включенными в WS-ReliableMessaging и WS-Transaction , то нет никаких причин не использовать процесс ETL для Web-сервисов. , Обратите внимание, что я не поддерживаю протоколы SOAP как таковые, но я защищаю знание и понимание вовлеченных концепций.

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

1 голос
/ 26 декабря 2009

Мне действительно интересно, почему ваша компания не рассматривает возможность использования реального инструмента ETL, подобного тому, который упомянут duffymo в его ответе или, Talend или CloverETL , если вариант с открытым исходным кодом.

  1. Они в целом хороши для целей ETL:)
  2. Создание собственного решения звучит как изобретение колеса.
  3. Многие из них имеют функции, ориентированные на веб-службы (см. Экспорт задания как веб-службы в вики Talend или CloverETL Server HTTP Launch Services , например).

Я не эксперт по продуктам ETL, и я не проверял их все, но я уверен, что это то, что нужно учитывать.

1 голос
/ 24 декабря 2009

Это действительно зависит от того, что вы делаете и как вы пытаетесь это сделать. В целом веб-сервисы требуют большего ухода и питания, чем вы обычно вкладываете в процесс ETL, но они также могут быть удивительно эффективными при выполнении этой задачи. Я не получил достаточно подробностей для вашего сценария, чтобы сказать, будет ли он работать.

Я работал над веб-сервисами, которые передают и получают документы размером более 100 МБ, некоторые из которых закодированы в XML, некоторые нет, и делают это за считанные секунды (в закрытой локальной сети). Эти сервисы требовали значительной настройки и планирования, но они хорошо работали для нашего сценария и позволяли широкому кругу клиентов подключаться и передавать различные объемы данных через довольно стандартный интерфейс. Это отличалось от некоторых других заданий ETL, которые у нас были, поскольку задание было специфичным для каждого клиента и должно было настраиваться и обслуживаться для каждого клиента.

Все зависит от того, что вы делаете и каковы ваши ограничения.

Если вы собираетесь идти по этому маршруту, сядьте и начертите процесс с начала до конца, включая способ подключения клиентов, убедитесь, что данные получены, и убедитесь, что задание завершено. Рассмотрите некоторые сценарии, клиенты и типы передаваемых данных, а затем определите, что будет необходимо. Сравните это с тем, что уже доступно в других инструментах, и с тем, сколько времени у вас есть на это.

1 голос
/ 24 декабря 2009

Я бы не использовал веб-сервис для задачи ETL. Для этой задачи существуют специализированные инструменты (например, Ab Initio, Informatica и т. Д.), Которые лучше подходят.

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

0 голосов
/ 26 декабря 2009

Веб-сервисы отлично подходят для задач ETL. Помните, что каждая задача будет обрабатываться в своем собственном потоке бесплатно, и вам гарантирована правильная очистка между запросами. Использование веб-сервисов внутри чего-то вроде Tomcat не будет таким тяжелым, как вы думаете.

Если вы обеспокоены распространением XML, рассмотрите формат JSON.

0 голосов
/ 26 декабря 2009

Начнем с поиска MTOM, который позволяет передавать произвольные не XML-данные в веб-сервис.

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