我在AWS redshift中有2個表。具體內容如下在Redshift中使用連接的最佳方式
一)印象(計算特定廣告的曝光次數)
- 行(170萬美元)
- 分發密鑰(ad_campaign)
- 排序鍵數的數(created_on)
b)點擊次數(計算特定廣告的點擊次數)。
- 行(80億美元)
- 分發密鑰(ad_campaign)
- 排序關鍵字(created_on)
數我有2片單DC1大型集羣。
我試圖運行下面的查詢
select impressions.offer_id, count(imp_cnt) from
bidsflyer.tblImpressionLog_Opt impressions
full join bidsflyer.tblTrackingLinkLog_Opt clicks
on impressions.offer_id=clicks.offer_id and date_trunc('week',
impressions.created_on)=date_trunc('week', clicks.created_on)
where impressions.created_on >= '2017-07-27 00:00:00'
group by 1
這個查詢需要更多的則8分鐘運行。考慮到數據量,我認爲這是相當大的,我認爲這不是很大。
查詢計劃看起來像下面
XN HashAggregate (cost=2778257688268.43..2778257688268.60 rows=67 width=12)
-> XN Hash Left Join DS_DIST_NONE (cost=179619.84..2778170875920.65 rows=17362469555 width=12)
Hash Cond: (("outer".offer_id = "inner".offer_id) AND (date_trunc('week'::text, "outer".created_on) = date_trunc('week'::text, "inner".created_on)))
-> XN Seq Scan on tblimpressionlog_opt impressions (cost=0.00..724967.36 rows=57997389 width=20)
Filter: (created_on >= '2017-07-27 00:00:00'::timestamp without time zone)
-> XN Hash (cost=119746.56..119746.56 rows=11974656 width=12)
-> XN Seq Scan on tbltrackinglinklog_opt clicks (cost=0.00..119746.56 rows=11974656 width=12)
東西誰能給我分配的密鑰的正確用法的指導和排序鍵。
我應該如何設計我的查詢?
如果速度是重中之重,我強烈建議您至少使用2個節點。 –