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