2017-09-02 87 views
0

我创建了Amazon S3存储桶并上传了一个平面文件(着名的Iris flower data set数据为csv)。Amazon S3的数据位置Athena

我现在想在Amazon Athena中创建一个Iris数据集平面表并对其进行查询。我找不到'输入数据集的位置'。

如何确定我的平板虹膜文件在S3存储桶中的位置?是否可能有上述情况的教程(谷歌没有帮助很多)?

+0

您是否安装了'aws cli'? – helloV

+0

没有刚刚开始。 – cs0815

回答

4

由于每Amazon Athena CREATE TABLE documentation,创建一个表的语法是:

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] 
[db_name.]table_name [(col_name data_type [COMMENT col_comment] [, ...])] 
[COMMENT table_comment] 
[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] 
[ROW FORMAT row_format] 
[STORED AS file_format] [WITH SERDEPROPERTIES (...)] ] 
[LOCATION 's3_loc'] 
[TBLPROPERTIES (['has_encrypted_data'='true | false',] ['classification'='aws_glue_classification',] property_name=property_value [, ...]) ] 

s3_loc是:

指定创建表的Amazon S3中基础数据的位置,例如le,s3://mystorage/。有关数据格式和权限等注意事项的更多信息,请参阅从Amazon S3中的基础数据创建表。

对文件夹或存储区使用尾部斜线。不要使用文件名或者glob字符。

用途:s3://mybucket/myfolder/

不要使用:s3://path_to_bucket s3://path_to_bucket/* s3://path_to-bucket/mydatafile.dat

因此,如果您已经存储在一个名为iris目录中称为my-bucket桶的平面文件,你可以使用:

LOCATION s3://my-bucket/iris/ 

请注意,您指向的是目录,而不是文件。这是因为许多数据集都存储为多个文件(甚至多个子目录)。

+0

感谢这有助于。 – cs0815

1

如果您已经安装了AWS CLI,那么你可以用它来查找文件:

aws s3 ls s3://bucket_name --recursive | grep iris_csv_file 
+0

即将检查。谢谢。 – cs0815