SSIS: получение данных из источника RabbitMQ - PullRequest
0 голосов
/ 17 февраля 2020

Я пытаюсь получить информацию о клиенте из RabbitMQ, предоставленного клиентом. В настоящее время я использую компонент «RabbitMQ Source» Kingsway Soft.

Моя проблема заключается в следующем:

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

Альтернатива, которую я сейчас использую, такова:

Я записываю данные, которые извлекаю, в промежуточную таблицу. Это позволяет обрабатывать сообщения построчно. Однако сообщения состоят из нескольких полей: «AppID» и т. Д. c. которые содержат только метаданные и "Тело", которое содержит фактическое сообщение. Если я хочу разделить данные из тела на несколько столбцов, я должен использовать комбинацию операций SQL Server Substring () и Charindex () для каждого поля, которое я хочу извлечь. Он работает, но производительность невелика.

Кто-нибудь имеет некоторый опыт работы с компонентом RabbitMQ Source и может дать несколько советов о том, как лучше обрабатывать входящие данные? Любая помощь будет принята с благодарностью.

Приветствия

Редактировать:

Структура таблицы постановки:

`[AppId] [nvarchar](255) NULL- --Metadata
 [Body] [nvarchar](max) NULL, --The actual XML
 [ClusterId] [nvarchar](255) NULL, --More Metadata
 --More Metadata`

SQL: Нет рукописных SQL используется здесь, только конвейер служб SSIS введите описание изображения здесь

Пример данных:

<?xml version="1.0" encoding="UTF-8"?>
<xmlorderv2>
   <ID>
<MallID>Sale</MallID>
<ShopID>Sampel Shop</ShopID>
<SubShopID>9178</SubShopID>
<ShopLanguage>ENU</ShopLanguage>
<OrderNumber>87371836813616</OrderNumber>
<Date>1999-10-12</Date>
<Time>14:14:14</Time>
<SessionID>9582372829s9s</SessionID>
<Charset>ISO-8859-1</Charset>
<BuildVersion>g2fastr27f3</BuildVersion>
  </ID>
<CustomerAddress>
<Company>Sample Company</Company>
<Salutation>Mr.</Salutation>
<FirstName>Sample First Name</FirstName>
<LastName>Sample Last Name</LastName>
<Street1>Sample Street</Street1>
<Zip>11111</Zip>
<City>Sample City</City>
<Country>COL</Country>
</CustomerAddress>
</xmlorderv2>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...