Есть ли способ загрузить сжатый файл из Amazon S3 в Pentaho (PDI / Spoon / Kettle)?

Есть ли способ загрузить сжатый файл из Amazon S3 в Pentaho Data Integration (Spoon)?

Существует «Ввод текстового файла», который имеет атрибут сжатия, поддерживающий Gzip, но этот модуль не может подключаться к S3 в качестве источника.

Существует модуль «S3 CSV Input», но нет атрибута Compression, поэтому он не может распаковывать Gzip-контент в табличную форму.

Также нет возможности сохранить данные с S3 в локальный файл. Загруженный контент можно «перескочить» только на другой шаг, но ни один шаг не может читать сжатые gzip-данные с предыдущего шага, все шаги, совместимые с Gzip, читаются только из файлов.

Итак, я могу получить сжатые данные из S3, но я не могу отправить эти данные куда-либо, чтобы их можно было использовать.

Я что-то пропустил? Есть ли способ распаковать заархивированные данные из нефайлового источника?


person misterbee    schedule 07.06.2011    source источник


Ответы (3)


Kettle использует VFS (виртуальную файловую систему) при работе с файлами. Таким образом, вы можете получить файл через http, ssh, ftp, zip, ... и использовать его как обычный локальный файл на всех этапах чтения файлов. Просто используйте правильный «url». Вы найдете больше здесь и здесь и очень хороший учебник здесь. Кроме того, ознакомьтесь с примерами преобразования VFS, которые поставляются с Kettle.

Это шаблон URL для S3: s3://<Access Key>:<Secret Access Key>@s3<file path>

В вашем случае вы должны использовать «Ввод текстового файла» с указанными вами настройками сжатия, и выбранный файл будет:

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

person Community    schedule 23.02.2015

Я действительно не знаю, как это сделать, но если вам это действительно нужно, вы можете использовать S3 через возможности VFS, которые предоставляет Pentaho Data Integration. Я вижу файл vsf-providers.xml со следующим содержимым в моем дистрибутиве PDI CE:

../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>
person rsilva4    schedule 16.02.2012
comment
Спасибо! Прошло некоторое время, и в данный момент я не использую Pentaho активно, но я попробую это, когда вернусь в Pentaho. - person misterbee; 17.02.2012

Вы также можете попробовать использовать контроль ввода GZIP в чайнике с арахисом, он там есть.

person Sagar    schedule 30.03.2012