数据库 – DynamoDB:如何在一个月内分配工作量?
TL; DR
我有一个表,每月有大约200万个WRITE,0个读数.每月的第一天,我需要阅读上个月写的所有行,并生成CSV统计信息. 在这种情况下如何使用DynamoDB?如何选择读取吞吐量? 详细描述 我有一个应用程序记录客户端请求.它有大约200个客户端.客户需要在一个月的每一个第一天收到所有请求的CSV.他们还需要收费,为此,我们需要根据请求计算一些统计信息,并按请求类型进行分组. 所以在月底,客户端会收到如下的报告: 我已经来了两个解决方案,但我并不相信任何一个解决方案. 第一个解决方案:好的,每个月的最后一天我增加了读取吞吐量,然后我运行一个地图缩小工作.当作业完成后,我将容量减小到原来的值. 缺点:没有完全自动化,当工作开始时,DynamoDB的容量不可用. 第二个解决方案:我可以以CSV或我可以在S3上存储部分CSV,每月的第一天可以加入这些文件并生成一个新的.统计数据将更容易生成,只是从每日/每小时统计得出的一些计算结果. 缺点:我觉得我把一些简单的东西变成一些复杂的东西. 你有更好的解决方案吗?如果没有,你会选择什么解决方案?为什么? 解决方法自己以前在一个类似的地方,我用过,现在推荐给你处理原始数据:>经常可以合理地(从每天开始) 留下尽可能少的报告时间. 这种方法是完全可扩展的 – 增量频率可以是: >根据需要减少到一个小窗口 它也可以重新运行过去几个月的需求报告,因为报告生成时间应该相当小. 在我的例子中,我每小时将非规范化,预处理(财务计算)数据发送到数据仓库,然后报告只涉及到一个非常基本的(快速)SQL查询. 这有额外的好处是将生产数据库服务器上的负载分散到许多小叮咬,而不是每周在发票时间(每周生产30000个发票)将其跪下一次. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- SQL Server 2014聚集列存储索引
- SQL 判断给定日期值(或时间段)所在星期的星期一和星期天的日
- 用户 'IIS APPPOOL\DefaultAppPool' 登录失败
- SqlServer Update更新语句因where条件不正确 造成更新全表的
- SQL Server 通用分页存储过程
- sqlserver中group by 与 concat 的使用
- Cassandra用于无模式数据库,每天有数百万个订单表和数百万个
- sqlserver insert--缓存 爬坑
- SqlDataReader类使用(超好的文章)
- sql-server – 如何删除SQL Server 2008中的区分大小写检查