【问题标题】:Data Ingestion in Amazon RedshiftAmazon Redshift 中的数据提取
【发布时间】:2022-08-24 17:37:59
【问题描述】:
我有多个数据源,需要在 AWS 中构建和实施 DWH。对于我的一个非结构化数据源(来自不同 API 的数据),我面临一个挑战。我怎样才能将来自这个源的数据提取到 Amazon Redshift 中???我们可以先将其拉入 Amazon S3 存储桶,然后再将 S3 与 Amazon redshift 集成吗?什么是更好的方法?
标签:
amazon-web-services
amazon-s3
amazon-redshift
etl
data-warehouse
【解决方案1】:
是的,首先是 S3。您的 API 可以写入 S3 或/并且如果您愿意,可以使用 Kinesis 之类的服务(带或不带 firehose)来填充 S3。从那里开始,它只是在 Redshift 中工作。
【解决方案2】:
在不了解更多来源的情况下,是的,S3 可能是正确的方法 - 无论您需要几秒、几分钟或几小时的延迟,这都是一个重要的考虑因素。
如果延迟不是驱动问题,只需:
- 设置 S3 存储桶以使用初始源中的目标。
- 在 Redshift 数据库中创建表(将数据从 S3 加载到 Redshift 需要预先存在的目标表)。
- 使用COPY command 从 S3 加载到 Redshift。
如前所述,Kinesis 可能很有价值,尤其是在您使用实时数据流时(服务recently introduced support 用于跳过 S3 并直接流式传输到 Redshift)。
如果您不尝试分析实时流,S3 可能是更简单的方法。