根据数据类型将AWS Kinesis中的数据放入不同的存储桶中

问题描述 投票:0回答:1

我按照this教程中描述的设置来配置从Aurora到redshift的数据管道。我有一个完美的工作表,例如Sales。

但是现在我想扩展一些内容,以便我可以从其他表中引入数据,例如产品和类别使得每种数据类型最终都会在Redshift中的单独表中结束,即Redshift除了Categories表之外还应该有一个Sales表和一个Product表。

如何使用Kinesis / S3 / Redshift设置执行此操作?

Redshift只能从一个S3位置引入数据。同样,Kinesis可以配置为仅将数据放入一个S3位置。我正试图找到一种方法从基于数据类型的kinesis获取我的记录,以便它们进入不同的S3位置,因此我可以将它们拉入单独的Redshift表中。

显而易见的解决方案是拥有多个流,每个流对应一个数据类型,但我认为这将是昂贵的。有什么选择可以做到这一点?

amazon-web-services amazon-s3 amazon-redshift amazon-kinesis amazon-kinesis-firehose
1个回答
1
投票

好消息。在Kinesis Data Firehose中,您需要支付管道正在处理的only for the amount of data以及数据转换(如果适用)。所以你可以有两个独立的流,它不应该比单个流更昂贵。

关于Redshift Spectrum,您实际上可以根据需要从多个位置获取数据。如果你查看你链接的帖子,就会有这样的创建表语句

    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群集查询所有表。

© www.soinside.com 2019 - 2024. All rights reserved.