我已经构建了一个系统,其中数据从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的性能几乎相同。 –