引用数据的 DynamoDB 架构
DynamoDB schema for referral data
我想试用 DynamoDB 并将其用于由 nginx 生成的 access.logs,稍后将用于报告仪表板,其中包括 IP、推荐 url、推荐域名、浏览器等
初始设置将是 EC2 实例 运行 nginx 和 CloudWatch,它们将为 nginx 实例消耗 access.logs。
这个想法是 CloudWatch 条目将触发 lambda 函数,该函数将解析日志并将其放入 DynamoDB。
除了我读过的内容外,我对 DynamoDB 不太熟悉,但我是这样想的:
ID 将是 nginx 命中的 url,这就是我们要报告的内容。
引用域 (table)
- ID(密钥)
- 域 (S)
- 已创建(范围)
推荐URL (table)
- ID(密钥)
- url (S)
- 已创建(范围)
ReferralBrowser (table)
- ID(密钥)
- 浏览器 (S)
- 已创建(范围)
对于正在报告的其他项目,例如 IP 或 GEO 信息(ReferralCity、ReferralCountry 等),这将继续。
对于 Dynamo 中的此类数据,这似乎是一个很好的架构设计?最终,仪表板将针对具有日期范围操作的特定 ID,它将显示 URL、浏览器等的总计(聚合)列表,并实际列出数据。此外,其中一份报告可能列出了带有计数的独特项目。例如,对于 ReferralDomain "Facebook",特定 ID 在日期范围内的计数可能为 550。这可能需要在 EMR 中完成?
对于此类数据,是否有更好的模式可供使用或 Dynamo 应考虑的任何其他注意事项?谢谢
主键看起来很可靠,您的体系结构可以很好地工作和扩展。
如果我正确理解 nginx/你的用例 - 我不确定你为什么要根据属性拆分你的 tables。
你可以拥有一个table:
链接 (table)
- ID(主哈希键)
- 已创建(主要范围键)
- referralUrl(S 属性)
- referralDomain(S 属性)
- referralBrowser(S 属性)
- ...
并且由于 DynamoDB 是无模式的,您可以保留其中的一些。
我想试用 DynamoDB 并将其用于由 nginx 生成的 access.logs,稍后将用于报告仪表板,其中包括 IP、推荐 url、推荐域名、浏览器等
初始设置将是 EC2 实例 运行 nginx 和 CloudWatch,它们将为 nginx 实例消耗 access.logs。
这个想法是 CloudWatch 条目将触发 lambda 函数,该函数将解析日志并将其放入 DynamoDB。
除了我读过的内容外,我对 DynamoDB 不太熟悉,但我是这样想的:
ID 将是 nginx 命中的 url,这就是我们要报告的内容。
引用域 (table)
- ID(密钥)
- 域 (S)
- 已创建(范围)
推荐URL (table)
- ID(密钥)
- url (S)
- 已创建(范围)
ReferralBrowser (table)
- ID(密钥)
- 浏览器 (S)
- 已创建(范围)
对于正在报告的其他项目,例如 IP 或 GEO 信息(ReferralCity、ReferralCountry 等),这将继续。
对于 Dynamo 中的此类数据,这似乎是一个很好的架构设计?最终,仪表板将针对具有日期范围操作的特定 ID,它将显示 URL、浏览器等的总计(聚合)列表,并实际列出数据。此外,其中一份报告可能列出了带有计数的独特项目。例如,对于 ReferralDomain "Facebook",特定 ID 在日期范围内的计数可能为 550。这可能需要在 EMR 中完成?
对于此类数据,是否有更好的模式可供使用或 Dynamo 应考虑的任何其他注意事项?谢谢
主键看起来很可靠,您的体系结构可以很好地工作和扩展。
如果我正确理解 nginx/你的用例 - 我不确定你为什么要根据属性拆分你的 tables。
你可以拥有一个table:
链接 (table)
- ID(主哈希键)
- 已创建(主要范围键)
- referralUrl(S 属性)
- referralDomain(S 属性)
- referralBrowser(S 属性)
- ...
并且由于 DynamoDB 是无模式的,您可以保留其中的一些。