【问题标题】:Redshift data summarizationRedshift 数据汇总
【发布时间】:2017-01-19 11:32:54
【问题描述】:
我在 Amazon Redshift 中有 3 个表,其中包含有关用户使用应用程序的信息(基本上是屏幕点击、操作系统版本、应用程序版本等)。
我希望创建一个汇总表,用于存储每个用户的个人资料,其中包含“上次登录时间”、最近使用的应用程序版本、上次访问的屏幕等详细信息。
我对列式数据库不太熟悉,以前只在 RDBMS 上工作过。我正在考虑编写一个 cron 作业,该作业将对过去一天的数据运行三个表的联接查询,并将结果合并到配置文件表中。我不知道这在 Redshift 中是否可行。
【问题讨论】:
标签:
database
join
amazon-redshift
【解决方案1】:
Amazon Redshift 是一个完全兼容的 SQL 数据库。它是一个列式数据库这一事实不应该影响您使用数据库的方式——它只是意味着它可以在某些类型的操作中更快、更高效(例如扫描数百万甚至数十亿行的表)。
您运行常规数据库查询集的想法会很好。但是,为了提高效率,查询应该只更新自上次更新以来有活动的用户的信息。也就是说,不要尝试更新所有用户的信息,因为大多数用户信息不会每天都在变化。
查询基本上会说“为自我们上次更新以来访问系统的任何用户选择最新的点击、操作系统、版本”,而不是“为所有用户选择最新的点击、操作系统、版本” .
另外,请考虑您是否真的需要这样的表存在。也许您可以在寻找有关特定用户的信息时即时检索此信息,而不是每天预先计算这些值。当然,这取决于您希望多久检索一次此类信息。