You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JSONATA对JSON数据按日期分组统计模块count总和

问题

我有如下JSON格式的数据集,需要按日期分组,统计每个模块对应的count字段总和。了解到JSONATA工具适合做这个,但刚接触不太会写转换表达式,期望得到指定格式的输出。

输入数据:

{"id": "6332acbfe13e6063dcb740ef","record": [{"date": "2022-09-22","entries": [{"repo": "SRE-MAC-PDM-TEAM","prod": [{"name": "modules/dynatrace","count": 16}]},{"repo": "SRE-MAC-IBO-BONUS-PAYMENTS-REPO","prod": [{"name": "modules/dynatrace/monitors/http-monitors/basic","count": 3}]},{"repo": "SRE-MAC-ANAPostPurchase","prod": [{"name": "modules/dynatrace","count": 17}]},{"repo": "SRE-MAC-ANA-SubscriptionsRewards","preprod": [{"name": "modules/splunk/hec-token","count": 8},{"name": "modules/aws/lambda/logs_streaming_splunk","count": 8}],"prod": [{"name": "modules/dynatrace/alerting_profiles","count": 1},{"name": "modules/dynatrace/monitors/http-monitors/basic","count": 1},{"name": "modules/dynatrace/notifications/splunk-on-call","count": 1},{"name": "modules/splunk/hec-token","count": 1},{"name": "modules/aws/lambda/logs_streaming_splunk","count": 1},{"name": "modules/dynatrace","count": 4}]},{"repo": "SRE-MAC-CSP-APPLICATION","preprod": [{"name": "modules/aws/lambda/logs_streaming_splunk","count": 9}]},{"repo": "SRE-MAC-IBOIP-REPO","prod": [{"name": "modules/dynatrace","count": 6}]},{"repo": "SRE-MAC-IBOLIFE-REPO","preprod": [{"name": "modules/dynatrace","count": 1},{"name": "modules/splunk/hec-token","count": 2},{"name": "modules/aws/lambda/logs_streaming_splunk","count": 3}],"prod": [{"name": "modules/dynatrace","count": 5},{"name": "modules/splunk/hec-token","count": 1},{"name": "modules/aws/lambda/logs_streaming_splunk","count": 1}]},{"repo": "SRE-MAC-PL-APPLICATION","preprod": [{"name": "modules/splunk/hec-token","count": 1},{"name": "modules/aws/lambda/logs_streaming_splunk","count": 4}],"prod": [{"name": "modules/splunk/hec-token","count": 1},{"name": "modules/aws/lambda/logs_streaming_splunk","count": 2}]},{"repo": "SRE-MAC-TPS-APPLICATION","preprod": [{"name": "modules/aws/lambda/logs_streaming_splunk","count": 1}],"prod": [{"name": "modules/dynatrace/alerting_profiles","count": 1},{"name": "modules/dynatrace/notifications/splunk-on-call","count": 1},{"name": "modules/dynatrace/calculated_service_metric","count": 1},{"name": "modules/dynatrace/anomalies/custom/metric_id","count": 1},{"name": "modules/dynatrace","count": 11}]}]},{"date": "2022-09-19","entries": [{"repo": "SRE-MAC-PDM-TEAM","prod": [{"name": "modules/dynatrace","count": 14}]},{"repo": "SRE-MAC-IBO-BONUS-PAYMENTS-REPO","prod": [{"name": "modules/dynatrace/monitors/http-monitors/basic","count": 3}]},{"repo": "SRE-MAC-ANAPostPurchase","prod": [{"name": "modules/dynatrace","count": 15}]},{"repo": "SRE-MAC-ANA-SubscriptionsRewards","preprod": [{"name": "modules/splunk/hec-token","count": 5},{"name": "modules/aws/lambda/logs_streaming_splunk","count": 5}],"prod": [{"name": "modules/dynatrace/alerting_profiles","count": 1},{"name": "modules/dynatrace/monitors/http-monitors/basic","count": 1},{"name": "modules/dynatrace/notifications/splunk-on-call","count": 1},{"name": "modules/splunk/hec-token","count": 1},{"name": "modules/aws/lambda/logs_streaming_splunk","count": 1},{"name": "modules/dynatrace","count": 3}]},{"repo": "SRE-MAC-CSP-APPLICATION","preprod": [{"name": "modules/aws/lambda/logs_streaming_splunk","count": 6}]},{"repo": "SRE-MAC-IBOIP-REPO","prod": [{"name": "modules/dynatrace","count": 6}]},{"repo": "SRE-MAC-IBOLIFE-REPO","preprod": [{"name": "modules/dynatrace","count": 1},{"name": "modules/splunk/hec-token","count": 2},{"name": "modules/aws/lambda/logs_streaming_splunk","count": 3}],"prod": [{"name": "modules/dynatrace","count": 4},{"name": "modules/splunk/hec-token","count": 1},{"name": "modules/aws/lambda/logs_streaming_splunk","count": 1}]},{"repo": "SRE-MAC-PL-APPLICATION","preprod": [{"name": "modules/splunk/hec-token","count": 1},{"name": "modules/aws/lambda/logs_streaming_splunk","count": 3}],"prod": [{"name": "modules/splunk/hec-token","count": 1},{"name": "modules/aws/lambda/logs_streaming_splunk","count": 2}]},{"repo": "SRE-MAC-TPS-APPLICATION","preprod": [{"name": "modules/aws/lambda/logs_streaming_splunk","count": 1}],"prod": [{"name": "modules/dynatrace/alerting_profiles","count": 1},{"name": "modules/dynatrace/notifications/splunk-on-call","count": 1},{"name": "modules/dynatrace/calculated_service_metric","count": 1},{"name": "modules/dynatrace/anomalies/custom/metric_id","count": 1},{"name": "modules/dynatrace","count": 9}]}]},{"date": "2022-09-12","entries": [{"repo": "SRE-MAC-PDM-TEAM","prod": [{"name": "modules/dynatrace","count": 4}]},{"repo": "SRE-MAC-IBO-BONUS-PAYMENTS-REPO","prod": [{"name": "modules/dynatrace/monitors/http-monitors/basic","count": 2}]},{"repo": "SRE-MAC-ANAPostPurchase","prod": [{"name": "modules/dynatrace","count": 3}]},{"repo": "SRE-MAC-ANA-SubscriptionsRewards","preprod": [{"name": "modules/splunk/hec-token","count": 3},{"name": "modules/aws/lambda/logs_streaming_splunk","count": 4}],"prod": [{"name": "modules/dynatrace/alerting_profiles","count": 1},{"name": "modules/dynatrace/monitors/http-monitors/basic","count": 1},{"name": "modules/dynatrace/notifications/splunk-on-call","count": 1},{"name": "modules/splunk/hec-token","count": 1},{"name": "modules/aws/lambda/logs_streaming_splunk","count": 1},{"name": "modules/dynatrace","count": 2}]},{"repo": "SRE-MAC-CSP-APPLICATION","preprod": [{"name": "modules/aws/lambda/logs_streaming_splunk","count": 4}]},{"repo": "SRE-MAC-IBOIP-REPO","prod": [{"name": "modules/dynatrace","count": 3}]},{"repo": "SRE-MAC-IBOLIFE-REPO","preprod": [{"name": "modules/dynatrace","count": 1},{"name": "modules/splunk/hec-token","count": 2},{"name": "modules/aws/lambda/logs_streaming_splunk","count": 2}],"prod": [{"name": "modules/dynatrace","count": 3},{"name": "modules/splunk/hec-token","count": 1},{"name": "modules/aws/lambda/logs_streaming_splunk","count": 1}]},{"repo": "SRE-MAC-PL-APPLICATION","preprod": [{"name": "modules/splunk/hec-token","count": 1},{"name": "modules/aws/lambda/logs_streaming_splunk","count": 2}],"prod": [{"name": "modules/splunk/hec-token","count": 1},{"name": "modules/aws/lambda/logs_streaming_splunk","count": 2}]},{"repo": "SRE-MAC-TPS-APPLICATION","preprod": [{"name": "modules/aws/lambda/logs_streaming_splunk","count": 1}],"prod": [{"name": "modules/dynatrace/alerting_profiles","count": 1},{"name": "modules/dynatrace/notifications/splunk-on-call","count": 1},{"name": "modules/dynatrace/calculated_service_metric","count": 1},{"name": "modules/dynatrace/anomalies/custom/metric_id","count": 1},{"name": "modules/dynatrace","count": 7}]}]},{"date": "2022-09-05","entries": [{"repo": "SRE-MAC-PDM-TEAM","prod": [{"name": "modules/dynatrace","count": 12}]},{"repo": "SRE-MAC-IBO-BONUS-PAYMENTS-REPO","prod": [{"name": "modules/dynatrace/monitors/http-monitors/basic","count": 1}]},{"repo": "SRE-MAC-ANAPostPurchase","prod": [{"name": "modules/dynatrace","count": 11}]},{"repo": "SRE-MAC-ANA-SubscriptionsRewards","preprod": [{"name": "modules/splunk/hec-token","count": 2},{"name": "modules/aws/lambda/logs_streaming_splunk","count": 5}],"prod": [{"name": "modules/dynatrace/alerting_profiles","count": 1},{"name": "modules/dynatrace/monitors/http-monitors/basic","count": 1},{"name": "modules/dynatrace/notifications/splunk-on-call","count": 1},{"name": "modules/splunk/hec-token","count": 1},{"name": "modules/aws/lambda/logs_streaming_splunk","count": 1},{"name": "modules/dynatrace","count": 1}]},{"repo": "SRE-MAC-CSP-APPLICATION","preprod": [{"name": "modules/aws/lambda/logs_streaming_splunk","count": 5}]},{"repo": "SRE-MAC-IBOIP-REPO","prod": [{"name": "modules/dynatrace","count": 3}]},{"repo": "SRE-MAC-IBOLIFE-REPO","preprod": [{"name": "modules/dynatrace","count": 1},{"name": "modules/splunk/hec-token","count": 1},{"name": "modules/aws/lambda/logs_streaming_splunk","count": 1}],"prod": [{"name": "modules/dynatrace","count": 2},{"name": "modules/splunk/hec-token","count": 1},{"name": "modules/aws/lambda/logs_streaming_splunk","count": 1}]},{"repo": "SRE-MAC-PL-APPLICATION","preprod": [{"name": "modules/splunk/hec-token","count": 1},{"name": "modules/aws/lambda/logs_streaming_splunk","count": 1}],"prod": [{"name": "modules/splunk/hec-token","count": 1},{"name": "modules/aws/lambda/logs_streaming_splunk","count": 1}]},{"repo": "SRE-MAC-TPS-APPLICATION","preprod": [{"name": "modules/aws/lambda/logs_streaming_splunk","count": 1}],"prod": [{"name": "modules/dynatrace/alerting_profiles","count": 1},{"name": "modules/dynatrace/notifications/splunk-on-call","count": 1},{"name": "modules/dynatrace/calculated_service_metric","count": 1},{"name": "modules/dynatrace/anomalies/custom/metric_id","count": 1},{"name": "modules/dynatrace","count": 2}]}]}],"metadata": {"name": "","readCountRemaining": 98,"timeToExpire": 86389,"createdAt": "2022-09-27T07:56:47.003Z"}}

