Есть ли способ загрузить Gzip-файл из Amazon S3 в Pentaho (PDI / Spoon / Kettle)? - PullRequest
2 голосов
/ 08 июня 2011

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

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

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

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

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

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

Ответы [ 3 ]

2 голосов
/ 24 февраля 2015

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

1 голос
/ 30 марта 2012

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

1 голос
/ 16 февраля 2012

Я действительно не знаю, как, но если вам это действительно нужно, вы можете использовать возможности S3 через VFS, которые предоставляет Pentaho Data Integration. Я могу выбрать vsf-provider.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>
...