数据库 – DynamoDB:如何在一个月内分配工作量?

前端之家收集整理的这篇文章主要介绍了数据库 – DynamoDB:如何在一个月内分配工作量?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
TL; DR

我有一个表,每月有大约200万个WRITE,0个读数.每月的第一天,我需要阅读上个月写的所有行,并生成CSV统计信息.

在这种情况下如何使用DynamoDB?如何选择读取吞吐量?

详细描述

我有一个应用程序记录客户端请求.它有大约200个客户端.客户需要在一个月的每一个第一天收到所有请求的CSV.他们还需要收费,为此,我们需要根据请求计算一些统计信息,并按请求类型进行分组.

所以在月底,客户端会收到如下的报告:

我已经来了两个解决方案,但我并不相信任何一个解决方案.

第一个解决方案:好的,每个月的最后一天我增加了读取吞吐量,然后我运行一个地图缩小工作.当作业完成后,我将容量减小到原来的值.

缺点:没有完全自动化,当工作开始时,DynamoDB的容量不可用.

第二个解决方案:我可以以CSV或我可以在S3上存储部分CSV,每月的第一天可以加入这些文件生成一个新的.统计数据将更容易生成,只是从每日/每小时统计得出的一些计算结果.

缺点:我觉得我把一些简单的东西变成一些复杂的东西.

你有更好的解决方案吗?如果没有,你会选择什么解决方案?为什么?

解决方法

自己以前在一个类似的地方,我用过,现在推荐给你处理原始数据:

>经常可以合理地(从每天开始)
>到尽可能接近所需报告输出的格式
>尽可能多的计算/ cpu密集型工作

留下尽可能少的报告时间.

这种方法是完全可扩展的 – 增量频率可以是:

>根据需要减少到一个小窗口
>如果需要并行

它也可以重新运行过去几个月的需求报告,因为报告生成时间应该相当小.

在我的例子中,我每小时将非规范化,预处理(财务计算)数据发送到数据仓库,然后报告只涉及到一个非常基本的(快速)SQL查询.

这有额外的好处是将生产数据库服务器上的负载分散到许多小叮咬,而不是每周在发票时间(每周生产30000个发票)将其跪下一次.

原文链接:https://www.f2er.com/mssql/81718.html

猜你在找的MsSQL相关文章