加入时的 Azure Application Insights 分析查询
Azure Application Insights Analytics Query on Joining
我有 2 个自定义事件 A 和 B。 A 可以有值 "X" 或 "Y" 。 B 将具有唯一值 Z 。事件 A 的某些行同时具有值 "X" 和 "Y",但具有唯一的事件 B 值 "Z",我想过滤具有值 "X" 和 [=22 的事件 A =].
我希望结果集包含只有值 X 的事件 A 和具有值 Z 的事件 B。基本上我不想显示具有 Y 值的事件 A 的条目,因为它已经有一个具有 "X" 且具有与 Y 相同的唯一值 Z 的条目。
我基本上是根据唯一值 Z 在 X 和 Y 的值之间进行内部连接
customEvents
| extend Column1 = tostring(customDimensions.['A']) , column2 = tostring(customDimensions.['B'])
| where (Column1 == "X" )
| project Column1 ,column2
| join kind= inner (
customEvents | extend Column1 = tostring(customDimensions.['A']) , column2 = tostring(customDimensions.['B']) | where (Column1 == "Y"
)| project Column1 , column2
) on column2 | project Column1 , column2
通过这种方式,我能够在 column2 中的唯一值 Z 和 column1 中的 X 上获取公共行。
现在如何在事件 A 中显示仅具有 Y 值的 column1 的剩余行,并将它们添加到我从上述内连接查询获得的结果集中?我尝试使用具有 Y 值的事件 A 的完整外部以及我得到的上述结果。但它并没有给我想要的结果。在这方面需要一些帮助。
我认为有几种方法可以达到预期的效果:
使用 Union
运算符仅 "glues" 两个数据集在一起而不连接任何字段 - (Query1) | union (Query2)
。如果您可以将两个查询中的两个数据集作为输入来生成并集,那么这是合适的。
使用(Query1) | join kind=anti (Query2) on Field
从左侧获取Field
中右侧未表示的所有内容。如果您有一个数据集,您希望从其他更丰富的数据集中 "subtract" 以获得所需的结果,这很适合。
你能不能在没有任何 joins/unions 的情况下更简单地做到这一点,比如
customEvents |
extend columnA = tostring(customDimensions.['A'])
extend columnB = tostring(customDimensions.['B'])
extend columnMerged = iff( columnA == 'X', ColumnA, ColumnB )
project columnMerged
我有 2 个自定义事件 A 和 B。 A 可以有值 "X" 或 "Y" 。 B 将具有唯一值 Z 。事件 A 的某些行同时具有值 "X" 和 "Y",但具有唯一的事件 B 值 "Z",我想过滤具有值 "X" 和 [=22 的事件 A =].
我希望结果集包含只有值 X 的事件 A 和具有值 Z 的事件 B。基本上我不想显示具有 Y 值的事件 A 的条目,因为它已经有一个具有 "X" 且具有与 Y 相同的唯一值 Z 的条目。
我基本上是根据唯一值 Z 在 X 和 Y 的值之间进行内部连接
customEvents
| extend Column1 = tostring(customDimensions.['A']) , column2 = tostring(customDimensions.['B'])
| where (Column1 == "X" )
| project Column1 ,column2
| join kind= inner (
customEvents | extend Column1 = tostring(customDimensions.['A']) , column2 = tostring(customDimensions.['B']) | where (Column1 == "Y"
)| project Column1 , column2
) on column2 | project Column1 , column2
通过这种方式,我能够在 column2 中的唯一值 Z 和 column1 中的 X 上获取公共行。
现在如何在事件 A 中显示仅具有 Y 值的 column1 的剩余行,并将它们添加到我从上述内连接查询获得的结果集中?我尝试使用具有 Y 值的事件 A 的完整外部以及我得到的上述结果。但它并没有给我想要的结果。在这方面需要一些帮助。
我认为有几种方法可以达到预期的效果:
使用
Union
运算符仅 "glues" 两个数据集在一起而不连接任何字段 -(Query1) | union (Query2)
。如果您可以将两个查询中的两个数据集作为输入来生成并集,那么这是合适的。使用
(Query1) | join kind=anti (Query2) on Field
从左侧获取Field
中右侧未表示的所有内容。如果您有一个数据集,您希望从其他更丰富的数据集中 "subtract" 以获得所需的结果,这很适合。
你能不能在没有任何 joins/unions 的情况下更简单地做到这一点,比如
customEvents |
extend columnA = tostring(customDimensions.['A'])
extend columnB = tostring(customDimensions.['B'])
extend columnMerged = iff( columnA == 'X', ColumnA, ColumnB )
project columnMerged