我有一个场景,我将两个事件数据发送到具有不同分区键/分区ID的事件中心。
现在在我的流分析中,我创建了两个带有相同连接字符串的输入别名(比如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来分隔Partition 1和MachineName-M2来分隔Partition 2。
现在我有两个azure存储表说Machine1Record
和Machine2Record
。
现在我想在流分析查询窗口中编写查询,以便机器M1记录应该存储在Machine1Record
表中,而机器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"
但他们都没有工作。请在此帮助。感谢。
答案 0 :(得分:0)
如果我理解正确,您可以使用单个事件中心,作为流分析的两个独立输入。
您可以将事件中心的单个输入用于流分析作业。 然后,您可以按如下方式从输入流创建两个输出。
SELECT *
INTO machine1output
FROM BothMachines
PARTITION BY MachineName
WHERE MachineName = "M1"
SELECT *
INTO machine2output
FROM BothMachines
PARTITION BY MachineName
WHERE MachineName = "M2"
答案 1 :(得分:0)
嗨我解决了这个问题,我在这里做的唯一错误就是在where子句中用双引号传递M1和M2。我只是删除了双引号并使用了这样的单引号 -
SELECT * INTO machine1output From machine1input where MachineName = 'M1'
SELECT * INTO machine2output From machine1input where MachineName = 'M2'
现在它完美运作..