根据S3中的记录筛选Redshift中的记录



我是AWS的新手。我正在为下面的用例设计一个解决方案。

我在S3中有一个关系数据库的副本,一个bucket中有几个文件,每个文件代表一个表,列是管道分隔的。文件的总大小约为2 GB。我还有几十亿条记录分布在红移的多个表中。

我需要根据S3中可用的记录(通过连接几个文件(从红移中过滤记录(通过加入几个表(,并将其写入DB/S3。

例如,假设S3有一个包含产品详细信息的产品文件和一个包含标准详细信息的标准文件,当标准匹配时,产品应该作为建议显示给客户。标准和产品表使用产品id链接。例如,当客户已经购买ipad(标准(时,显示ipad配件(产品(作为建议

Redshift有一个包含客户列表的Customer表和一个包含他们购买的产品列表的Product表。产品和客户都使用customerid进行链接。

对于S3中基于标准提供的每一种产品,我需要根据客户已经购买的产品找到应该向其推荐产品的客户列表。

有人能帮助我们了解如何在AWS中实现这一目标吗?

查看Redshift Spectrum,它将允许您定义S3中的外部表。外部表将允许您仅从S3中提取符合您的条件的记录,然后将这些信息加入到您的客户表中。

这对Spectrum来说应该很好,因为你的S3数据不是很大,而且在结果传递给Redshift之前,你正在根据你的标准进行缩减。当您的S3数据通过简单的WHERE子句进行精简并通过GROUP by进行缩减时,Spectrum是最强大的。这使结果的网络流量在传递回RS集群时保持较小。

最新更新