AWS Redshift Spectrum - 如何在外部表中获取s3文件名

时间:2017-06-20 21:34:50

标签: amazon-web-services amazon-s3 amazon-redshift amazon-athena amazon-redshift-spectrum

我在AWS频谱中创建了外部表来查询s3数据但是我无法识别记录所属的文件名(我在桶下有数千个文件)

在AWS Athena中,我们有一个伪列" $ PATH"这将显示s3文件名是否有使用频谱时可用的类似方法?

1 个答案:

答案 0 :(得分:3)

从最近开始,您可以使用特定的伪列来访问S3中对象的路径和大小,以获取血统信息。

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

这种查询的一个例子是:

>> 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