0

我有一个场景,我将两个事件数据发送到具有不同分区键/分区 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 发送到单独的分区,例如 1,将 MachineName-M2 发送到单独的分区,例如 2。

现在我有两个 azure storage tableMachine1RecordMachine2Record. 现在我想在流分析查询窗口中编写查询,这样机器 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"

但他们都没有工作。请在这方面提供帮助。谢谢。

4

2 回答 2

0

如果我理解正确,您使用单个事件中心作为流分析的两个单独输入。

您可以将来自事件中心的单个输入用于流分析作业。然后您可以从输入流创建两个输出,如下所示。

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

SELECT * 
INTO machine2output
FROM BothMachines
PARTITION BY MachineName 
WHERE MachineName = "M2"
于 2016-05-26T15:34:28.323 回答
0

嗨,我解决了这个问题,我在这里做的唯一错误是在 where 子句中用双引号传递 M1 和 M2。我只是删除了双引号并使用了这样的单引号 -

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

现在它工作得很好..

于 2016-05-27T05:33:30.600 回答