amazon-web-services - Firehose - 仅从流中复制特定的特定数据
问题描述
我目前正在使用 Amazon Kinesis Firehose 将分析数据转储到 Redshift 数据库表中。随着时间的推移,这个表变得非常大,查询变得越来越慢。
为了加快速度,我想设置多个 Firehose,并根据 json 文档的内容区分 COPY 命令。
例如,如果我有两个如下所示的 json 文档:
tableName: 'abc',
data: 'some string of data'
}
{
tableName: 'xyz',
data: 'some string of data'
}
我会设置两个消防软管。Firehose abc 将在 table 中运行 COPY 命令abc
,Firehose xyz 将在 table 中运行 COPY 命令xyz
。tableName
但是,他们应该根据json 中的指定忽略彼此的数据。例如,如果xyz
正在复制数据,并且 json 有tableName: 'abc'
,它应该忽略该文档。
我的问题是,这可能吗,或者有没有人有经验解决 Redshift 表增长到大量数据并减慢查询的问题?
解决方案
您可以创建一个传输流,它允许您引入一个 Lambda 函数,以便在数据到达目的地之前对数据执行转换/过滤。
这是一篇讨论如何设置的文章。 它使用 S3 作为目标,但您应该能够使用与 Redshift 作为目标的相同方法。
推荐阅读
- git - 如何获取特定版本的 Chromium 源代码?
- swift - 如何在swift中进行函数回调
- node.js - 如何解决 Google App Engine 上 VueJs / Express / Mongo 应用程序的 API 响应的“启用 Javascript”错误
- python - 我可以从 Django views.py 中的另一个函数调用一个函数吗?
- python - 为什么要将 RNN/LSTM 的训练和测试数据用于股票预测?
- laravel - 表会话 laravel 中的 user_id 用于多守卫
- swift - 将旋转的 NSImageView 作为子视图的 NSView 保存到 pdf 文件的问题 - NSImageView 未旋转
- python - (堆叠)带有单独标记观察的直方图
- java - 从异步改造调用响应填充列表的问题
- android - 当我有内容 uri 时,如何获取有关文件的完整详细信息?