我们正在使用AWS DynamoDB来存储应用程序日志。来自我们系统中多个组件的日志将被存储在这里。我们期待着大量的写入,只有最少的读取次数。DynamoDB表结构
我们用于写入DynamoDB的客户端为分区键生成UUID,但是使用它会使实际搜索变得困难。
最突出的搜索情况是,
- 搜索基于构件/日期/时间
- 搜索基础上的JobId /文件名
- 搜索基于日志级别
从到目前为止,我所读到的使用分区密钥的UUID并不适合我们的情况。我目前正在考虑使用/作为我们的分区键和ISO 8601时间戳作为我们的排序键。这听起来合理/广泛使用的设置这样的用例吗?
如果不善意建议可以使用的替代品。
感谢@Prague提供的信息,我们正在寻找ES来存储我们的日志,但是这给出了我们选择的方法的一些想法。 – M22an
请注意,如果您使用UUID作为hashkey,那么使用timestamp作为排序键是毫无意义的,因为您无法通过DynamoDB中的sortkey进行搜索:您还需要提供散列键。相反,尝试使用全局二级索引来查询需求,因为它们更加灵活:散列键不必是唯一的,并且可以是稀疏的。 –