代码之家  ›  专栏  ›  技术社区  ›  Ilijanovic

Aws放大显示的数据比发电机数据库中的数据要少得多

  •  0
  • Ilijanovic  · 技术社区  · 2 年前

    我有以下问题。在我的放大工作室里,我看到了1万个数据点

    enter image description here

    但如果我仔细查看相应的数据库,我会看到:

    enter image description here

    我有超过20万的数据,但它显示放大工作室内只有10万。为什么会这样?

    当我在前端尝试此代码时:

    let p = await DataStore.query(Datapoint, Predicates.ALL, {
            limit: 1000000000,
          })
    console.log(p.length)
    

    我明白 10000 返回和放大演播室里的数字一样。

    其他问题:存储数十个数据点的最佳方式是什么?我需要它来进行图表可视化。

    0 回复  |  直到 2 年前
        1
  •  0
  •   Nadav Har'El    2 年前

    DynamoDB Query Scan 请求不会返回一个庞大列表中的所有项目。相反,它只返回一个结果“页面”,其大小默认为1MB。像amplifier这样的客户库可以称之为 查询 扫描 重复请求将所有页面收集到内存中的一个巨大数组中,但一旦它变得很大,这就没有多大意义了。因此,应用程序通常希望对所有结果进行迭代,而不是将它们收集到内存中的一个巨大数组中。

    因此,大多数DynamoDB API提供 标页码 查询和扫描操作的接口-它为您提供了一页结果,以及获取下一页的方法。或者,一些API可以为结果提供迭代器,并在内部进行分页。我不熟悉Amplify,所以我不知道推荐哪种API。但是,作为一个大数组返回所有结果的API肯定有其限制,显然您已经找到了它们。

    推荐文章