Использование нескольких ключей разделов в Analytics Query для хранения данных в нескольких таблицах хранилища Azure

У меня есть сценарий, в котором я отправляю два данных события в концентратор событий с другим ключом/идентификатором раздела.

Теперь в моей потоковой аналитике я создал два входных псевдонима с одной и той же строкой подключения (скажем, machine1input и machine2input ) и два разных выходных псевдонима, но здесь каждый выходной псевдоним указывает на отдельное хранилище таблиц.

Теперь мои данные о событиях такие.

{
  "MachineName": "M1",
  "Date": "2016-05-26T13:35:30.1557995+05:30"
}
{
  "MachineName": "M2",
  "Date": "2016-05-26T13:35:30.1557995+05:30"
}

и здесь я отправляю MachineName-M1 в отдельный раздел, скажем, 1, и MachineName-M2, чтобы разделить раздел, скажем, 2.

Теперь у меня есть две таблицы лазурного хранилища, скажем, Machine1Record и Machine2Record. Теперь я хочу написать запрос в окне потокового аналитического запроса таким образом, чтобы запись Machine M1 должна храниться в таблице Machine1Record, а запись Machine M2 должна автоматически храниться в таблице Machine2Record как данные.

Я пробовал много запросов, чтобы добиться этого.

SELECT * INTO machine1output From machine1input PARTITION BY PartitionId where PartitionId = "1"
SELECT * INTO machine2output From machine2input PARTITION BY PartitionId where PartitionId = "2"
SELECT * INTO machine1output From machine1input where MachineName = "M1"
SELECT * INTO machine2output From machine2input where MachineName = "M2"

Но ни один из них не работает. Пожалуйста, помогите с этим. Спасибо.


person JARVIS    schedule 26.05.2016    source источник


Ответы (2)


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

Вы можете использовать один вход из своего концентратора событий в своем задании потоковой аналитики. Затем вы можете создать два выхода из входного потока следующим образом.

SELECT * 
INTO machine1output
FROM BothMachines
PARTITION BY MachineName 
WHERE MachineName = "M1"

SELECT * 
INTO machine2output
FROM BothMachines
PARTITION BY MachineName 
WHERE MachineName = "M2"
person Waaghals    schedule 26.05.2016
comment
Привет, спасибо за ответ, но я уже сделал это, но это не работает, потому что, когда вы используете мое выше определение json в окне потокового аналитического запроса и просто нажимаете кнопку тестирования, это не даст вам никаких результатов. - person JARVIS; 26.05.2016
comment
Если вы также видите эту ссылку, это предполагает, что вам нужно создать два разных псевдонима ввода одного и того же концентратора событий, чтобы добиться этого, но это также не работает. social.msdn.microsoft.com/Forums/en -США/ - person JARVIS; 26.05.2016

Привет, я решил эту проблему, единственная ошибка, которую я здесь делал, - это передача M1 и M2 в двойных кавычках в предложении where. Я просто удалил двойные кавычки и использовал одинарные кавычки следующим образом:

SELECT * INTO machine1output From machine1input where  MachineName = 'M1'
SELECT * INTO machine2output From machine1input where  MachineName = 'M2'

И теперь работает отлично..

person JARVIS    schedule 27.05.2016