2017-03-28 81 views
0

我已經以這種格式分區存儲在S3中的數據。如何提高從雅典娜s3數據的查詢性能

bucket/year=2017/month=3/date=1/filename.json 
bucket/year=2017/month=3/date=2/filename1.json 
bucket/year=2017/month=3/date=3/filename2.json 

每個分區都有大約1,000,000條記錄。我在雅典娜爲此創建了表格和分區。

現在從雅典娜

select count(*) from mts_data_1 where year='2017' and month='3' and date='1' 

運行的查詢此查詢正在1800秒掃描1,000,000記錄時,。

所以我的問題是如何改善這種查詢性能?

+0

什麼是分區列的定義? –

+0

PARTITIONED BY(年份字符串,月份字符串,日期字符串) – Shailendra

+0

Athena在該查詢中掃描了多少個文件和字節的數據? – James

回答

1

我認爲問題在於雅典娜必須從S3讀取如此多的文件。 250 MB並不是那麼多的數據,但1,000,000個文件是很多文件。如果減少文件數量,Athena查詢性能將顯着提高,壓縮聚合文件將有助於提高性能。一天的分區需要多少個文件?即使採用一分鐘的分辨率,您也需要少於1,500個文件。如果當前查詢時間大約是30分鐘,那麼您可以輕鬆開始。

有用於聚集和壓縮您的記錄很多選項: