Firehose-仅复制流中的特定特定数据

时间:2019-06-01 04:50:57

标签: amazon-web-services amazon-redshift amazon-kinesis amazon-kinesis-firehose

我目前正在使用Amazon Kinesis Firehose将分析数据转储到Redshift数据库表中。随着时间的流逝,该表已经变得非常大,并且查询的速度越来越慢。

为了加快速度,我想设置多个Firehoses,并根据json文档的内容区分COPY命令。

例如,如果我有两个如下所示的json文档:

  tableName: 'abc',
  data: 'some string of data'
}

{
  tableName: 'xyz',
  data: 'some string of data'
}

我会设置两个Firehoses。 Firehose abc将在表abc中运行COPY命令,而Firehose xyz将在表xyz中运行COPY命令。但是,他们应该基于json中指定的tableName忽略彼此的数据。例如,如果xyz正在复制数据,而json具有tableName: 'abc',则它应忽略该文档。

我的问题是,这可能吗?或者有人有经验解决Redshift表增长为大量数据并减慢查询速度的问题吗?

1 个答案:

答案 0 :(得分:0)

您可以创建一个delivery stream,使您可以引入Lambda函数在数据到达目的地之前对数据执行转换/过滤。

Here is an article that discuss how to set this up.它使用S3作为目标,但是您应该能够将Redshift作为目标使用相同的方法。