我在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个节点。 –