首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

删除95%的最高计数Kusto查询

Kusto查询是一种用于大规模数据分析和查询的编程语言,它是Azure Data Explorer(ADE)的查询语言。ADE是一种快速、可扩展和高性能的云端数据探索服务,可以帮助用户在海量数据中发现洞察,并进行实时分析。Kusto查询语言支持多种数据操作和分析功能,包括过滤、聚合、排序、连接等,能够满足各种复杂查询的需求。

删除95%的最高计数Kusto查询的目标是在一个大规模数据集中删除计数最高的95%的数据。这可以通过以下步骤来实现:

  1. 根据特定的字段(例如时间戳)对数据进行分组和聚合,计算每个分组的计数。
  2. 对计数进行排序,以便从最高计数的分组开始。
  3. 计算总计数,确定要删除的计数值。
  4. 从最高计数开始遍历分组,累计计数值,直到累计计数达到总计数的95%。
  5. 标记达到累计计数值的分组。
  6. 删除标记的分组。

在实际操作中,可以使用ADE的Kusto查询语言来完成上述步骤。具体的查询代码如下所示:

代码语言:txt
复制
// 步骤1:分组和计数
datatable MyTable (timestamp:datetime, value:int)
{
    // 表数据
}
| summarize count() by timestamp
| order by count_ desc

// 步骤3:计算总计数
let totalCount = toscalar(MyTable | count());

// 步骤4-6:删除95%的最高计数
let countThreshold = toscalar(totalCount * 0.95);
let deletedCount = 0;
MyTable
| summarize count() by timestamp
| order by count_ desc
| project timestamp, count_
| where deletedCount < countThreshold or isnull(count_)
| invoke 
{
    // 步骤5:累计计数值
    let curCount = toscalar(count_);
    let isNullCount = isnull(curCount);
    let curCountValid = iif(isNullCount, 0, curCount);
    let countDiff = toscalar(countThreshold - deletedCount - curCountValid);
    
    // 步骤6:删除标记的分组
    let deleteFlag = iif(!isNullCount && countDiff >= 0, 1, 0);
    let deleteCount = iif(deleteFlag, curCountValid, 0);
    let updateCount = iif(deleteFlag, deleteCount, curCount);
    let newDeletedCount = deletedCount + deleteCount;
    
    deletedCount = newDeletedCount;
    updateCount
}

上述代码中,需要根据实际情况替换MyTable为要执行查询的表名,并根据具体需求调整参数和筛选条件。完成这个查询的一个可选的腾讯云相关产品是腾讯云的TDSQL-C(TencentDB for TDSQL-C),它提供了一种高性能、高可用的关系型数据库解决方案,适用于大规模数据存储和分析场景。产品介绍链接地址:https://cloud.tencent.com/product/tdsqlc

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 【性能工具】LoadRunner性能测试-90%响应时间

    解决方案:第90 个百分位是90%的数据点较小的值。 第 90 个百分位是统计分布的度量,与中位数不同。中位数是中间值。中位数是 50% 的值较大和 50% 较小的值。第 90 个百分位告诉您 90% 的数据点较小而 10% 较大的值。 统计上,要计算第 90 个百分位值: 1. 按事务实例的值对事务实例进行排序。 2. 删除前 10% 的实例。 3. 剩下的最高值是第 90 个百分位数。 示例: 有十个事务“t1”实例,其值为 1、3、2、4、5、20、7、8、9、6(以秒为单位)。 1. 按值排序——1,2,3,4,5,6,7,8,9,20。 2. 删除前 10%——删除值“20”。 3. 剩下的最高值是第 90 个百分位数——9 是第 90 个百分位数。 PS :这里有点类似某些比赛的评分规则中,去掉了最高分; 第 90 个百分位值回答了以下问题:“我的交易中有多少百分比的响应时间小于或等于第 90 个百分位值?” 鉴于上述信息,以下是 LoadRunner 如何计算第 90 个百分位数。 在分析 6.5 中: 事务的值在列表中排序。 90% 取自值的有序列表。取值的地方是 将数字舍入到小值:0.9 *(值的数量 - 1)+ 1 在 Analysis 7 及更高 版本中:每个值都计入一个值范围内。例如,5 可以在 4.95 到 5.05 的范围内计数,7.2 可以在 7.15 到 7.25 的范围内计数。90% 取自其中和之前的交易数量 >= ( 0.9 * 值数量) 的值范围。 方法的这种差异可能导致不同的 90% 值。同样,这两种方法都会导致第 90 个百分位定义的正确值。但是,计算这些数字的算法在 LoadRunner 7 及更高版本中发生了变化。因此 ,系统有性能平均响应时间是绝对的。表示因为平均事务响应时间必须满足性能需求,可见的性能需求已经满足了用户的要求。

    04
    领券