Amazon dynamodb 用于引用数据的DynamoDB模式
我想试用DynamoDB并将其用于access.logs,由nginx生成,稍后将用于报告仪表板,其中包括IP、引用url、引用域、浏览器等 初始设置将是运行nginx和CloudWatch的EC2实例,它们将使用nginx实例的access.log 其思想是CloudWatch条目将触发lambda函数,该函数将解析日志并将其放入DynamoDB 除了我所读到的以外,我对DynamoDB不太熟悉,但下面是我如何考虑为其创建模式: ID将是nginx命中的url,这是我们将要报告的内容 参考域(表)Amazon dynamodb 用于引用数据的DynamoDB模式,amazon-dynamodb,elastic-map-reduce,Amazon Dynamodb,Elastic Map Reduce,我想试用DynamoDB并将其用于access.logs,由nginx生成,稍后将用于报告仪表板,其中包括IP、引用url、引用域、浏览器等 初始设置将是运行nginx和CloudWatch的EC2实例,它们将使用nginx实例的access.log 其思想是CloudWatch条目将触发lambda函数,该函数将解析日志并将其放入DynamoDB 除了我所读到的以外,我对DynamoDB不太熟悉,但下面是我如何考虑为其创建模式: ID将是nginx命中的url,这是我们将要报告的内容 参考域(
- 身份证(钥匙)
- 域名
- 已创建(范围)
- 身份证(钥匙)
- 网址
- 已创建(范围)
- 身份证(钥匙)
- 浏览器
- 已创建(范围)
对于这种类型的数据,Dynamo是否有更好的模式可供使用,或者是否有其他需要考虑的因素?谢谢主键看起来很可靠,您的体系结构可以很好地工作和扩展 如果我正确理解nginx/您的用例,我不确定您为什么要基于属性拆分表 您可以有一张桌子: 链接(表)
- ID(主哈希键)
- 已创建(主范围键)
- referralUrl(S属性)
- 引用域(S属性)
- referralBrowser(S属性)
由于DynamoDB是无模式的,您可以保留其中的一些。我们在这里讨论的URL有多少?(对于散列主键部分)数百万,对于nginxI应该添加的图像,我不一定要将实际URL作为ID,但可能会创建URL(md5)的散列,相当于nginx中的一个条目?每个请求都将在一个“行”中表示?创建的是一个日期,它仅表示图像的服务时间。基本上,这是将nginx access.log映射到可以查询报告的dynamo。基于此设计示例,访问日志中的每个变量(用户代理、ip、引用域等)都将是此处一行中的一个值。