เด เดชเด เดจเดคเตเดคเดฟเตฝ, PostgreSQL-เดจเต เดชเดเดฐเด เดเดฐเต ClickHouse เดกเดพเดฑเตเดฑเดพ เดเดฑเดตเดฟเดเด เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดฒเตเดเต เดเดจเดฟเดเตเดเต เดเดจเตเดคเต เดชเตเดฐเดเดเดจ เดฎเตเดเตเดเดชเตเดชเตเดเตเดคเตเดคเดฒเตเดเตพ เดเตเดตเดฐเดฟเดเตเดเดพเดจเดพเดเตเดฎเตเดจเตเดจเต เดเดพเดฃเดพเตป เดเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเต. ClickHouse-เตฝ เดจเดฟเดจเตเดจเต เดเดจเดฟเดเตเดเต เดฒเดญเดฟเดเตเดเตเดจเตเดจ เดชเตเดฐเดเดเดจ เดจเตเดเตเดเดเตเดเตพ เดเดจเดฟเดเตเดเดฑเดฟเดฏเดพเด. เดเดฐเต เดฌเดพเดนเตเดฏ เดกเดพเดฑเตเดฑ เดฑเดพเดชเตเดชเตผ (FDW) เดเดชเดฏเตเดเดฟเดเตเดเต PostgreSQL-เตฝ เดจเดฟเดจเตเดจเต ClickHouse เดเดเตโเดธเดธเต เดเตเดฏเตโเดคเดพเตฝ เด เดเดจเตเดเตเดฒเตเดฏเดเตเดเตพ เดธเดเดฐเดเตเดทเดฟเดเตเดเดชเตเดชเตเดเตเดฎเต?
เดชเด เดจเดคเตเดคเดฟเตป เดเตเดดเดฟเดฒเตเดณเตเดณ เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดเตพ PostgreSQL v11, clickhousedb_fdw, ClickHouse เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เดเดจเตเดจเดฟเดตเดฏเดพเดฃเต. เด เดตเดธเดพเดจเดฎเดพเดฏเดฟ, clickhousedb_fdw เดตเดดเดฟ เดฑเตเดเตเดเต เดเตเดฏเตโเดค PostgreSQL v11-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดตเดฟเดตเดฟเดง SQL เดเตเดตเดฑเดฟเดเตพ ClickHouse เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเดฒเตเดเตเดเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเด. เดคเตเดเตผเดจเตเดจเต, เดจเตเดฑเตเดฑเตเดตเต PostgreSQL-เดฒเตเด เดจเตเดฑเตเดฑเตเดตเต ClickHouse-เดฒเตเด เดเดเตเดธเดฟเดเตเดฏเตเดเตเดเต เดเตเดฏเตเดฏเตเดจเตเดจ เด เดคเต เดเตเดตเดฑเดฟเดเดณเตเดฎเดพเดฏเดฟ FDW-เดฏเตเดเต เดชเตเดฐเดเดเดจเด เดเดเตเดเดจเต เดคเดพเดฐเดคเดฎเตเดฏเด เดเตเดฏเตเดฏเตเดจเตเดจเตเดตเตเดจเตเดจเต เดจเดฎเตเดเตเดเต เดจเตเดเตเดเดพเด.
เดเตเดฒเดฟเดเตเดเตเดนเตเดธเต เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต
เดชเดฐเดฎเตเดชเดฐเดพเดเดค เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เดธเดฎเตเดชเดจเดเตเดเดณเตเดเตเดเดพเตพ 100-1000 เดฎเดเดเตเดเต เดตเตเดเดคเตเดคเดฟเตฝ เดชเตเดฐเดเดเดจเด เดเตเดตเดฐเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเดจเตเดจ เดเดฐเต เดเดชเตเดชเตบ เดธเตเดดเตโเดธเต, เดเตเดณเด เด เดงเดฟเดทเตเด เดฟเดค เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เดฎเดพเดจเตเดเตโเดฎเตเดจเตเดฑเต เดธเดฟเดธเตเดฑเตเดฑเดฎเดพเดฃเต เดเตเดฒเดฟเดเตเดเตเดนเตเดธเต. เดเดฐเต เดธเตเดเตเดเตปเดกเดฟเดจเตเดณเตเดณเดฟเตฝ เดเดฐเต เดฌเดฟเดฒเตเดฏเดฃเดฟเดฒเดงเดฟเดเด เดตเดฐเดฟเดเตพ เดชเตเดฐเตเดธเดธเตเดธเต เดเตเดฏเตเดฏเดพเตป เดเดคเต เดชเตเดฐเดพเดชเตเดคเดฎเดพเดฃเต.
เดเตเดฒเดฟเดเตเดเตเดนเตเดธเตเดกเตเดฌเต_เดเดซเตเดกเดฟเดกเดฌเตเดฒเตเดฏเต
clickhousedb_fdw โ เดเตเดฒเดฟเดเตเดเตเดนเตเดธเต เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เดเดเตเดธเตเดฑเตเดฑเตเดฃเตฝ เดกเดพเดฑเตเดฑ เดฑเดพเดชเตเดชเตผ เด เดฅเดตเดพ เดเดซเตเดกเดฟเดกเดฌเตเดฒเตเดฏเต, เดชเตเตผเดเตเดฃเดฏเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดเดฐเต เดเดชเตเดชเตบ เดธเตเดดเตโเดธเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเดพเดฃเต. .
.
เดจเดฟเดเตเดเตพเดเตเดเต เดเดพเดฃเดพเดจเดพเดเตเดจเตเดจเดคเตเดชเตเดฒเต, เดเดคเต เดเตเดฒเดฟเดเตเดเตเดนเตเดธเดฟเดจเตเดณเตเดณ เดเดฐเต เดเดซเตโเดกเดฟเดกเดฌเตเดฒเตเดฏเต เดจเตฝเดเตเดจเตเดจเต, เด เดคเต เดเดฐเต เดชเตเดธเตเดฑเตเดฑเตโเดเตเดฐเตเดธเตโเดเตเดฏเตเดเตฝ เดตเดฟ11 เดธเตเตผเดตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฐเต เดเตเดฒเดฟเดเตเดเตเดนเตเดธเต เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเตฝ เดจเดฟเดจเตเดจเต เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเดพเดจเตเด เดเตปเดธเตเตผเดเตเดเต เดเตเดฏเตเดฏเดพเดจเตเด เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต.
เด เดเตเดฐเดเตเดฑเตเดฑเตเดเตพ, เดเตเดฏเดฟเดจเตเดเตพ เดคเตเดเดเตเดเดฟเดฏ เดจเตเดคเดจ เดธเดตเดฟเดถเตเดทเดคเดเดณเต FDW เดชเดฟเดจเตเดคเตเดฃเดฏเตเดเตเดเตเดจเตเดจเต. เดฑเดฟเดธเตเดดเตโเดธเต-เดเดจเตเดฑเตปเดธเตเดตเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพเดเตเดเดพเดฏเดฟ เดฑเดฟเดฎเตเดเตเดเต เดธเตเตผเดตเตผ เดเดฑเดตเดฟเดเดเตเดเตพ เดเดชเดฏเตเดเดชเตเดชเตเดเตเดคเตเดคเตเดจเตเดจเดคเดฟเดฒเตเดเต เดเดคเต เดชเตเดฐเดเดเดจเด เดเดฃเตเดฏเดฎเดพเดฏเดฟ เดฎเตเดเตเดเดชเตเดชเตเดเตเดคเตเดคเตเดจเตเดจเต.
เดฌเตเดเตเดเตเดฎเดพเตผเดเตเดเต เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ
- เดธเตเดชเตเดชเตผเดฎเตเดเตเดฐเต เดธเตเตผเดตเตผ:
- Intelยฎ Xeonยฎ CPU E5-2683 v3 @ 2.00GHz
- 2 เดธเตเดเตเดเดฑเตเดฑเตเดเตพ / 28 เดเตเดฑเตเดเตพ / 56 เดคเตเดฐเตเดกเตเดเตพ
- เดฎเตเดฎเตเดฎเดฑเดฟ: 256 เดเดฟเดฌเดฟ เดฑเดพเด
- เดธเดเดญเดฐเดฃเด: เดธเดพเดเดธเดเต SM863 1.9TB เดเดจเตเดฑเตผเดชเตเดฐเตเดธเต SSD
- เดซเดฏเตฝเดธเดฟเดธเตเดฑเตเดฑเด: ext4/xfs
- OS: เดฒเดฟเดจเดเตเดธเต smblade01 4.15.0-42-generic #45~16.04.1-เดเดฌเตเดฃเตเดเต
- เดชเตเดธเตเดฑเตเดฑเตเดเตเดฐเตเดธเตเดเตเดฏเตเดเตฝ: เดชเดคเดฟเดชเตเดชเต 11
เดฌเตเดเตเดเตเดฎเดพเตผเดเตเดเต เดชเดฐเดฟเดถเตเดงเดจเดเตพ
เด เดชเดฐเตเดเตเดทเดฃเดคเตเดคเดฟเดจเดพเดฏเดฟ เดฎเตเดทเตเตป เดเดจเดฑเตเดฑเตเดฑเดกเต เดกเดพเดฑเตเดฑเดพเดธเตเดฑเตเดฑเต เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดชเดเดฐเด, 1987 เดฎเตเดคเตฝ 2018 เดตเดฐเตเดฏเตเดณเตเดณ "เดเดชเตเดชเดฑเตเดฑเตเดฑเตผ เดธเดฎเดฏเด เดฑเดฟเดชเตเดชเตเตผเดเตเดเต เดเตเดฏเตเดค เดธเดฎเดฏเดคเตเดคเดฟเดจเดจเตเดธเดฐเดฟเดเตเดเต เดเตฝเดชเตเดชเดพเดฆเดจเดเตเดทเดฎเดค" เดกเดพเดฑเตเดฑ เดเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต. เดจเดฟเดเตเดเตพเดเตเดเต เดกเดพเดฑเตเดฑ เดเดเตโเดธเดธเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเด. .
เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เดตเดฒเตเดชเตเดชเด 85GB เดเดฃเต, 109 เดจเดฟเดฐเดเดณเตเดณเตเดณ เดเดฐเต เดชเดเตเดเดฟเด เดจเตฝเดเตเดจเตเดจเต.
เดฌเตเดเตเดเตเดฎเดพเตผเดเตเดเต เดเตเดฆเตเดฏเดเตเดเตพ
ClickHouse, clickhousedb_fdw, PostgreSQL เดเดจเตเดจเดฟเดต เดคเดพเดฐเดคเดฎเตเดฏเด เดเตเดฏเตเดฏเดพเตป เดเดพเตป เดเดชเดฏเตเดเดฟเดเตเด เดเตเดฆเตเดฏเดเตเดเตพ เดเดคเดพ.
Q#
เดเตเดฆเตเดฏเดคเตเดคเดฟเตฝ เด
เดเตเดฐเดเตเดฑเตเดฑเตเดเดณเตเด เดเตเดฐเตเดชเตเดชเต เดฌเตเดฏเตเด เด
เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต
Q1
เดเดดเตเดเดฏเดฟเดฒเต เดฆเดฟเดตเดธเด เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเด, เดธเดฎเดฏเด เด
เดจเตเดธเดฐเดฟเดเตเดเต c เดเดฏเดฟ เดเดฃเตเดฃเตเด WHERE เดตเตผเดทเด >= 2000 เดเด เดตเตผเดทเด <= 2008 เดเตเดฐเตเดชเตเดชเต DayOfWeek เดชเตเดฐเดเดพเดฐเด c DESC เดชเตเดฐเดเดพเดฐเด เดเตผเดกเตผ เดเตเดฏเตเดฏเตเด;
Q2
เดเดดเตเดเดฏเดฟเดฒเต เดฆเดฟเดตเดธเด เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเด, เดธเดฎเดฏเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต c เดเดฏเดฟ เดเดฃเตเดฃเตเด WHERE DepDelay>10 AND Year>= 2000 AND Year> <= 2008 GROUP เดฌเต DayOfWeek> c DESC เดชเตเดฐเดเดพเดฐเด เดเตผเดกเตผ เดเตเดฏเตเดฏเตเด;
Q3
เดเดคเตเดญเดตเด เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเด, เดธเดฎเดฏเด เด
เดจเตเดธเดฐเดฟเดเตเดเต c as c WHERE DepDelay>10 AND Year>= 2000 AND Year <= 2008 เดเดคเตเดญเดตเด เด
เดจเตเดธเดฐเดฟเดเตเดเต เดเตเดฐเตเดชเตเดชเต c DESC เดชเดฐเดฟเดงเดฟ 10 เดชเตเดฐเดเดพเดฐเด เดเตผเดกเตผ เดเตเดฏเตเดฏเตเด;
Q4
เดเดพเดฐเดฟเดฏเตผ เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเด, เดเดฃเตเดฃเตเด() เดเตเดคเตเดฏเดธเดฎเดฏเดคเตเดคเต เดจเดฟเดจเตเดจเต WHERE DepDelay 10 AND Year = 2007 เดเตเดฐเตเดชเตเดชเต เดเดพเดฐเดฟเดฏเตผ เดเตผเดกเตผ เดชเตเดฐเดเดพเดฐเด เดเดฃเตเดฃเด() เดกเดฟเดเดเดธเตเดธเดฟ;
Q5
เด.เดเดพเดฐเดฟเดฏเตผ, เดธเดฟ, เดธเดฟ2, เดธเดฟ เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเด1000/c2 เดเดฏเดฟ c3 FROM ( เดเดพเดฐเดฟเดฏเตผ เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเด, เดเดฃเตเดฃเตเด() AS c FROM ontime WHERE DepDelay 10 AND Year=2007 GROUP BY Carrier ) a INNER JOIN ( SELECT Carrier, count(*) AS c2 FROM ontime WHERE Year=2007 GROUP BY Carrier)b on a.Carrier=b.Carrier ORDER BY c3 DESC;
Q6
เด.เดเดพเดฐเดฟเดฏเตผ, เดธเดฟ, เดธเดฟ2, เดธเดฟ เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเด1000/c2 เดเดฏเดฟ c3 FROM ( เดเดพเดฐเดฟเดฏเตผ เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเด, เดเดฃเตเดฃเตเด() AS c FROM ontime WHERE DepDelay 10 AND Year >= 2000 AND Year <= 2008 GROUP BY เดเดพเดฐเดฟเดฏเตผ) a INNER JOIN ( SELECT CARIER, count(*) AS c2 FROM ontime WHERE Year >= 2000 AND Year <= 2008 GROUP BY เดเดพเดฐเดฟเดฏเตผ ) b on a.Carrier=b.Carrier C3 DESC เดตเดดเดฟ เดเตผเดกเตผ เดเตเดฏเตเดฏเตเด;
Q7
เดเดพเดฐเดฟเดฏเตผ เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเด, เดถเดฐเดพเดถเดฐเดฟ(DepDelay) * 1000 AS c3 เดเตบเดเตเดฎเดฟเตฝ เดจเดฟเดจเตเดจเต WHERE เดตเตผเดทเด >= 2000 เดเด เดตเตผเดทเด <= 2008 เดเตเดฐเตเดชเตเดชเต เดเดพเดฐเดฟเดฏเตผ เดชเตเดฐเดเดพเดฐเด;
Q8
เดตเตผเดทเด เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเด, เดถเดฐเดพเดถเดฐเดฟ (DepDelay) เดเตเดคเตเดฏเดธเดฎเดฏเดคเตเดคเต เดจเดฟเดจเตเดจเต เดเตเดฐเตเดชเตเดชเต เด
เดจเตเดธเดฐเดฟเดเตเดเต เดตเตผเดทเด;
Q9
เดตเตผเดทเด เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเด, เดเตบเดเตเด เดเตเดฐเตเดชเตเดชเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตผเดทเด เด
เดจเตเดธเดฐเดฟเดเตเดเต c1 เดเดฏเดฟ เดเดฃเตเดฃเตเด(*);
Q10
เดถเดฐเดพเดถเดฐเดฟ(cnt) เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเด (เดตเตผเดทเด,เดฎเดพเดธเด,เดเดฃเตเดฃเด(*) as cnt FROM Ontime WHERE DepDel15=1 GROUP BY Year,Month) a;
Q11
(เดตเตผเดทเด,เดฎเดพเดธเด,เดเดฃเตเดฃเด(*) เดเดจเตเดจเดฟเดต c1 เดเดฏเดฟ เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเด) a เดเดจเตเดจเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดถเดฐเดพเดถเดฐเดฟ(c1) เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเด;
Q12
OriginCityName, DestCityName เดเดจเตเดจเดฟเดต เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเด, count(*) AS c FROM ontime GROUP BY OriginCityName, DestCityName C DESC LIMIT 10 เดชเตเดฐเดเดพเดฐเด เดเตผเดกเตผ เดเตเดฏเตเดฏเตเด;
Q13
OriginCityName เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเด, count(*) as c FROM ontime GROUP BY OriginCityName C DESC LIMIT 10 เดเตผเดกเตผ เดเตเดฏเตเดฏเตเด;
เดเตเดฆเตเดฏเดคเตเดคเดฟเตฝ เดเตเดฏเดฟเดจเตเดเตพ เด เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต
Q14
เดตเตผเดทเด เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเด, c1/c2 FROM ( เดตเตผเดทเด เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเด, เดเดฃเตเดฃเด ()1000 as c1 from ontime WHERE DepDelay 10 GROUP BY Year) a INNER JOIN (Year เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเด, count(*) from c2 from ontime GROUP BY Year ) b on a.Year=b.Year ORDER BY a.Year;
Q15
เดเดฐเต โเดตเตผเดทเดโ, c1/c2 FROM เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเด ( โเดตเตผเดทเดโ เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเด, เดเดฃเตเดฃเตเด()1000 as c1 from fontime WHERE โDepDelayโ>10 GROUP BY โYearโ) a INNER JOIN (โYearโ เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเด, count(*) as c2 as fontime GROUP BY โYearโ ) b on a.โYearโ=b.โYearโ;
เดชเดเตเดเดฟเด-1: เดฌเตเดเตเดเตเดฎเดพเตผเดเตเดเดฟเตฝ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจ เดเตเดฆเตเดฏเดเตเดเตพ
เด เดจเตเดตเตเดทเดฃ เดจเดฟเตผเดตเตเดตเดนเดฃเดเตเดเตพ
เดตเตเดฏเดคเตเดฏเดธเตเดค เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เดเตเดฐเดฎเตเดเดฐเดฃเดเตเดเดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดฎเตเดชเตเตพ เดเดฐเต เด เดจเตเดตเตเดทเดฃเดคเตเดคเดฟเดจเตเดฎเตเดณเตเดณ เดซเดฒเดเตเดเตพ เดเดคเดพ: เดธเตเดเดฟเดเดเดณเตเดณเตเดณเดคเตเด เดเดฒเตเดฒเดพเดคเตเดคเดคเตเดฎเดพเดฏ PostgreSQL, เดจเตเดฑเตเดฑเตเดตเต ClickHouse, clickhousedb_fdw. เดธเดฎเดฏเด เดฎเดฟเดฒเตเดฒเดฟเดธเตเดเตเดเตปเดกเตเดเดณเดฟเตฝ เดเดพเดฃเดฟเดเตเดเตเดจเตเดจเต.
Q#
PostgreSQL เดเดจเตเดจเต
เดชเตเดธเตเดฑเตเดฑเตเดเตเดฐเตเดเดธเตเดเตเดฏเตเดเตฝ (เดเตปเดกเตเดเตเดธเต เดเตเดฏเตเดคเดคเต)
เดเตเดฒเดฟเดเตเดเตเดน ouse เดธเต
เดเตเดฒเดฟเดเตเดเตเดนเตเดธเตเดกเตเดฌเต_เดเดซเตเดกเดฟเดกเดฌเตเดฒเตเดฏเต
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 เดเดชเดฏเตเดเดฟเดเตเดเต Postgres-เตฝ เดจเดฟเดจเตเดจเต เดตเตเดฃเตเดเตเดเตเดเตเดเตเดจเตเดจ ClickHouse เดซเดฒเดเตเดเดณเตเด เดกเดพเดฑเตเดฑเดฏเตเด เดเดพเดฃเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. PostgreSQL-เดจเตเด ClickHouse-เดจเตเด เดเดเดฏเดฟเตฝ เดเดฐเต เดชเตเดฐเดงเดพเดจ เดตเตเดฏเดคเตเดฏเดพเดธเด เดชเดเตเดเดฟเด เดเดพเดฃเดฟเดเตเดเตเดจเตเดจเต, เดเดจเตเดจเดพเตฝ ClickHouse-เดจเตเด clickhousedb_fdw-เดจเตเด เดเดเดฏเดฟเดฒเตเดณเตเดณ เดเดฑเตเดฑเดตเตเด เดเตเดฑเดเตเด เดตเตเดฏเดคเตเดฏเดพเดธเด.

