我应该将不同类型的用户活动数据(如登录、活动、支付)存储在亚马逊网络服务S3中的相同前缀/路径下,还是对每类事件使用不同的前缀?
例如,
loginEvents/
paymentEvents/
interactionEvents/
我正在使用Firehose流式传输事件并保存到s3中。在那之后,我会使用雅典娜来查询。雅典娜可以使用任何一种情况(一个前缀或多个前缀),但哪种方法更好?
将所有内容保存在一个前缀下将减少查询时间,因为在雅典娜查询期间不需要表连接?
在不同的前缀下保存数据似乎可以更系统地组织数据?
发布于 2021-04-23 20:20:10
这取决于将要运行的查询。如果您最常在where子句中包含用户活动,那么如果您将事件写在不同的位置并将其用作分区,那么您将获得更好的性能和更低的查询成本。另一方面,有很多分区会减慢你的查询速度。
https://stackoverflow.com/questions/67222103
复制相似问题