有没有办法将Amazon S3的Gzip压缩文件加载到Pentaho(PDI / Spoon / Kettle)?

时间:2011-06-07 20:28:33

标签: amazon-s3 pentaho kettle

有没有办法将Amazon S3的Gzip压缩文件加载到Pentaho Data Integration(Spoon)?

“文本文件输入”具有支持Gzip的Compression属性,但此模块无法作为源连接到S3。

有一个“S3 CSV Input”模块,但没有Compression属性,因此无法将Gzipped内容解压缩为表格形式。

此外,无法将数据从S3保存到本地文件。下载的内容只能“跳转”到另一个步骤,但没有步骤可以读取前一步骤中的gzip压缩数据,Gzip兼容的步骤都只能从文件中读取。

所以,我可以从S3获取gzip压缩数据,但我无法将数据发送到可以使用它的任何地方。

我错过了什么吗?有没有办法从非文件源解压缩压缩数据?

3 个答案:

答案 0 :(得分:2)

Kettle在处理文件时使用VFS(虚拟文件系统)。因此,您可以通过http,ssh,ftp,zip等获取文件,并在读取文件的所有步骤中将其用作常规本地文件。只需使用正确的“网址”即可。您会找到更多herehere,以及一个非常好的教程here。另外,查看Kettle附带的VFS转换示例。

这是S3的网址模板:s3://<Access Key>:<Secret Access Key>@s3<file path>

在您的情况下,您将使用“文本文件输入”和您提到的压缩设置,选择的文件将是:

s3://aCcEsSkEy:SecrEttAccceESSKeeey@s3/your-s3-bucket/your_file.gzip

答案 1 :(得分:1)

我真的不知道如何,但如果你真的需要这个,你可以寻找使用Pentaho Data Integration提供的S3到VFS功能。我可以在我的PDI CE发行版中使用以下内容查找 vsf-providers.xml

../data-integration/libext/pentaho/pentaho-s3-vfs-1.0.1.jar

<providers>
  <provider class-name="org.pentaho.s3.vfs.S3FileProvider">
    <scheme name="s3"/>
    <if-available class-name="org.jets3t.service.S3Service"/>
  </provider>
</providers>

答案 2 :(得分:1)

你也可以尝试使用花生水壶中的GZIP输入控制。