背景
我正在创建一个概念DB,它将包含关于我的团队使用的不同分析器的数据(分析器名称、位置、上次分析器发送数据的时间等等)。由于我使用的是实时数据,所以我需要有一种方法来快速更新db概念中所有分析器的数据。
我目前正在使用python脚本获取分析器数据,并将其上传到概念DB中。目前,我读取每一行,获取用于更新该行数据的ID --但这太慢了:更新100行需要超过30秒。
问题
我想知道是否有一种方法可以快速更新多行的数据(可能是在一个大的大容量操作中)。目标可能是每秒100行更新(而不是30秒)。
发布于 2022-09-05 16:22:36
这里有很多事情可以做--遗憾的是,所有这些都不会大大改善更新。目前无法更新多行,也无法更精确地更新pages。我不知道“读取每一行”指的是什么,但您可以同时检索一个database的多个database--最多可达100。如果您正在逐个检索它们,则可能会更新。
其次,我想知道分析器改变的频率,如果是被Python脚本修改,还是在概念上更新?如果这种情况不经常发生,那么您可能可以在每次更新时缓存page_ids并检索ids。遗憾的是,last_edited_time of database没有反映出它的子程序的任何添加或删除,所以简单地检查它不是一个选项。
第三种也是最后一种提高性能的方法是多线程.您可以同时发送多个请求,因为请求的数量通常是瓶颈。
我知道这些都不会真正帮助你,但遗憾的是,没有有效的方法来更新多个页面。
发布于 2022-09-17 12:56:53
还存在每秒3次请求的速率限制,这是由概念强制执行的,以确保所有用户的公平性能。如果您发送更多请求,您将开始使用HTTP 429代码接收响应。您的集成应该以尊重此响应的方式编写,并应防止任何请求在指定的时间内按照概念开发人员API指南中的此页所指示的秒数发送。
https://stackoverflow.com/questions/73609002
复制相似问题