ClickhouseDB เดฏเตเด clickhousedb_fdw เดฏเตเด เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เดตเตเดฏเดคเตเดฏเดพเดธเด เด เดเตเดฐเดพเดซเต เดเดพเดฃเดฟเดเตเดเตเดจเตเดจเต. เดฎเดฟเดเตเด เด เดจเตเดตเตเดทเดฃเดเตเดเตพเดเตเดเตเด, FDW เดฏเตเดเต เดเดตเตผเดนเตเดกเต เด เดคเตเดฐ เดเดฏเตผเดจเตเดจเดคเดฒเตเดฒ, Q12 เดเดดเดฟเดเต, เดเดคเต เดตเดณเดฐเต เดชเตเดฐเดพเดงเดพเดจเตเดฏเดฎเตผเดนเดฟเดเตเดเตเดจเตเดจเดคเตเดฎเดพเดฃเต. เด เดเตเดฆเตเดฏเดคเตเดคเดฟเตฝ เดเตเดฏเดฟเดจเตเดเดณเตเด เดเดฐเต ORDER BY เดเตเดฒเตเดธเตเด เดเตพเดชเตเดชเตเดเตเดจเตเดจเต. ORDER BY เดเตเดฒเตเดธเต เดเดพเดฐเดฃเด, GROUP/BY, ORDER BY เดเดจเตเดจเดฟเดต ClickHouse เดฒเตเดเตเดเต เดคเดณเตเดณเดฟเดตเดฟเดเตเดจเตเดจเดฟเดฒเตเดฒ.
เดชเดเตเดเดฟเด 2-เตฝ, Q12, Q13 เดเดจเตเดจเต เดเตเดฆเตเดฏเดเตเดเดณเดฟเตฝ เดธเดฎเดฏเดคเตเดคเดฟเตฝ เดเดฐเต เดเตเดคเดฟเดเตเดเตเดเดพเดเตเดเด เดเดพเดฃเดพเด. เดตเตเดฃเตเดเตเด, เดเดคเต ORDER BY เดเตเดฒเตเดธเต เดฎเตเดฒเดฎเดพเดฃเต เดธเดเดญเดตเดฟเดเตเดเตเดจเตเดจเดคเต. เดเดคเต เดธเตเดฅเดฟเดฐเตเดเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เดเดพเตป Q-14, Q-15 เดเตเดฆเตเดฏเดเตเดเตพ ORDER BY เดเตเดฒเตเดธเต เดเดชเดฏเตเดเดฟเดเตเดเตเด เด เดฒเตเดฒเดพเดคเตเดฏเตเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเต. ORDER BY เดเตเดฒเตเดธเต เดเดฒเตเดฒเดพเดคเต, เดชเตเตผเดคเตเดคเตเดเดฐเดฃ เดธเดฎเดฏเด 259 ms เดเดฃเต, เด เดคเตเดธเดฎเดฏเด ORDER BY เดเตเดฒเตเดธเต เดเดชเดฏเตเดเดฟเดเตเดเต, เดเดคเต 1364212 ms เดเดฃเต. เด เดเตเดฆเตเดฏเด เดกเตเดฌเดเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดเดพเตป เดฐเดฃเตเดเต เดเตเดฆเตเดฏเดเตเดเดณเตเด เดตเดฟเดถเดฆเตเดเดฐเดฟเดเตเดเตเดจเตเดจเต, เดซเดฒเดเตเดเตพ เดเดตเดฟเดเต เดเดพเดฃเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต.
เดเตเดฆเตเดฏเด 15: เดเตผเดกเตผ เดฌเต เดเตเดฒเตเดธเต เดเดฒเตเดฒเดพเดคเต
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";เดเตเดฆเตเดฏเด 15: เดเตเดฒเตเดธเต เดชเตเดฐเดเดพเดฐเด เดเตผเดกเตผ เดเตเดฏเตเดฏเดพเดคเต เด เดจเตเดตเตเดทเดฃเด เดจเดเดคเตเดคเตเด
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)เดเตเดฆเตเดฏเด 14: เดเตผเดกเตผ เดฌเต เดเตเดฒเตเดธเต เดเดชเดฏเตเดเดฟเดเตเดเต เด เดจเตเดตเตเดทเดฃเด เดจเดเดคเตเดคเตเด
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";เดเตเดฆเตเดฏเด 14: เดเตผเดกเตผ เดฌเต เดเตเดฒเตเดธเต เดเดณเตเดณ เดเตเดตเดฑเดฟ เดชเตเดฒเดพเตป
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)เดคเตเดฐเตเดฎเดพเดจเด
เด เดชเดฐเตเดเตเดทเดฃเดเตเดเดณเตเดเต เดซเดฒเดเตเดเตพ เดเดพเดฃเดฟเดเตเดเตเดจเตเดจเดคเต ClickHouse เดฎเดฟเดเดเตเด เดชเตเดฐเดเดเดจเด เดตเดพเดเตเดฆเดพเดจเด เดเตเดฏเตเดฏเตเดจเตเดจเต เดเดจเตเดจเดพเดฃเต, เดเตเดเดพเดคเต clickhousedb_fdw ClickHouse เดจเตเดฑเต เดชเตเดฐเดเดเดจ เดจเตเดเตเดเดเตเดเตพ PostgreSQL-เดฒเตเดเตเดเต เดเตเดฃเตเดเตเดตเดฐเตเดจเตเดจเต. clickhousedb_fdw เดเดชเดฏเตเดเดฟเดเตเดเตเดฎเตเดชเตเตพ เดเดฟเดฒ เดเดตเตผเดนเตเดกเตเดเตพ เดเดฃเตเดเตเดเตเดเดฟเดฒเตเด, เด เดคเต เดจเดฟเดธเตเดธเดพเดฐเดตเตเด เดเดฐเต ClickHouse เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเตฝ เดจเตเดฑเตเดฑเตเดตเต เดเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดฎเตเดชเตเตพ เดจเตเดเตเดจเตเดจ เดชเตเดฐเดเดเดจเดตเตเดฎเดพเดฏเดฟ เดคเดพเดฐเดคเดฎเตเดฏเดชเตเดชเตเดเตเดคเตเดคเดพเดตเตเดจเตเดจเดคเตเดฎเดพเดฃเต. PostgreSQL-เดฒเต fdw เดฎเดฟเดเดเตเด เดซเดฒเดเตเดเตพ เดจเตฝเดเตเดจเตเดจเตเดตเตเดจเตเดจเต เดเดคเต เดธเตเดฅเดฟเดฐเตเดเดฐเดฟเดเตเดเตเดจเตเดจเต.
เดเตเดฒเดฟเดเตเดเตเดนเตเดธเดฟเดฒเต เดเตเดฒเดฟเดเตเดฐเดพเด เดเดพเดฑเตเดฑเต
PostgreSQL เดจเตเดเตเดเตเดฑเดฟเดเตเดเตเดณเตเดณ เดเตเดฒเดฟเดเตเดฐเดพเด เดเดพเดฑเตเดฑเต
เด เดตเดฒเดเดฌเด: www.habr.com
