我正在做一些事情,想要存储大量的“审计记录”风格的数据。例如“用户创建了一件事”、“用户删除了一件事”、“用户有27件事”。我们希望将其存储在云中(AWS或可能的Azure)。理想情况下,我希望使用云原生服务,这样我就不必担心扩展服务器实例、分片等问题。
这种类型的数据主要是连续的写入流,并且经常是一个大型的“报告”风格的查询,我们在给定的日期范围内汇总或计算大块数据。我们几乎永远不需要查询单独的记录。
“亚马逊网络服务中的云数据库”的首选似乎是DynamoDB,然而定价模型和我读过的文章似乎暗示它更多地是为事务模型而设计的。写操作的开销比读操作高一个数量级,这与我的用例正好相反。
那些拥有深厚的云知识的人-请您:您会使用什么服务来存储此类数据并运行报告?在这里,DynamoDB是一个糟糕的选择吗?
发布于 2020-08-16 16:59:26
DynamoDB可能不是一个好的选择。它的主要卖点是线性扩展和高水平的弹性。它有一个相当高的交易价格标签。如果你正在写大量的数据,它很快就会变得很昂贵。
您提到的“连续写入”和“很少查询”,立即让我认为S3和Athena可能是这里的最佳选择。
S3是众所周知的亚马逊网络服务的“blob存储”,在那里保存数据非常便宜。雅典娜是一种可以利用S3的无服务器查询技术。由于没有服务器,您只需为运行的查询付费,这在这种情况下听起来很重要,因为您很少查询。
发布于 2020-08-21 17:31:57
在Azure中,你可以在事件发生时将事件流式传输到事件中心,然后创建一个简单的逻辑应用程序来将事件移动到日志分析工作区,以便安全保存以及根据您的要求进行任何查询和报告。
有几种语言的事件中心客户端库:https://docs.microsoft.com/en-us/azure/event-hubs/sdks
下面是几个简单的例子来将数据转移到Log Analytics --一个简单的搜索就会给你很多的例子,所以我不会在这里链接到任何细节。
Log Analytics的最大保留限制是730天(2年) (https://docs.microsoft.com/en-gb/archive/blogs/canberrapfe/change-oms-log-analytics-retention-period-in-the-azure-portal),所以如果您需要将日志保留更长时间,您需要尝试将其放入数据湖中,而不是Log Analytics。与Log Analytics相比,这对我来说有点“沉重”,但这真的取决于你的保留要求。
https://stackoverflow.com/questions/63432484
复制相似问题