2017-09-02 94 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