预期输出:

{
  "2022-09-22": [
    {"name": "modules/dynatrace", "count": 59},
    {"name": "modules/dynatrace/monitors/http-monitors/basic", "count": 4},
    {"name": "modules/dynatrace/alerting_profiles", "count": 2},
    {"name": "modules/dynatrace/notifications/splunk-on-call", "count": 2},
    {"name": "modules/splunk/hec-token", "count": 14},
    {"name": "modules/aws/lambda/logs_streaming_splunk", "count": 29},
    {"name": "modules/dynatrace/calculated_service_metric", "count": 1},
    {"name": "modules/dynatrace/anomalies/custom/metric_id", "count": 1}
  ],
  "2022-09-19": [
    {"name": "modules/dynatrace", "count": 47},
    {"name": "modules/dynatrace/monitors/http-monitors/basic", "count": 4},
    {"name": "modules/dynatrace/alerting_profiles", "count": 2},
    {"name": "modules/dynatrace/notifications/splunk-on-call", "count": 2},
    {"name": "modules/splunk/hec-token", "count": 11},
    {"name": "modules/aws/lambda/logs_streaming_splunk", "count": 20},
    {"name": "modules/dynatrace/calculated_service_metric", "count": 1},
    {"name": "modules/dynatrace/anomalies/custom/metric_id", "count": 1}
  ],
  "2022-09-12": [
    {"name": "modules/dynatrace", "count": 22},
    {"name": "modules/dynatrace/monitors/http-monitors/basic", "count": 3},
    {"name": "modules/dynatrace/alerting_profiles", "count": 2},
    {"name": "modules/dynatrace/notifications/splunk-on-call", "count": 2},
    {"name": "modules/splunk/hec-token", "count": 9},
    {"name": "modules/aws/lambda/logs_streaming_splunk", "count": 16},
    {"name": "modules/dynatrace/calculated_service_metric", "count": 1},
    {"name": "modules/dynatrace/anomalies/custom/metric_id", "count": 1}
  ],
  "2022-09-05": [
    {"name": "modules/dynatrace", "count": 31},
    {"name": "modules/dynatrace/monitors/http-monitors/basic", "count": 2},
    {"name": "modules/dynatrace/alerting_profiles", "count": 2},
    {"name": "modules/dynatrace/notifications/splunk-on-call", "count": 2},
    {"name": "modules/splunk/hec-token", "count": 6},
    {"name": "modules/aws/lambda/logs_streaming_splunk", "count": 16},
    {"name": "modules/dynatrace/calculated_service_metric", "count": 1},
    {"name": "modules/dynatrace/anomalies/custom/metric_id", "count": 1}
  ]
}
解决方案

用以下JSONATA表达式即可实现需求:

$aggregate(record, function($item) {
  $item.date: $aggregate(
    $merge($item.entries.(prod & preprod)),
    function($mod) {
      {"name": $mod.name, "count": $sum($mod.count)}
    },
    "name"
  )
})

表达式解释

  1. 外层$aggregate:按record数组中的date字段分组,处理每个日期对应的条目。
  2. 提取所有模块:`$
相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 11:36:14