-1

将压缩文件集成到 Foundry 中的推荐方法是什么?我可以看到 3 个选项:

  1. 在盒子上解压缩(如果有这样的选项),并使用数据连接来提取解压缩的文件
  2. 在摄取期间使用一些数据连接插件(如果有的话)解压缩文件
  3. 摄取压缩文件并进行一些转换解压缩。
4

2 回答 2

2

一般来说,我建议不要使用 1 和 2。我什至经常做与 1 和 2 相反的操作——我在摄取文件之前压缩文件,并且永远不会在代工厂数据集中的任何地方以解压缩形式保存它们。

如果文件只是用 gzip 或 bzip2 压缩,而不是 tarball,那么代工厂允许您透明地访问它们,就好像它们根本没有压缩一样。例如,在这个示例数据集中,我上传了一个文件test1.csv.bz2数据集

但是,这会破坏 tarball 或其他将多个文件压缩到单个存档中的存档格式。因此,如果您可以选择安排事物以使它们像这样被压缩,那是最简单且可能是最优化的方式。

否则,我会推荐方法 3 - 提取内存中的档案,然后将您计算为镶木地板的任何结果写出到下游数据集中。

于 2020-10-12T12:12:23.257 回答
0

一般来说,选项 3(在转换中解压缩)是最好的选择。

选项 1引入了对一些非托管的外部工具的依赖来进行解压缩。如果您可以访问该框,那么您可以维护这样的东西并不是不可能的,但这肯定不是理想的。

选项 2由现有插件(zip 和 tgz)支持,乍一看,似乎是一个不错的选择。问题是在您的代理上执行此工作会增加您的代理的负载。这些通常在没有大量内存或计算能力的小型本地机器上运行,如果您碰巧过度征税,它会影响该代理上运行的所有内容(如果您设法将其撞倒,则不会运行; 如果你不把它打翻,一切都会运行,但比你不在代理上做这项工作要慢)。

选项 3将需要 Java 或 Python 转换(具有原始文件访问权限的东西),并且比选项 2稍微复杂一些,但它应该更健壮。你(通常)有更多的计算能力来解决这个问题。

关于数据连接的普遍看法是代理应该做尽可能少的工作。他们应该只是将数据传输到平台,在那里可以对其进行清理和转换。

于 2020-09-21T13:53:33.580 回答