如何在 dynamoDB、嵌套字典或多个项目中构建数据?

抱怨

我正在从我们的自动化测试生成的 XML 中聚合,我在 lambda 函数中使用 python 来解析 XML 并创建一个 dynamoDB 项目。

最后,我需要每次测试的日期和测试持续时间,并将计算一些基本统计数据,例如均值、标准差等。

目前,我使用的是非常扁平的结构:

{
  "testName": string
  "result": "SUCCESS",
  "testEndedAt": timecode,
  "testStartedAt": timecode,
  "testRunID": string,
  "timeAdded": time,
  "totalTime": number
}

每次测试运行都会生成一个具有相同测试名称的新项目。

我使用 testName 和 testrunID 作为主键和排序键。

我有一种感觉,我做某事的方式效率低下。我正在考虑转向这样的数据结构:

{
    testname:string,
    tests:[
            {
                timeAdded:timeStamp
                testRunId:string,
                testStartedAt:number,
                testEndedAt:number,
                totalTime:number
            }
            {
                timeAdded:timeStamp
                testRunId:string,
                m__testStartedAt:number,
                m__testEndedAt:number,
                totalTime:number
            }
    ],
    stats:{
        mean:number
        stDev:number
        maxExpectedTime:number
    }
}

我看到了这种方法的几个优点。

我将计算出的统计信息存储在表中我可以使用测试名称和唯一键我不必扫描整个数据库来计算统计信息等

对此几乎没有经验,我不知道如何最好地解决这个问题,更不用说回答了。

谢谢您的帮助!

萨桑克·穆卡马拉

您可以继续使用原始结构:

{
  "testName": string
  "result": "SUCCESS",
  "testEndedAt": timecode,
  "testStartedAt": timecode,
  "testRunID": string,
  "timeAdded": time,
  "totalTime": number
}

通过这种方式,您可以轻松查询(而不是扫描)特定 testName 的结果。您可以对结果数据进行聚合操作,并将其保存回具有不同 GSI 的同一个表中。(分区键为 testName)。

{
  "testName": string
  "mean": "number",
  "stDev": number,
  "maxExpectedTime": number
}

如果您希望这些聚合统计数据实时启用并将此表的流发送到 lambda 函数。根据传入的新数据增加这些计数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 QT 项目中构建 openPose?

VSTS:如何在Visual Studio构建步骤为多个项目中处理FileSystem WebPublishMethod

如何在列表中构建字典数据?

如何在字典中显示多个项目?

如何在Android Gradle项目中更改项目构建目标

如何构建嵌套字典?

如何在一个构建命令中在angular 7项目中构建多个应用程序?

如何在laravel项目中使用多个数据库连接?

如何在My Laravel Vue项目中获得多个关系数据

如何在Autotools项目中链接刚刚构建的库

如何在Xcode项目中打印“构建设置”列表?

如何在Gradle项目中使用GWT快照构建?

如何在NodeJs项目中添加构建脚本和测试

如何在 Django 项目中构建模板库?

如何在 iOS 项目中构建和使用 C 库?

如何在多个项目中共享单个库源

如何在ListView的每个项目中存储多个值?

如何在Flutter项目中修复多个SDK路径警告

如何在Android项目中选择多个图像/视频?

如何在具有嵌套类的字典中查找项目?

如何在Python中从嵌套字典打印多个值

如何在python的嵌套字典中显示多个值?

如何在asp.net核心项目中使用Ajax填充下拉列表树嵌套数据?

如何在整个项目中使用Angular工厂数据

如何在适当的项目中的多个项目中加载资源路径?

如何在C#中处理嵌套字典中的数据

如何在Swift中操作嵌套字典,例如JSON数据?

如何在Ansible中从字典中提取深度嵌套的数据

如何在pyspark数据帧中创建嵌套字典