哪种归档文件格式适合分布式处理期间的随机访问?

时间:2019-08-18 04:35:09

标签: c# amazon-s3 lambda archive

我正在寻找可用于处理AWS lambda中的大型存档文件的存档文件类型。存档中的条目本身并不是很大,最大可能是100mb,但其中可能有很多。我的策略是创建一个lambda来处理每个条目,其中lambda的参数是s3中文件的路径以及存档中条目的字节范围。这将允许处理每个条目,而无需加载整个文件。我可以编写一种格式来处理此问题,但我认为这样的事情可能已经存在。

不是必需的,但希望在C#中使用这些文件。

1 个答案:

答案 0 :(得分:0)

只要文件不那么大,我可以建议采用以下方法。

  1. 调用的函数
  2. 如果/tmp转到第4步中有文件。
  3. 如果/tmp中没有文件,请从S3下载新文件。
  4. 从文件中按
  5. 弹出数据,确保其余文件在处理时收缩。
  6. 处理弹出的数据块。
  7. 如果函数即将超时,请停止处理文件并再次调用自己(调用同级)。它可能在同一个容器中生成,也可能在另一个容器中生成,或者将开始处理另一个文件(来自其他运行)或继续执行相同的文件。
  8. 文件完全处理后-在S3中以某种方式标记(标记)。

这里有一些限制: -您不必关心文件的处理顺序以及文件中的行。 -偶尔对相同数据块进行多次处理不会造成任何问题。 -您可能想在外部也跟踪处理过的文件

Scheduler class of the sosw软件包中使用了非常相似的方法。这是不是C#的Python程序包,但是这个想法可以为您提供帮助。