Amazon web services 如何在AWS上同时使用S3和EBS进行经济高效的分析?

Amazon web services 如何在AWS上同时使用S3和EBS进行经济高效的分析?,amazon-web-services,amazon-s3,amazon-ec2,amazon-ebs,Amazon Web Services,Amazon S3,Amazon Ec2,Amazon Ebs,我在S3存储桶上从客户机接收非常大(5TB).csv文件。我必须处理这些文件,向它们添加列,然后将它们存储回去 我可能需要以与增加未来改进模型的功能数量相同的方式处理这些文件 显然,因为S3将数据存储为对象,所以每次进行更改时,我都必须读取和写入5TB的数据 我可以采取什么样的最佳方法来经济高效地快速处理这些数据: 将一个5TB的文件作为对象存储在S3上,每次读取该对象时,执行以下操作 完成处理并将结果保存回S3 将5TB作为对象存储在S3上,读取对象,将其分块成更小的对象,并将其作为多个对象保

我在S3存储桶上从客户机接收非常大(5TB).csv文件。我必须处理这些文件,向它们添加列,然后将它们存储回去

我可能需要以与增加未来改进模型的功能数量相同的方式处理这些文件

显然,因为S3将数据存储为对象,所以每次进行更改时,我都必须读取和写入5TB的数据

我可以采取什么样的最佳方法来经济高效地快速处理这些数据:

  • 将一个5TB的文件作为对象存储在S3上,每次读取该对象时,执行以下操作 完成处理并将结果保存回S3
  • 将5TB作为对象存储在S3上,读取对象,将其分块成更小的对象,并将其作为多个对象保存回S3,以便将来只使用我感兴趣的分块
  • 从一开始就在EBS上保存所有内容,将其装载到EC2并进行处理
  • 谢谢

    首先,警告--Amazon S3中对象的最大大小为5TB。如果您要添加的信息会导致更大的对象,那么您可能会达到该限制

    处理这些数据量的更聪明的方法是在并行中进行,最好是在多个较小的文件中进行,而不是在单个5TB的文件中

    Amazon EMR(实际上是一个受管理的Hadoop环境)非常适合跨大型数据集执行分布式操作。它可以并行处理来自多个文件的数据,并可以动态压缩/解压缩数据。学习起来很复杂,但效率和能力都很高

    如果您坚持当前的数据处理方法,我建议:

    • 如果您的应用程序可以直接从S3读取数据,请将其用作源代码。否则,请将文件复制到EBS
    • 处理数据
    • 将输出本地存储在EBS中,最好存储在较小的文件中(GBs而不是TBs)
    • 将文件复制到S3(或者如果满足您的需要,将其保存在EBS上)

    您的分析过程的体系结构是什么?如果它是在EC2上运行的,这与从S3下载到内部部署不同。另外,了解什么语言(Python?)有助于了解与设置S3直接接口相关的复杂性。