เจเจธ เจ เจงเจฟเจเจจ เจตเจฟเฉฑเจ, เจฎเฉเจ เจเจน เจฆเฉเจเจฃเจพ เจเจพเจนเฉเฉฐเจฆเจพ เจธเฉ เจเจฟ PostgreSQL เจฆเฉ เจฌเจเจพเจ เจเฉฑเจ ClickHouse เจกเฉเจเจพ เจธเจฐเฉเจค เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจตเจฟเฉฑเจ เจเจฟเจนเฉเฉ เจธเฉเจงเจพเจฐ เจเฉเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเจจเฅค เจฎเฉเจจเฉเฉฐ เจเจฒเจฟเจเจนเจพเจเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจคเฉเจ เจชเฉเจฐเจพเจชเจค เจเจคเจชเจพเจฆเจเจคเจพ เจฒเจพเจญเจพเจ เจฌเจพเจฐเฉ เจชเจคเจพ เจนเฉเฅค เจเฉ เจเจน เจฒเจพเจญ เจเจพเจฐเฉ เจฐเจนเจฟเจฃเจเฉ เจเฉเจเจฐ เจฎเฉเจ เจเฉฑเจ เจตเจฟเจฆเฉเจธเจผเฉ เจกเฉเจเจพ เจฐเฉเจชเจฐ (FDW) เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ PostgreSQL เจคเฉเจ เจเจฒเจฟเจเจนเจพเจเจธ เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจเจฐเจฆเจพ เจนเจพเจ?
เจ เจงเจฟเจเจจ เจเฉเจคเฉ เจเจ เจกเฉเจเจพเจฌเฉเจธ เจตเจพเจคเจพเจตเจฐเจฃ เจนเจจ PostgreSQL v11, clickhousedb_fdw เจ เจคเฉ ClickHouse เจกเฉเจเจพเจฌเฉเจธเฅค เจเจเจฐเจเจพเจฐ, PostgreSQL v11 เจคเฉเจ เจ เจธเฉเจ เจเจชเจฃเฉ clickhousedb_fdw เจฆเฉเจเจฐเจพ เจเจฒเจฟเจเจนเจพเจเจธ เจกเฉเจเจพเจฌเฉเจธ เจคเฉฑเจ เจฐเฉเจ เจเฉเจคเฉเจเจ เจตเฉฑเจ-เจตเฉฑเจ SQL เจชเฉเฉฑเจเจเจฟเฉฑเจเจพเจ เจจเฉเฉฐ เจเจฒเจพเจตเจพเจเจเฉเฅค เจ เจธเฉเจ เจซเจฟเจฐ เจฆเฉเจเจพเจเจเฉ เจเจฟ FDW เจฆเฉ เจเจพเจฐเจเฉเจเจผเจพเจฐเฉ เจฎเฉเจฒ PostgreSQL เจ เจคเฉ เจฎเฉเจฒ เจเจฒเจฟเจเจนเจพเจเจธ เจตเจฟเฉฑเจ เจเฉฑเจฒ เจฐเจนเฉเจเจ เจเฉฑเจเฉ เจธเจตเจพเจฒเจพเจ เจจเจพเจฒ เจเจฟเจตเฉเจ เจคเฉเจฒเจจเจพ เจเจฐเจฆเฉ เจนเฉเฅค
เจเจฒเจฟเจเจนเจพเจเจธ เจกเฉเจเจพเจฌเฉเจธ
เจเจฒเจฟเจเจนเจพเจเจธ เจเฉฑเจ เจเจชเจจ เจธเฉเจฐเจธ เจเจพเจฒเจฎเจจเจฐ เจกเฉเจเจพเจฌเฉเจธ เจชเฉเจฐเจฌเฉฐเจงเจจ เจธเจฟเจธเจเจฎ เจนเฉ เจเฉ เจฐเจตเจพเจเจคเฉ เจกเฉเจเจพเจฌเฉเจธ เจชเจนเฉเฉฐเจเจพเจ เจจเจพเจฒเฉเจ 100-1000 เจเฉเจฃเจพ เจคเฉเจเจผเฉ เจจเจพเจฒ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจจเฉเฉฐ เจชเฉเจฐเจพเจชเจค เจเจฐ เจธเจเจฆเจพ เจนเฉ, เจเฉฑเจ เจธเจเจฟเฉฐเจ เจคเฉเจ เจตเฉ เจเฉฑเจ เจธเจฎเฉเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจ เจฐเจฌ เจคเฉเจ เจตเฉฑเจง เจเจคเจพเจฐเจพเจ เจฆเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจเจฐเจจ เจฆเฉ เจธเจฎเจฐเฉฑเจฅ เจนเฉเฅค
Clickhousedb_fdw
clickhousedb_fdw - เจเจฒเจฟเจเจนเจพเจเจธ เจกเฉเจเจพเจฌเฉเจธ, เจเจพเจ FDW เจฒเจ เจฌเจพเจนเจฐเฉ เจกเจพเจเจพ เจฐเฉเจชเจฐ, เจชเจฐเจเฉเจจเจพ เจฆเจพ เจเฉฑเจ เจเจชเจจ เจธเฉเจฐเจธ เจชเฉเจฐเฉเจเฉเจเจ เจนเฉเฅค
เจเจฟเจตเฉเจ เจเจฟ เจคเฉเจธเฉเจ เจฆเฉเจเฉเจเฉ, เจเจน ClickHouse เจฒเจ เจเฉฑเจ FDW เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเจพ เจนเฉ เจเฉ PostgreSQL v11 เจธเจฐเจตเจฐ เจคเฉเจ ClickHouse เจกเฉเจเจพเจฌเฉเจธ เจคเฉเจ SELECT, เจ เจคเฉ INSERT INTO เจฆเฉ เจเจเจฟเจ เจฆเจฟเฉฐเจฆเจพ เจนเฉเฅค
FDW เจเฉฑเจจเจค เจตเจฟเจธเจผเฉเจธเจผเจคเจพเจตเจพเจ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจเจฐเจฆเจพ เจนเฉ เจเจฟเจตเฉเจ เจเจฟ เจเจเจฐเฉเจเฉเจ เจ เจคเฉ เจเฉเจเจเจจเฅค เจเจน เจฐเจฟเจฎเฉเจ เจธเจฐเจตเจฐ เจฆเฉ เจธเจฐเฉเจคเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเจนเจจเจพเจ เจธเฉฐเจธเจพเจงเจจเจพเจ-เจเจ เจจ เจเจพเจฐเจเจพเจ เจฒเจ เจเจพเจฐเจเฉเจเจผเจพเจฐเฉ เจตเจฟเฉฑเจ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจธเฉเจงเจพเจฐ เจเจฐเจฆเจพ เจนเฉเฅค
เจฌเฉเจเจเจฎเจพเจฐเจ เจตเจพเจคเจพเจตเจฐเจฃ
- เจธเฉเจชเจฐเจฎเจพเจเจเฉเจฐเฉ เจธเจฐเจตเจฐ:
- Intelยฎ Xeonยฎ CPU E5-2683 v3 @ 2.00GHz
- 2 เจธเจพเจเจ / 28 เจเฉเจฐ / 56 เจฅเจฐเจฟเฉฑเจก
- เจฎเฉเจฎเฉเจฐเฉ: 256 เจเฉเจฌเฉ เจฐเฉเจฎ
- เจธเจเฉเจฐเฉเจ: Samsung SM863 1.9TB Enterprise SSD
- เจซเจพเจเจฒ เจธเจฟเจธเจเจฎ: ext4/xfs
- OS: Linux smblade01 4.15.0-42-เจเจฎ #45~16.04.1-Ubuntu
- PostgreSQL: เจธเฉฐเจธเจเจฐเจฃ 11
เจฌเฉเจเจเจฎเจพเจฐเจ เจเฉเจธเจ
เจเจธ เจเฉเจธเจ เจฒเจ เจเฉเจ เจฎเจธเจผเฉเจจ เจฆเฉเจเจฐเจพ เจคเจฟเจเจฐ เจเฉเจคเฉ เจกเฉเจเจพ เจธเฉเฉฑเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเฉ เจฌเจเจพเจ, เจ
เจธเฉเจ 1987 เจคเฉเจ 2018 เจคเฉฑเจ "เจธเจฎเฉเจ เจฆเฉ เจฐเจฟเจชเฉเจฐเจ เจเฉเจคเฉ เจเจชเจฐเฉเจเจฐ เจเจพเจเจฎ เจฆเฉเจเจฐเจพ เจเจคเจชเจพเจฆเจเจคเจพ" เจกเฉเจเจพ เจฆเฉ เจตเจฐเจคเฉเจ เจเฉเจคเฉเฅค เจคเฉเจธเฉเจ เจกเฉเจเจพ เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ
เจกเฉเจเจพเจฌเฉเจธ เจฆเจพ เจเจเจพเจฐ 85 GB เจนเฉ, 109 เจเจพเจฒเจฎเจพเจ เจฆเฉ เจเฉฑเจ เจธเจพเจฐเจฃเฉ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเจพ เจนเฉเฅค
เจฌเฉเจเจเจฎเจพเจฐเจ เจธเจตเจพเจฒ
เจเฉฑเจฅเฉ เจเจน เจธเจตเจพเจฒ เจนเจจ เจเฉ เจฎเฉเจ ClickHouse, clickhousedb_fdw เจ เจคเฉ PostgreSQL เจฆเฉ เจคเฉเจฒเจจเจพ เจเจฐเจจ เจฒเจ เจตเจฐเจคเฉเจเจ เจธเจจเฅค
Q#
เจชเฉเฉฑเจเจเจฟเฉฑเจ เจตเจฟเฉฑเจ เจเจเจฐเฉเจเฉเจเจธ เจ
เจคเฉ เจเจธ เจ
เจจเฉเจธเจพเจฐ เจธเจฎเฉเจน เจธเจผเจพเจฎเจฒ เจนเจจ
Q1
เจนเจซเจคเฉ เจฆเจพ เจฆเจฟเจจ เจเฉเจฃเฉ, เจเจจเจเจพเจเจฎ เจคเฉเจ เจเจฟเจฃเฉ (*) เจเจฟเฉฑเจฅเฉ เจธเจพเจฒ >= 2000 เจ
เจคเฉ เจธเจพเจฒ <= 2008 เจฆเจฟเจจ-เจเจซ เจนเจซเจคเฉ เจฆเฉ เจเฉเจฐเจฎ เจฆเฉเจเจฐเจพ c DESC เจฆเฉเจเจฐเจพ เจธเจฎเฉเจน;
Q2
เจนเจซเจคเฉ เจฆเจพ เจฆเจฟเจจ เจเฉเจฃเฉ, เจเจจเจเจพเจเจฎ เจคเฉเจ เจเจฟเจฃเฉ (*) เจเจฟเฉฑเจฅเฉ DepDelay>10 เจ
เจคเฉ เจธเจพเจฒ >= 2000 เจ
เจคเฉ เจธเจพเจฒ <= 2008 เจเจฐเฉเฉฑเจช BY DayOfweek ORDER by c DESC;
Q3
เจฎเฉเจฒ เจเฉเจฃเฉ, เจเจฃเจจเจพ(*) เจเจจเจเจพเจเจฎ เจคเฉเจ c เจฆเฉ เจคเฉเจฐ 'เจคเฉ เจเจฐเฉ เจเจฟเฉฑเจฅเฉ DepDelay>10 เจ
เจคเฉ เจธเจพเจฒ >= 2000 เจ
เจคเฉ เจธเจพเจฒ <= 2008 เจฎเฉเจฒ เจเจฐเจกเจฐ เจฆเฉเจเจฐเจพ c DESC เจธเฉเจฎเจพ 10 เจฆเฉเจเจฐเจพ เจธเจฎเฉเจน;
Q4
เจเฉเจฐเฉเจ
เจฐ เจเฉเจฃเฉ, เจเจฟเจฃเจคเฉ() เจเจจเจเจพเจเจฎ เจคเฉเจ เจเจฟเฉฑเจฅเฉ DepDelay>10 เจ
เจคเฉ เจธเจพเจฒ = 2007 เจเฉเจฐเฉเจ
เจฐ เจฆเฉเจเจฐเจพ เจเจฟเจฃเจจ เจฆเฉเจเจฐเจพ เจธเจฎเฉเจน () DESC;
Q5
เจเฉเจฃเฉ a. เจเฉเจฐเฉเจ
เจฐ, c, c2, c1000/c2 เจคเฉเจ c3 เจตเจเฉเจ (เจเฉเจฃเฉ เจเฉเจฐเฉเจ
เจฐ, เจเจฟเจฃเจคเฉ() เจเจจเจเจพเจเจฎ เจคเฉเจ เจเจฟเฉฑเจฅเฉ DepDelay>10 เจ
เจคเฉ เจธเจพเจฒ = 2007 เจเฉเจฐเฉเจ
เจฐ เจฆเฉเจเจฐเจพ เจเจฐเฉเฉฑเจช ) เจเฉฑเจ เจ
เฉฐเจฆเจฐเฉเจจเฉ เจเฉเฉเฉ ( เจเฉเจฐเฉเจ
เจฐ เจจเฉเฉฐ เจเฉเจฃเฉ, เจเจฟเจฃเจคเฉ (*) เจเจจเจเจพเจเจฎ เจคเฉเจ c2 เจฆเฉ เจฐเฉเจช เจตเจฟเฉฑเจ เจเจฟเฉฑเจฅเฉ เจธเจพเจฒ = เจเฉเจฐเฉเจ
เจฐ เจฆเฉเจเจฐเจพ 2007 เจเจฐเฉเฉฑเจช) b a.Carrier=b.ORDERCarrier 'เจคเฉ C3 DESC เจฆเฉเจเจฐเจพ;
Q6
เจเฉเจฃเฉ a. เจเฉเจฐเฉเจ
เจฐ, c, c2, c1000/c2 เจคเฉเจ c3 เจตเจเฉเจ (เจเฉเจฃเฉ เจเฉเจฐเฉเจ
เจฐ, เจเจฟเจฃเจคเฉ() เจเจจเจเจพเจเจฎ เจคเฉเจ เจเจฟเฉฑเจฅเฉ DepDelay>10 เจ
เจคเฉ เจธเจพเจฒ >= 2000 เจ
เจคเฉ เจธเจพเจฒ <= เจเฉเจฐเฉเจ
เจฐ เจฆเฉเจเจฐเจพ 2008 เจเจฐเฉเฉฑเจช) เจเฉฑเจ เจ
เฉฐเจฆเจฐเฉเจจเฉ เจเฉเฉเฉ (เจเฉเจฐเฉเจ
เจฐ เจจเฉเฉฐ เจเฉเจฃเฉ, เจเจฟเจฃเจคเฉ (*) เจเจจเจเจพเจเจฎ เจคเฉเจ c2 เจตเจเฉเจ เจเจฟเฉฑเจฅเฉ เจธเจพเจฒ >= 2000 เจ
เจคเฉ เจธเจพเจฒ <= 2008 เจเฉเจฐเฉเจ
เจฐ ) b 'เจคเฉ a.Carrier=b.C3 DESC เจฆเฉเจเจฐเจพ เจเฉเจฐเฉเจ
เจฐ เจเจฐเจกเจฐ;
Q7
เจเฉเจฐเฉเจ
เจฐ เจเฉเจฃเฉ, เจเจธเจค(DepDelay) * 1000 AS c3 เจเจจเจเจพเจเจฎ เจคเฉเจ เจเจฟเฉฑเจฅเฉ เจธเจพเจฒ >= 2000 เจ
เจคเฉ เจธเจพเจฒ <= เจเฉเจฐเฉเจ
เจฐ เจฆเฉเจเจฐเจพ 2008 เจเจฐเฉเฉฑเจช;
Q8
เจธเจพเจฒ เจเฉเจฃเฉ, เจเจจเจเจพเจเจฎ เจคเฉเจ เจเจธเจค(DepDelay) เจธเจพเจฒ เจ
เจจเฉเจธเจพเจฐ เจเจฐเฉเฉฑเจช;
Q9
เจธเจพเจฒ เจเฉเจฃเฉ, เจธเจพเจฒ เจฆเฉ เจนเจฟเจธเจพเจฌ เจจเจพเจฒ เจเจจเจเจพเจเจฎ เจเจฐเฉเฉฑเจช เจคเฉเจ c1 เจตเจเฉเจ เจเจฟเจฃเฉ;
Q10
เจเจจเจเจพเจเจฎ เจคเฉเจ เจเจธเจค (cnt) เจเฉเจฃเฉ (เจธเจพเจฒ, เจฎเจนเฉเจจเจพ, เจเจฟเจฃเจคเฉ (*) เจเจจเจเจพเจเจฎ เจคเฉเจ cnt เจฆเฉ เจคเฉเจฐ 'เจคเฉ เจเฉเจฃเฉ เจเจฟเฉฑเจฅเฉ DepDel15=1 เจธเจพเจฒ, เจฎเจนเฉเจจเฉ เจฆเฉเจเจฐเจพ เจเจฐเฉเฉฑเจช) a;
Q11
(เจธเจพเจฒ,เจฎเจนเฉเจจเจพ,เจเจฟเจฃเจคเฉ(*) เจคเฉเจ เจเจจเจเจพเจเจฎ เจเจฐเฉเฉฑเจช เจคเฉเจ c1 เจตเจเฉเจ เจธเจพเจฒ,เจฎเจนเฉเจจเฉ เจฆเฉ เจเฉเจฃ เจเจฐเฉ) a;
Q12
OriginCityName, DestCityName, เจเจฃเจจเจพ(*) เจจเฉเฉฐ เจเจจเจเจพเจเจฎ เจคเฉเจ เจเฉเจฃเฉ, เจเจฟเจตเฉเจ เจเจฟ เจฎเฉเจฒ เจธเจผเจนเจฟเจฐ เจฆเฉ เจจเจพเจฎ เจฆเฉเจเจฐเจพ เจเจฐเฉเฉฑเจช, C DESC เจธเฉเจฎเจพ 10 เจฆเฉเจเจฐเจพ DestCityName เจเจฐเจกเจฐ;
Q13
OriginCityName เจจเฉเฉฐ เจเฉเจฃเฉ, C DESC LIMIT 10 เจฆเฉเจเจฐเจพ OriginCityName เจฆเฉ เจเจฐเจกเจฐ เจฆเฉเจเจฐเจพ เจเจจเจเจพเจเจฎ เจเจฐเฉเฉฑเจช เจฆเฉ เจฐเฉเจช เจตเจฟเฉฑเจ เจเจฟเจฃเจคเฉ(*);
เจชเฉเฉฑเจเจเจฟเฉฑเจ เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ เจนเจจ
Q14
เจเฉเจฃเฉ a.Year, c1/c2 FROM ( เจธเจพเจฒ เจเฉเจฃเฉ, เจเจฟเจฃเจคเฉ()1000 เจเจจเจเจพเจเจฎ เจคเฉเจ c1 เจฆเฉ เจคเฉเจฐ 'เจคเฉ เจเจฟเฉฑเจฅเฉ DepDelay>เจธเจพเจฒ เจฆเฉ เจนเจฟเจธเจพเจฌ เจจเจพเจฒ 10 เจเจฐเฉเฉฑเจช) เจเฉฑเจ เจ
เฉฐเจฆเจฐเฉเจจเฉ เจเฉเฉเฉ (เจธเจพเจฒ เจเฉเจฃเฉ, เจเจฟเจฃเจคเฉ (*) c2 เจฆเฉ เจคเฉเจฐ 'เจคเฉ เจเจจเจเจพเจเจฎ เจเจฐเฉเฉฑเจช เจคเฉเจ เจธเจพเจฒ เจฆเฉ เจนเจฟเจธเจพเจฌ เจจเจพเจฒ) b เจจเฉเฉฐ a.Year=b.year ORDER BY a.Year;
Q15
เจเฉเจฃเฉ a."เจธเจพเจฒ", c1/c2 FROM ("เจธเจพเจฒ" เจเฉเจฃเฉ, เจเจฟเจฃเจคเฉ()1000 เจซเฉเจเจเจพเจเจฎ เจคเฉเจ c1 เจฆเฉ เจคเฉเจฐ 'เจคเฉ เจเจฟเฉฑเจฅเฉ โDepDelayโ>10 GROUP BY โYearโ) เจเฉฑเจ เจ
เฉฐเจฆเจฐเฉเจจเฉ เจเฉเฉเฉ (โเจธเจพเจฒโ เจจเฉเฉฐ เจเฉเจฃเฉ, โเจธเจพเจฒโ เจฆเฉเจเจฐเจพ เจซเฉเจเจเจพเจเจฎ เจเจฐเฉเฉฑเจช เจคเฉเจ c2 เจตเจเฉเจ เจเจฟเจฃเฉ (*) ) a.โYearโ=b เจเฉฑเจคเฉเฅค "เจธเจพเจฒ";
เจธเจพเจฐเจฃเฉ-1: เจฌเฉเจเจเจฎเจพเจฐเจ เจตเจฟเฉฑเจ เจตเจฐเจคเฉ เจเจ เจธเจตเจพเจฒ
เจชเฉเฉฑเจเจเจฟเฉฑเจ เจ เจฎเจฒเจพเจ
เจตเฉฑเจ-เจตเฉฑเจ เจกเจพเจเจพเจฌเฉเจธ เจธเฉเจเจฟเฉฐเจเจพเจ เจตเจฟเฉฑเจ เจเฉฑเจฒเจฃ เจตเฉเจฒเฉ เจนเจฐเฉเจ เจธเจตเจพเจฒ เจฆเฉ เจจเจคเฉเจเฉ เจเฉฑเจฅเฉ เจฆเจฟเฉฑเจคเฉ เจเจ เจนเจจ: PostgreSQL เจธเจฎเฉเจค เจ เจคเฉ เจฌเจฟเจจเจพเจ เจธเฉเจเจเจพเจเจ, เจฎเฉเจฒ เจเจฒเจฟเจเจนเจพเจเจธ เจ เจคเฉ clickhousedb_fdwเฅค เจธเจฎเจพเจ เจฎเจฟเจฒเฉเจธเจเจฟเฉฐเจ เจตเจฟเฉฑเจ เจฆเจฟเจเจพเจเจ เจเจฟเจ เจนเฉเฅค
Q#
PostgreSQL
PostgreSQL (เจเฉฐเจกเฉเจเจธเจก)
เจเจฒเจฟเจเจนเจพouseเจธ
clickhousedb_fdw
Q1
27920
19634
23
57
Q2
35124
17301
50
80
Q3
34046
15618
67
115
Q4
31632
7667
25
37
Q5
47220
8976
27
60
Q6
58233
24368
55
153
Q7
30566
13256
52
91
Q8
38309
60511
112
179
Q9
20674
37979
31
81
Q10
34990
20102
56
148
Q11
30489
51658
37
155
Q12
39357
33742
186
1333
Q13
29912
30709
101
384
Q14
54126
39913
124
1364212
Q15
97258
30211
245
259
เจธเจพเจฐเจฃเฉ-1: เจฌเฉเจเจเจฎเจพเจฐเจ เจตเจฟเฉฑเจ เจตเจฐเจคเฉ เจเจ เจธเจตเจพเจฒเจพเจ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจตเจฟเฉฑเจ เจฒเฉฑเจเจฟเจ เจธเจฎเจพเจ
เจจเจคเฉเจเฉ เจตเฉเจเฉ
เจเฉเจฐเจพเจซเจผ เจเจฟเจเจฐเฉ เจเจเจเจผเฉเจเจฟเจเจธเจผเจจ เจเจพเจเจฎ เจจเฉเฉฐ เจฎเจฟเจฒเฉเจธเจเจฟเฉฐเจ เจตเจฟเฉฑเจ เจฆเจฟเจเจพเจเจเจฆเจพ เจนเฉ, X เจงเฉเจฐเจพ เจเจชเจฐเฉเจเจค เจเฉเจฌเจฒ เจคเฉเจ เจชเฉเฉฑเจเจเจฟเฉฑเจ เจจเฉฐเจฌเจฐ เจฆเจฟเจเจพเจเจเจฆเจพ เจนเฉ, เจ เจคเฉ Y เจงเฉเจฐเจพ เจเจเจเจผเฉเจเจฟเจเจธเจผเจจ เจธเจฎเจพเจ เจฎเจฟเจฒเฉเจธเจเจฟเฉฐเจ เจตเจฟเฉฑเจ เจฆเจฟเจเจพเจเจเจฆเจพ เจนเฉเฅค Clickhousedb_fdw เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจชเฉเจธเจเจเฉเจฐเฉเจธ เจคเฉเจ เจชเฉเจฐเจพเจชเจค เจเฉเจคเฉ เจเจฒเจฟเจเจนเจพเจเจธ เจจเจคเฉเจเฉ เจ เจคเฉ เจกเฉเจเจพ เจฆเจฟเจเจพเจเจ เจเจฟเจ เจนเฉเฅค เจธเจพเจฐเจฃเฉ เจคเฉเจ เจคเฉเจธเฉเจ เจฆเฉเจ เจธเจเจฆเฉ เจนเฉ เจเจฟ PostgreSQL เจ เจคเฉ ClickHouse เจตเจฟเจเจเจพเจฐ เจฌเจนเฉเจค เจตเฉฑเจกเจพ เจ เฉฐเจคเจฐ เจนเฉ, เจชเจฐ Clickhouse เจ เจคเฉ clickhousedb_fdw เจตเจฟเจเจเจพเจฐ เจฌเจนเฉเจค เจเฉฑเจ เจ เฉฐเจคเจฐ เจนเฉเฅค
เจเจน เจเฉเจฐเจพเจซ ClickhouseDB เจ เจคเฉ clickhousedb_fdw เจตเจฟเจเจเจพเจฐ เจ เฉฐเจคเจฐ เจฆเจฟเจเจพเจเจเจฆเจพ เจนเฉเฅค เจเจผเจฟเจเจฆเจพเจคเจฐ เจธเจตเจพเจฒเจพเจ เจตเจฟเฉฑเจ, FDW เจเจตเจฐเจนเฉเฉฑเจก เจเฉฐเจจเจพ เจเฉฑเจเจพ เจจเจนเฉเจ เจนเฉ เจ เจคเฉ Q12 เจจเฉเฉฐ เจเฉฑเจก เจเฉ เจธเจผเจพเจเจฆ เจนเฉ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจนเฉเฅค เจเจธ เจชเฉเฉฑเจเจเจฟเฉฑเจ เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ เจนเฉเจฃเจพ เจ เจคเฉ เจเฉฑเจ ORDER BY เจงเจพเจฐเจพ เจธเจผเจพเจฎเจฒ เจนเฉเฅค ORDER BY GROUP/BY เจเจฒเจพเจเจผ เจฆเฉ เจเจพเจฐเจจ, ORDER BY เจเจฒเจฟเจเจนเจพเจเจธ เจตเจฟเฉฑเจ เจนเฉเจ เจพเจ เจจเจนเฉเจ เจเจเจเจฆเจพเฅค
เจธเจพเจฐเจฃเฉ 2 เจตเจฟเฉฑเจ เจ เจธเฉเจ เจชเฉเจฐเจธเจผเจจ Q12 เจ เจคเฉ Q13 เจตเจฟเฉฑเจ เจธเจฎเฉเจ เจฆเฉ เจเจพเจฒ เจฆเฉเจเจฆเฉ เจนเจพเจเฅค เจฆเฉเจฌเจพเจฐเจพ, เจเจน ORDER BY เจงเจพเจฐเจพ เจฆเฉ เจเจพเจฐเจจ เจนเฉเฉฐเจฆเจพ เจนเฉเฅค เจเจธเจฆเฉ เจชเฉเจธเจผเจเฉ เจเจฐเจจ เจฒเจ, เจฎเฉเจ ORDER BY เจงเจพเจฐเจพ เจฆเฉ เจจเจพเจฒ เจ เจคเฉ เจฌเจฟเจจเจพเจ เจธเจตเจพเจฒ Q-14 เจ เจคเฉ Q-15 เจเจฒเจพเจเฅค ORDER BY เจงเจพเจฐเจพ เจฆเฉ เจฌเจฟเจจเจพเจ เจชเฉเจฐเจพ เจนเฉเจฃ เจฆเจพ เจธเจฎเจพเจ 259ms เจนเฉ เจ เจคเฉ ORDER BY เจงเจพเจฐเจพ เจฆเฉ เจจเจพเจฒ เจเจน 1364212 เจนเฉเฅค เจเจธ เจชเฉเฉฑเจเจเจฟเฉฑเจ เจจเฉเฉฐ เจกเฉเจฌเฉฑเจ เจเจฐเจจ เจฒเจ เจฎเฉเจ เจฆเฉเจตเฉเจ เจธเจตเจพเจฒเจพเจ เจฆเฉ เจตเจฟเจเจเจฟเจ เจเจฐ เจฐเจฟเจนเจพ เจนเจพเจ เจ เจคเฉ เจเฉฑเจฅเฉ เจตเจฟเจเจเจฟเจ เจฆเฉ เจจเจคเฉเจเฉ เจนเจจเฅค
Q15: เจงเจพเจฐเจพ เจฆเฉเจเจฐเจพ เจเจฐเจกเจฐ เจคเฉเจ เจฌเจฟเจจเจพเจ
bm=# EXPLAIN VERBOSE SELECT a."Year", c1/c2
FROM (SELECT "Year", count(*)*1000 AS c1 FROM fontime WHERE "DepDelay" > 10 GROUP BY "Year") a
INNER JOIN(SELECT "Year", count(*) AS c2 FROM fontime GROUP BY "Year") b ON a."Year"=b."Year";
Q15: เจเจฒเจพเจเจผ เจฆเฉเจเจฐเจพ เจเจฐเจกเจฐ เจคเฉเจ เจฌเจฟเจจเจพเจ เจชเฉเฉฑเจเจเจฟเฉฑเจ
QUERY PLAN
Hash Join (cost=2250.00..128516.06 rows=50000000 width=12)
Output: fontime."Year", (((count(*) * 1000)) / b.c2)
Inner Unique: true Hash Cond: (fontime."Year" = b."Year")
-> Foreign Scan (cost=1.00..-1.00 rows=100000 width=12)
Output: fontime."Year", ((count(*) * 1000))
Relations: Aggregate on (fontime)
Remote SQL: SELECT "Year", (count(*) * 1000) FROM "default".ontime WHERE (("DepDelay" > 10)) GROUP BY "Year"
-> Hash (cost=999.00..999.00 rows=100000 width=12)
Output: b.c2, b."Year"
-> Subquery Scan on b (cost=1.00..999.00 rows=100000 width=12)
Output: b.c2, b."Year"
-> Foreign Scan (cost=1.00..-1.00 rows=100000 width=12)
Output: fontime_1."Year", (count(*))
Relations: Aggregate on (fontime)
Remote SQL: SELECT "Year", count(*) FROM "default".ontime GROUP BY "Year"(16 rows)
Q14: เจเจฒเจพเจเจผ เจฆเฉเจเจฐเจพ เจเจฐเจกเจฐ เจจเจพเจฒ เจชเฉเฉฑเจเจเจฟเฉฑเจ
bm=# EXPLAIN VERBOSE SELECT a."Year", c1/c2 FROM(SELECT "Year", count(*)*1000 AS c1 FROM fontime WHERE "DepDelay" > 10 GROUP BY "Year") a
INNER JOIN(SELECT "Year", count(*) as c2 FROM fontime GROUP BY "Year") b ON a."Year"= b."Year"
ORDER BY a."Year";
Q14: เจเจฒเจพเจเจผ เจฆเฉเจเจฐเจพ เจเจฐเจกเจฐ เจฆเฉ เจจเจพเจฒ เจชเฉเฉฑเจเจเจฟเฉฑเจ เจฏเฉเจเจจเจพ
QUERY PLAN
Merge Join (cost=2.00..628498.02 rows=50000000 width=12)
Output: fontime."Year", (((count(*) * 1000)) / (count(*)))
Inner Unique: true Merge Cond: (fontime."Year" = fontime_1."Year")
-> GroupAggregate (cost=1.00..499.01 rows=1 width=12)
Output: fontime."Year", (count(*) * 1000)
Group Key: fontime."Year"
-> Foreign Scan on public.fontime (cost=1.00..-1.00 rows=100000 width=4)
Remote SQL: SELECT "Year" FROM "default".ontime WHERE (("DepDelay" > 10))
ORDER BY "Year" ASC
-> GroupAggregate (cost=1.00..499.01 rows=1 width=12)
Output: fontime_1."Year", count(*) Group Key: fontime_1."Year"
-> Foreign Scan on public.fontime fontime_1 (cost=1.00..-1.00 rows=100000 width=4)
Remote SQL: SELECT "Year" FROM "default".ontime ORDER BY "Year" ASC(16 rows)
เจธเจฟเฉฑเจเจพ
เจเจนเจจเจพเจ เจชเฉเจฐเจฏเฉเจเจพเจ เจฆเฉ เจจเจคเฉเจเฉ เจฆเจฐเจธเจพเจเจเจฆเฉ เจนเจจ เจเจฟ เจเจฒเจฟเจเจนเจพเจเจธ เจ เจธเจฒ เจตเจฟเฉฑเจ เจตเจงเฉเจ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฆเฉ เจชเฉเจธเจผเจเจธเจผ เจเจฐเจฆเจพ เจนเฉ, เจ เจคเฉ clickhousedb_fdw PostgreSQL เจคเฉเจ Clickhouse เจฆเฉ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฒเจพเจญเจพเจ เจฆเฉ เจชเฉเจธเจผเจเจธเจผ เจเจฐเจฆเจพ เจนเฉเฅค เจเจฆเฉเจ เจเจฟ clickhousedb_fdw เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจธเจฎเฉเจ เจเฉเจ เจเจตเจฐเจนเฉเฉฑเจก เจนเฉเฉฐเจฆเจพ เจนเฉ, เจเจน เจเจฒเจฟเจเจนเจพเจเจธ เจกเฉเจเจพเจฌเฉเจธ 'เจคเฉ เจจเฉเจเจฟเจต เจคเฉเจฐ 'เจคเฉ เจเจฒเจพเจเจฃ เจฆเฉเจเจฐเจพ เจชเฉเจฐเจพเจชเจค เจเฉเจคเฉ เจเจพเจฐเจเฉเจเจผเจพเจฐเฉ เจฆเฉ เจฎเฉเจเจพเจฌเจฒเฉ เจฌเจนเฉเจค เจเฉฑเจ เจ เจคเฉ เจคเฉเจฒเจจเจพเจคเจฎเจ เจนเฉเฅค เจเจน เจเจน เจตเฉ เจชเฉเจธเจผเจเฉ เจเจฐเจฆเจพ เจนเฉ เจเจฟ PostgreSQL เจตเจฟเฉฑเจ fdw เจธเจผเจพเจจเจฆเจพเจฐ เจจเจคเฉเจเฉ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเจพ เจนเฉเฅค
เจเจฒเจฟเจเจนเจพเจเจธ เจฐเจพเจนเฉเจ เจเฉเจฒเฉเจเฉเจฐเจพเจฎ เจเฉเจ
PostgreSQL เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเฉเจฒเฉเจเฉเจฐเจพเจฎ เจเฉเจ
เจธเจฐเฉเจค: www.habr.com