我已經構建了一個系統,其中數據從s3每隔幾分鐘(從kinesis firehose)加載到redshift中。然後我從該主表中獲取數據並將其分成每個客戶的表格。無法優化Redshift查詢
主表有幾億行。
create table {$table} as select * from {$source_table} where customer_id = '{$customer_id} and time between {$start} and {$end}'
我定義爲鍵:
SORTKEY (customer_id, time)
DISTKEY customer_id
一切我已閱讀表明,這將是構建我的表的最佳方式
創建子表與這樣的查詢做/查詢但性能是絕對糟糕的。即使僅選擇幾行,構建子表也需要花費一分鐘。
我是否錯過了某些東西或者我只需要縮放羣集?
主表或子表上的那些DISTKEY和SORTKEYs?如果將查詢作爲SELECT而不是CREATE TABLE運行,那麼需要多長時間才能執行? –
SELECT和CREATE TABLE的性能幾乎相同。 –