這邊的 Amazon Redshift 都是跑在 Oregon (us-west-2),前者的價錢是 USD$9.6/hour,後者是 USD$8/hour,大約貴一些。這是同一個 query 跑過多次後穩定的數字,用 PostgreSQL 的 \timing
出來的數字計算。
先從比較簡單的 query 開始,這個表格大約六億筆資料,如果以記憶體大小算的話,是 memory-fit。
前者是:
dev=# SELECT COUNT(DISTINCT x) FROM t; count -------- 925612 (1 row) Time: 3345.946 ms
後者是:
dev=# SELECT COUNT(DISTINCT x) FROM t; count -------- 925612 (1 row) Time: 2145.132 ms
再來條件多一點,一樣前者是:
dev=# SELECT x, COUNT(*) AS cnt FROM t GROUP BY x ORDER BY cnt DESC LIMIT 20; ... (20 rows) Time: 2121.002 ms
後者是:
dev=# SELECT x, COUNT(*) AS cnt FROM t GROUP BY x ORDER BY cnt DESC LIMIT 20; ... (20 rows) Time: 1388.102 ms
發現比較貴的 cluster 的反而比較慢 (大台 dw2.8xlarge 組成的),用多台小台的去堆反而比較快。晚點找時間測沒辦法 memory-fit 的速度。
意外的跟直覺不太一樣,要測過才知道...