AWS Redshift Spectrum - как получить имена файлов s3 во внешней таблице

У меня есть внешние таблицы, созданные в спектре AWS для запроса данных s3, однако я не могу определить имена файлов, к которым принадлежит запись (у меня под файлом тысячи файлов)

В AWS Athena у нас есть псевдостолбец "$PATH", в котором будут отображаться имена файлов s3. Есть ли какие-либо аналогичные способы, доступные при использовании спектра?

1 ответ

Решение

С недавних пор вы можете использовать определенные псевдостолбцы для доступа к пути и размеру объекта в S3 для получения информации о происхождении.

http://docs.aws.amazon.com/redshift/latest/dg/c-spectrum-external-tables.html

Примером такого запроса будет:

>> select distinct "$path", "$size" from spectrum.sales_part;

 $path                                 | $size
---------------------------------------+-------
s3://awssampledbuswest2/tickit/spectrum/sales_partition/saledate=2008-01/ |  1616
s3://awssampledbuswest2/tickit/spectrum/sales_partition/saledate=2008-02/ |  1444
s3://awssampledbuswest2/tickit/spectrum/sales_partition/saledate=2008-02/ |  1444