使用 AWS 处理 .csv 数据的最佳方式
Best way to process .csv data using AWS
所以每天我都会(自动)上传很多 .csv 文件到我的 s3 存储桶中,我的下一步是 join/merge/concat/etc 这个 tables 进入更最终的状态以便上传它红移。
为了做到这一点,您推荐我使用哪种服务?我分析了不同的方式:
s3 -> EC2 -> 使用 Python 处理数据 -> Redshift(我认为这不是很有效)
s3 -> 管道 -> EMR -> 管道 -> Redshift(我对 EMR 的了解为 0)
我可以处理它已经在红移吗?还有别的办法吗?通常我会产生 1400 万行数据,所以它需要有效率。
数据的操作只是合并或连接 tables。示例:
Table 1: 键, d1, d2, d3
Table 2: 键, d4, d5
预期 table 红移:键、d1、d2、d3、d4、d5
在另一种情况下,只是将一个放在另一个下面。
Redshift 可以轻松处理这个问题,并且可能比您提到的方法快 100 倍。
使用 COPY
将 CSV 加载到单独的分段中,然后将它们插入最终的 table(并在需要时截断分段 table)。
INSERT INTO final_table
SELECT a.key, a.d1, a.d2, a.d3, b.d4, b.d5
FROM table_1 AS a
LEFT JOIN table_2 AS b
USING (key);
所以每天我都会(自动)上传很多 .csv 文件到我的 s3 存储桶中,我的下一步是 join/merge/concat/etc 这个 tables 进入更最终的状态以便上传它红移。 为了做到这一点,您推荐我使用哪种服务?我分析了不同的方式:
s3 -> EC2 -> 使用 Python 处理数据 -> Redshift(我认为这不是很有效) s3 -> 管道 -> EMR -> 管道 -> Redshift(我对 EMR 的了解为 0) 我可以处理它已经在红移吗?还有别的办法吗?通常我会产生 1400 万行数据,所以它需要有效率。
数据的操作只是合并或连接 tables。示例:
Table 1: 键, d1, d2, d3
Table 2: 键, d4, d5
预期 table 红移:键、d1、d2、d3、d4、d5
在另一种情况下,只是将一个放在另一个下面。
Redshift 可以轻松处理这个问题,并且可能比您提到的方法快 100 倍。
使用 COPY
将 CSV 加载到单独的分段中,然后将它们插入最终的 table(并在需要时截断分段 table)。
INSERT INTO final_table
SELECT a.key, a.d1, a.d2, a.d3, b.d4, b.d5
FROM table_1 AS a
LEFT JOIN table_2 AS b
USING (key);