我已经按照this教程中描述的设置来配置从Aurora到Redshift的数据管道。我已经在一张桌子上完美地工作了,例如销售。
但是现在我想扩展内容,以便可以从其他表中引入数据,例如产品和类别,以使每种数据类型最终都可以在Redshift中的一个单独的表中找到,即Redshift除了类别表之外,还应该具有一个Sales表和一个Product表。
我该如何使用Kinesis / S3 / Redshift设置?
Redshift仅能从一个S3位置引入数据。同样,可以将Kinesis配置为仅将数据放入一个S3位置。 我正在尝试找到一种基于数据类型从运动学中获取记录的方法,以便将它们放入不同的S3位置,以便将它们拉到单独的Redshift表中。
显而易见的解决方案是每个数据流都对应一个数据类型,但我认为这会很昂贵。有什么选项可以做到这一点?
答案 0 :(得分:1)
好消息。在Kinesis Data Firehose中,您要only for the amount of data支付管道正在处理的费用,以及数据转换(如果适用)的费用。因此,您可以有两个单独的流,并且它不应该比单个流贵。
关于Redshift Spectrum,实际上您可以根据需要从任意多个位置带来数据。如果您查看所链接的帖子,则会有一个像这样的create table语句
CREATE EXTERNAL TABLE IF NOT EXISTS spectrum_schema.ecommerce_sales(
ItemID int,
Category varchar,
Price DOUBLE PRECISION,
Quantity int,
OrderDate TIMESTAMP,
DestinationState varchar,
ShippingType varchar,
Referral varchar)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
LOCATION 's3://{BUCKET_NAME}/CDC/'
在该语句上,最后一行引用了要包括在表中的S3文件的位置。您可以配置多个流,每个表/ S3位置一个,但是您可以使用单个Redshift集群查询所有表。