Импорт данных с помощью Azure Web Jobs в Azure SQL

Просто ищу совет о том, как лучше всего обрабатывать импорт данных через запланированные веб-задания. У меня есть 8 файлов json, которые каждые 5 часов импортируются через FTP-клиент с помощью сериализатора JSON в память, а затем эти объекты JSON обрабатываются и вставляются в Azure SQL с помощью EF6. Каждый файл обрабатывается в цикле последовательно, так как я хотел убедиться, что все данные вставлены правильно, поскольку, когда я пытался использовать Parallel ForEach, некоторые данные не вставлялись в связанные таблицы. Поэтому, если веб-задание не выполняется, я знаю, что произошла ошибка, и мы можем запустить его снова, проблема в том, что теперь это занимает много времени, около 2 часов, так как у нас много данных - каждый файл имеет 500 местоположений, а каждое местоположение имеет 11 дни и 24-часовые данные.

У кого-нибудь есть идеи о том, как сделать это быстрее, гарантируя, что данные всегда вставляются правильно или обрабатывают любые ошибки. Я рассматривал возможность использования очередей хранилища, но нам может понадобиться указать на другие базы данных в будущем, или я могу использовать 1 веб-задание для каждого файла, чтобы 8 веб-заданий для каждого файла планировались каждые 5 часов, поскольку я думаю, что есть ограничение на количество веб-заданий, которые я могу выполнять в день.

Или есть альтернативный способ импорта данных в Azure SQL, который можно запланировать.


person Mark West    schedule 28.03.2016    source источник


Ответы (1)


Веб-задания Azure (через SDK веб-заданий) может отслеживать и обрабатывать большие двоичные объекты. Нет необходимости создавать запланированное задание. SDK может отслеживать новые большие двоичные объекты и обрабатывать их по мере их создания. Вы можете разбить обработку на файлы меньшего размера и загружать их по мере их создания.

Azure Stream Analytics имеет аналогичные возможности.

person viperguynaz    schedule 28.03.2016
comment
хорошо - посмотрю, Stream Analytics кажется излишним, чтобы по существу выполнять пакетный импорт в SqlAzure, если я не ошибаюсь. - person Mark West; 29.03.2016