Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure 与vs消费者群体-性能和其他注意事项_Azure_Azure Stream Analytics - Fatal编程技术网

Azure 与vs消费者群体-性能和其他注意事项

Azure 与vs消费者群体-性能和其他注意事项,azure,azure-stream-analytics,Azure,Azure Stream Analytics,我想知道一个有着什么样的绩效影响?我是否应该尽可能多地依赖一个有caluse的团队 例如,如果我有这样的查询: Select * from Input1 i where i.type = 'something' Select * from Input1 i where i.type = 'something-else' Select * from Input1 i where i.type = 'something-else' and i.cost > 500 Select * f

我想知道一个有着什么样的绩效影响?我是否应该尽可能多地依赖一个有caluse的团队

例如,如果我有这样的查询:

Select * from Input1 i where i.type = 'something'

Select * from Input1 i where i.type = 'something-else'

Select * from Input1 i where i.type = 'something-else' and i.cost > 500 

Select * from Input1 i where i.size < 10
Select*from Input1 i,其中i.type='something'
选择*from Input1 i,其中i.type='something other'
从Input1 i中选择*i,其中i.type='something other',i.cost>500
从输入1 i中选择*,其中i.size<10
a。我应该对从输入1到限制读者的所有内容都有一个详细的说明吗?然后作为第二步进行另一个过滤。我猜这会影响性能

b。我不应该为每个查询创建一个消费者组吗?为什么不呢


c。稍有不同,不同输出的性能之间是否存在关系?如果我有几个输出,其中一部分是高吞吐量CosDb集合,另一部分是表存储,这有关系吗?虽然表存储分区要好得多。将这两种工作分成不同的(输入、消费群体)对,甚至是完全不同的ASA工作,会更好吗

TL;DR:对于大多数典型的工作负载,您可以使用with语句来减少接收器的数量。如果要微调性能,可以使用不同的接收器创建不同的输入

请在下面找到详细答案:

a) 对于第一个问题,使用WITH,然后在该步骤中执行筛选不会影响此查询的性能

b) 使用With语句,可以减少所需的接收器数量。但是,如果需要更多的接收器,则必须定义多个输入,并为每个输入定义不同的CG。这两种方法的优缺点取决于不同的因素,如查询的并行化/分区程度、数据量和分布等。如果吞吐量非常高,您可能需要进行实验,并使用性能数字和“作业图”来指导您的决策。请注意,对于大多数当前作业,您应该对with语句没有意见

c) 如果管道是完全独立的,您可能希望创建不同的作业以最大限度地提高性能。您可以使用ASA作业的“作业图”来可视化作业拓扑并对其进行优化

如果它回答了你的问题,请告诉我

谢谢


JS

首先,感谢大家的回答。我需要一点时间来编写一些工具来测试性能。有没有办法测量ASA查询的运行时间?或者ASA+输出书写之类的。目前,我考虑向CosDB添加一个触发器,以记录插入时间,并将其与ASA等在数据上留下的不同时间戳进行比较。我的输入是一个物联网集线器,因此它可以像EventHub一样进行分区和消费者分组(?),我还不确定分区或向IoT中添加许多用户组对性能的影响。您所说的并行化/分区的程度是什么意思,它是如何影响这一点的?如果能知道WITH语句的实际作用,那就太好了。它是否将结果保存在内存中?拥有众多消费群体的缺点是什么?除了创建它们之外,这似乎是衡量E2E流性能的一个好方法。WITH是一种告诉查询优化器将对该输入的调用分组在一起而不是并行进行的方法。由于您的查询示例非常简单,因此我认为您不会对性能产生任何影响。如果您有复杂的查询(JOIN等),则可能必须使它们并行运行。您可以在此处了解有关扩展ASA作业的信息: