[英]How to create a new table that only keeps rows with more than 5 data records under the same id in Bigquery
[英]KQL :: return only tags with more than 4 records
我创建了一个 Kusto 查询,允许我返回我们所有的数据库公园。 查询只需要10行代码:
Resources
| join kind=inner (
resourcecontainers
| where type == 'microsoft.resources/subscriptions'
| project subscriptionId, subscriptionName = name)
on subscriptionId
| where subscriptionName in~ ('Subscription1','Subscription2')
| where type =~ 'microsoft.sql/servers/databases'
| where name != 'master'
| project subscriptionName, resourceGroup, name, type, location,sku.tier, properties.requestedServiceObjectiveName, tags.customerCode
根据合同,我们应该只为每个客户提供 4 个 Azure SQL 数据库,但有时开发人员会复制一份并将其重命名为_old
或_backup
,突然一个客户可以拥有 5 或 6 个数据库。
这增加了云的总体成本,我想列出拥有 4 个以上数据库的所有客户。
为此,我可以使用标签tags.customerCode
,它具有每个客户的 3 个字母标识符。
代码应该像这样工作:如果一个客户被称为 ABC 并且有 4 个 Azure SQL 带有tags.customerCode
ABC 的数据库,查询应该不返回任何内容。 如果有 5 或 6 个数据库带有tags.customerCode
ABC,则查询应返回所有这些数据库。
不确定 Kusto 是否可以那么灵活。
这是一个可能的解决方案。
需要注意的是,Azure 资源图只支持有限的 KQL 子集。
resourcecontainers
| where type == 'microsoft.resources/subscriptions'
//and name in~ ('Subscription1','Subscription2')
| project subscriptionId, subscriptionName = name
| join kind=inner
(
resources
| where type =~ 'microsoft.sql/servers/databases'
and name != 'master'
)
on subscriptionId
| project subscriptionId, subscriptionName, resourceGroup, name, type, location
,tier = sku.tier
,requestedServiceObjectiveName = properties.requestedServiceObjectiveName
,customerCode = tostring(tags.customerCode)
| summarize dbs = count(), details = make_list(pack_all()) by customerCode
| where dbs > 4
| mv-expand with_itemindex=db_seq ['details']
| project customerCode
,dbs
,db_seq = db_seq + 1
,subscriptionId = details.subscriptionId
,subscriptionName = details.subscriptionName
,resourceGroup = details.resourceGroup
,name = details.name
,type = details.type
,location = details.location
,tier = details.tier
,requestedServiceObjectiveName = details.requestedServiceObjectiveName
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.