【发布时间】:2021-08-07 06:21:14
【问题描述】:
需要一些关于我可以在 AWS 上用于以下情况的服务的建议。
一个存储桶每天接收大约 60 个 gzip 压缩的 CSV 文件。它们都是最大大小,即 5GB。 CSV 中的一行是一条订单信息,如下所示:
order_id, customer_id, item_id, payment_method, amount
1, 1, 1, cash, 10.00
1, 1, 2, cash, 11.00
2, 1, 1, credit, 12.00
3, 2, 3, cash, 13.00
3, 2, 4, cash, 14.00
3, 2, 5, credit, 15.00
客户的订单可以在每个 gzip 压缩文件中分发而无需排序,我正在开发一个系统,可以将 60 个文件中客户的 ALL 订单汇总到一个 Customer 实例定义如下:
class Customer {
private String customerId;
private Set<Order> orders;
}
class Order {
private String orderId;
private Set<Item> items;
}
class Item {
private String itemId;
private String paymentMethod;
private BigDecimal amount;
}
最终我将获得 2 个 ID 为 1 和 2 的客户实例,其中包含他们的订单和商品信息,并将这 2 个客户实例发送到另一个服务以进行进一步处理。
目前,我正在考虑使用多个 ECS 任务来读取每个文件,并将 CSV 行作为对象插入到 DynamoDB 中,其中 customerId 定义为索引。处理完所有文件后,我可以启动其他一些 ECS 任务,通过索引的 customerId 从 DynamoDB 读取,以便进行聚合。
只是想看看有没有更好的方法?
【问题讨论】:
标签: amazon-web-services bigdata