我目前正在使用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表增长为大量数据并减慢查询速度的问题吗?
答案 0 :(得分:0)
您可以创建一个delivery stream,使您可以引入Lambda函数在数据到达目的地之前对数据执行转换/过滤。
Here is an article that discuss how to set this up.它使用S3作为目标,但是您应该能够将Redshift作为目标使用相同的方法。