เชเซ เชคเชฎเซ เชเซเชฏเชพเชฐเซเชฏ เชฒเซเชเซเชธ เชเซเชตเชพ เชฎเชพเชเซ เชตเซเชฌ เชเชจเซเชเชฐเชซเซเชธเชจเซ เชเชชเชฏเซเช เชเชฐเซเชฏเซ เชนเซเชฏ, เชคเซ เชคเชฎเซ เชเชฆเชพเช เชจเซเชเชงเซเชฏเซเช เชนเชถเซ เชเซ เชเซเชตเซ เชฐเซเชคเซ, เชเช เชจเชฟเชฏเชฎ เชคเชฐเซเชเซ, เช เชเชจเซเชเชฐเชซเซเชธเซ เชฌเซเชเชพเชฐเซเชช เชเซ เช เชจเซ (เชเชฃเซเชตเชพเชฐ) เชเซเชฌ เช เชจเซเชเซเชณ เช เชจเซ เชชเซเชฐเชคเชฟเชญเชพเชต เชเชชเชคเชพ เชจเชฅเซ. เชเซเชเชฒเชพเชเชจเซ เชคเชฎเชจเซ เชเชฆเชค เชชเชกเซ เชถเชเซ เชเซ, เชเซเชเชฒเซเช เชเชเชฆเชฎ เชญเชฏเชเชเชฐ เชเซ, เชชเชฐเชเชคเซ เชฎเชจเซ เชฒเชพเชเซ เชเซ เชเซ เชฌเชงเซ เชธเชฎเชธเซเชฏเชพเชเชจเซเช เชเชพเชฐเชฃ เช เชเซ เชเซ เช เชฎเซ เชฒเซเช เชเซเชตเชพเชจเชพ เชเชพเชฐเซเชฏเชจเซ เชเซเชเซ เชฐเซเชคเซ เชธเชเชชเชฐเซเช เชเชฐเซเช เชเซเช: เช เชฎเซ เชเช เชตเซเชฌ เชเชจเซเชเชฐเชซเซเชธ เชฌเชจเชพเชตเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซเช เชเซเช เชเซเชฏเชพเช CLI (เชเชฎเชพเชจเซเชก เชฒเชพเชเชจ เชเชจเซเชเชฐเชซเซเชธ) เชตเชงเซ เชธเชพเชฐเซ เชฐเซเชคเซ เชเชพเชฎ เชเชฐเซ เชเซ. เชนเซเช เช เชเชเชค เชฐเซเชคเซ tail, grep, awk เช เชจเซ เช เชจเซเชฏ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพ เชฎเชพเชเซ เชเซเชฌ เช เชเชฐเชพเชฎเชฆเชพเชฏเช เชเซเช เช เชจเซ เชคเซเชฅเซ เชฎเชพเชฐเชพ เชฎเชพเชเซ เชฒเซเช เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพ เชฎเชพเชเซเชจเซเช เชเชฆเชฐเซเชถ เชเชจเซเชเชฐเชซเซเชธ tail เช เชจเซ grep เชเซเชตเซเช เช เชนเชถเซ, เชชเชฐเชเชคเซ เชเซเชจเซ เชเชชเชฏเซเช เชเชฃเชพ เชธเชฐเซเชตเชฐเซเชธเชฎเชพเชเชฅเซ เชเชตเชคเชพ เชฒเซเชเชจเซ เชตเชพเชเชเชตเชพ เชฎเชพเชเซ เชชเชฃ เชฅเช เชถเชเซ เชเซ. เชคเซ เชเซ, เช เชฒเชฌเชคเซเชค, เชคเซเชฎเชจเซ เชเซเชฒเชฟเชเชนเชพเชเชธเชฎเชพเชเชฅเซ เชตเชพเชเชเซ!
*เชนเชพเชฌเซเชฐเชพ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชจเชพ เช
เชเชเชค เช
เชญเชฟเชชเซเชฐเชพเชฏ เชฎเซเชเชฌ
logscli เชจเซ เชฎเชณเซ
เชนเซเช เชฎเชพเชฐเชพ เชเชจเซเชเชฐเชซเซเชธ เชฎเชพเชเซ เชจเชพเชฎ เชธเชพเชฅเซ เชเชตเซเชฏเซ เชจเชฅเซ, เช
เชจเซ, เชชเซเชฐเชฎเชพเชฃเชฟเชเชชเชฃเซ, เชคเซ เชชเซเชฐเซเชเซเชเชพเชเชชเชจเชพ เชฐเซเชชเชฎเชพเช เช
เชธเซเชคเชฟเชคเซเชตเชฎเชพเช เชเซ, เชชเชฐเชเชคเซ เชเซ เชคเชฎเซ เชคเชฐเชค เช เชธเซเชฐเซเชค เชเซเชก เชเซเชตเชพ เชฎเชพเชเชเชคเชพ เชนเซ, เชคเซ เชคเชฎเชพเชฐเซเช เชธเซเชตเชพเชเชค เชเซ:
เชฒเชเซเชทเชฃเซ
เชฎเชพเชฐเซ เชงเซเชฏเซเชฏ เชเช เชเชจเซเชเชฐเชซเซเชธ เชฌเชจเชพเชตเชตเชพเชจเซ เชนเชคเซ เชเซ เชชเซเชเชเชกเซ/เชเซเชฐเซเชช เชฎเชพเชเซ เชตเชชเชฐเชพเชฏ เชเซ, เชเชเชฒเซ เชเซ เชจเซเชเซเชจเซ เชฌเชพเชฌเชคเซเชจเซ เชเซเชเซ เชเชชเชตเชพ เชฎเชพเชเซ เชชเชฐเชฟเชเชฟเชค เชฒเชพเชเซ.
- เชซเชฟเชฒเซเชเชฐ เชเชฐเซเชฏเชพ เชตเชฟเชจเชพ, เชฌเชงเชพ เชฒเซเช เชเซเช.
- เชจเชฟเชถเซเชเชฟเชค เชธเชฌเชธเซเชเซเชฐเชฟเชเช เชงเชฐเชพเชตเชคเซ เชฐเซเชเชพเช เชเซเชกเซ (เชงเซเชตเช
-F
ัgrep
). - เชจเชฟเชฏเชฎเชฟเชค เช
เชญเชฟเชตเซเชฏเชเซเชคเชฟ เชธเชพเชฅเซ เชฎเซเชณ เชเชพเชคเซ เชฐเซเชเชพเช เชเซเชกเซ (เชงเซเชตเช
-E
ัgrep
). - เชฎเซเชณเชญเซเชค เชฐเซเชคเซ, เชเซเชตเซเช เช เชตเชฟเชชเชฐเซเชค เชเชพเชฒเชเซเชฐเชฎเชฟเช เชเซเชฐเชฎเชฎเชพเช เชเซ, เชเชพเชฐเชฃ เชเซ เชธเซเชฅเซ เชคเชพเชเซเชคเชฐเชจเชพ เชฒเซเช เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เชชเซเชฐเชฅเชฎ เชฐเชธ เชงเชฐเชพเชตเชคเชพ เชนเซเชฏ เชเซ.
- เชฆเชฐเซเช เชฒเชพเชเชจเชจเซ เชฌเชพเชเซเชฎเชพเช เชธเชเชฆเชฐเซเชญ เชฌเชคเชพเชตเซ (เชตเชฟเชเชฒเซเชชเซ
-A
,-B
ะธ-C
ัgrep
, เช เชจเซเชเซเชฐเชฎเซ เชฆเชฐเซเช เชฎเซเชณ เชเชพเชคเซ เชฒเชพเชเชจเชจเซ เชชเชนเซเชฒเชพ, เชชเชเซ เช เชจเซ เชเชธเชชเชพเชธ N เชฐเซเชเชพเช เชเชพเชชเชตเซ). - เชซเชฟเชฒเซเชเชฐเชฟเชเช เชธเชพเชฅเซ เช
เชฅเชตเชพ เชตเชเชฐ (เชเชตเชถเซเชฏเช เชฐเซเชคเซ
tail -f | grep
). - เชเชจเซเชเชฐเชซเซเชธ เชธเชพเชฅเซ เชธเซเชธเชเชเชค เชนเซเชตเซเช เชเชตเชถเซเชฏเช เชเซ
less
,head
,tail
เช เชจเซ เช เชจเซเชฏ - เชกเชฟเชซเซเชฒเซเช เชฐเซเชชเซ, เชชเชฐเชฟเชฃเชพเชฎเซ เชคเซเชฎเชจเซ เชธเชเชเซเชฏเชพ เชชเชฐ เชชเซเชฐเชคเชฟเชฌเชเชง เชตเชฟเชจเชพ เชชเชฐเชค เชเชฐเชตเชพ เชเซเชเช; เชเซเชฏเชพเช เชธเซเชงเซ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชคเซเชฎเชจเซ เชชเซเชฐเชพเชชเซเชค เชเชฐเชตเชพเชฎเชพเช เชฐเชธ เชงเชฐเชพเชตเชคเซ เชนเซเชฏ เชคเซเชฏเชพเช เชธเซเชงเซ เชฐเซเชเชพเช เชธเซเชเซเชฐเซเชฎ เชคเชฐเซเชเซ เชเชพเชชเชตเชพเชฎเชพเช เชเชตเซ เชเซ; เชธเชเชเซเชคSIGPIPE
เชฒเซเช เชธเซเชเซเชฐเซเชฎเชฟเชเชเชจเซ เชถเชพเชเชคเชฟเชชเซเชฐเซเชตเช เช เชเชเชพเชตเชตเซเช เชเซเชเช, เชเซเชฎ เชคเซเช เชเชฐเซ เชเซtail
,grep
เช เชจเซ เช เชจเซเชฏ UNIX เชเชชเชฏเซเชเชฟเชคเชพเช.
ะ ะตะฐะปะธะทะฐัะธั
เชนเซเช เชงเชพเชฐเซเชถ เชเซ เชคเชฎเซ เชชเชนเซเชฒเซเชฅเซ เช เชเซเชเช เชฐเซเชคเซ เชเชพเชฃเซ เชเซ เชเซ เชเซเชฒเชฟเชเชนเชพเชเชธ เชชเชฐ เชฒเซเช เชเซเชตเซ เชฐเซเชคเซ เชชเชนเซเชเชเชพเชกเชตเชพ. เชเซ เชจเชนเชฟเช, เชคเซ เชนเซเช เชคเซเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเชตเชพเชจเซ เชญเชฒเชพเชฎเชฃ เชเชฐเซเช เชเซเช
เชชเซเชฐเชฅเชฎ เชคเชฎเชพเชฐเซ เชเชงเชพเชฐ เชฏเซเชเชจเชพ เชชเชฐ เชจเชฟเชฐเซเชฃเชฏ เชฒเซเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เชคเชฎเซ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เชธเชฎเชฏ เชชเซเชฐเชฎเชพเชฃเซ เชธเซเชฐเซเช เชเชฐเซเชฒเชพ เชฒเซเชเซเชธ เชชเซเชฐเชพเชชเซเชค เชเชฐเชตเชพ เชฎเชพเชเชคเชพ เชนเซเชตเชพเชฅเซ, เชคเซเชจเซ เชคเซ เชฐเซเชคเซ เชธเชเชเซเชฐเชนเชฟเชค เชเชฐเชตเซเช เชคเชพเชฐเซเชเชฟเช เชฒเชพเชเซ เชเซ. เชเซ เชคเซเชฏเชพเช เชเชฃเซ เชฌเชงเซ เชฒเซเช เชเซเชเซเชเชฐเซเช เชเซ เช เชจเซ เชคเซ เชฌเชงเซ เชเช เช เชชเซเชฐเชเชพเชฐเชจเซ เชเซ, เชคเซ เชชเชเซ เชคเชฎเซ เชชเซเชฐเชพเชฅเชฎเชฟเช เชเซเชจเซ เชชเซเชฐเชฅเชฎ เชเซเชฒเชฎ เชคเชฐเซเชเซ เชฒเซเช เชเซเชเซเชเชฐเซ เชฌเชจเชพเชตเซ เชถเชเซ เชเซ - เช เชคเชฎเชจเซ เชเชฃเชพเชจเซ เชฌเชฆเชฒเซ เชเช เชเซเชฌเชฒ เชฐเชพเชเชตเชพ เชฆเซเชถเซ, เชเซ เชเช เชฎเซเชเซ เชตเชคเซเชคเชพ เชนเชถเซ เชเซเชฏเชพเชฐเซ เชเซเชฒเชฟเชเชนเชพเชเชธเชฎเชพเช เชฆเชพเชเชฒ เชเชฐเชตเซเช (เชนเชพเชฐเซเชก เชกเซเชฐเชพเชเชต เชธเชพเชฅเซเชจเชพ เชธเชฐเซเชตเชฐ เชชเชฐ, เชชเซเชฐเชคเชฟ เชธเซเชเชจเซเชกเชฎเชพเช ~1 เชตเชเชคเชฅเซ เชตเชงเซ เชกเซเชเชพ เชฆเชพเชเชฒ เชเชฐเชตเชพเชจเซ เชญเชฒเชพเชฎเชฃ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชธเชฎเชเซเชฐ เชธเชฐเซเชตเชฐ เชฎเชพเชเซ).
เชเชเชฒเซ เชเซ, เช เชฎเชจเซ เชฒเชเชญเช เชจเซเชเซเชจเซ เชเซเชทเซเชเช เชฏเซเชเชจเชพเชจเซ เชเชฐเซเชฐ เชเซ:
CREATE TABLE logs(
category LowCardinality(String), -- ะบะฐัะตะณะพัะธั ะปะพะณะพะฒ (ะพะฟัะธะพะฝะฐะปัะฝะพ)
time DateTime, -- ะฒัะตะผั ัะพะฑััะธั
millis UInt16, -- ะผะธะปะปะธัะตะบัะฝะดั (ะผะพะณัั ะฑััั ะธ ะผะธะบัะพัะตะบัะฝะดั, ะธ ั.ะด.): ัะตะบะพะผะตะฝะดัะตััั ั
ัะฐะฝะธัั, ะตัะปะธ ัะพะฑััะธะน ะผะฝะพะณะพ, ััะพะฑั ะฑัะปะพ ะปะตะณัะต ัะฐะทะปะธัะฐัั ัะพะฑััะธั ะผะตะถะดั ัะพะฑะพะน
..., -- ะฒะฐัะธ ัะพะฑััะฒะตะฝะฝัะต ะฟะพะปั, ะฝะฐะฟัะธะผะตั ะธะผั ัะตัะฒะตัะฐ, ััะพะฒะตะฝั ะปะพะณะธัะพะฒะฐะฝะธั, ะธ ัะฐะบ ะดะฐะปะตะต
message String -- ัะตะบัั ัะพะพะฑัะตะฝะธั
) ENGINE=MergeTree()
ORDER BY (category, time, millis)
เชเชฎเชจเชธเซเชฌเซ, เชฎเชจเซ เชคเชฐเชค เช เชตเชพเชธเซเชคเชตเชฟเช เชฒเซเชเซเชธ เชธเชพเชฅเซเชจเชพ เชเซเชเชชเชฃ เชเซเชฒเซเชฒเชพ เชธเซเชฐเซเชคเซ เชฎเชณเซเชฏเชพเช เชจเชฅเซ เชเซ เชเซเชจเซ เชนเซเช เชชเชเชกเซ เชถเชเซเช เช
เชจเซ เชกเชพเชเชจเชฒเซเชก เชเชฐเซ เชถเชเซเช, เชคเซเชฅเซ เชฎเซเช เชคเซเชจเซ เชฌเชฆเชฒเซ เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ เชฒเซเชงเซเช
เชเซเชฒเชฟเชเชนเชพเชเชธ เชชเชฐ เชเชฎเซเชเซเชจ เชธเชฎเซเชเซเชทเชพเช เช เชชเชฒเซเชก เชเชฐเชตเชพ เชฎเชพเชเซเชจเซ เชธเซเชเชจเชพเช
เชเชพเชฒเซ เชเช เชเซเชฌเชฒ เชฌเชจเชพเชตเซเช:
CREATE TABLE amazon(
review_date Date,
time DateTime DEFAULT toDateTime(toUInt32(review_date) * 86400 + rand() % 86400),
millis UInt16 DEFAULT rand() % 1000,
marketplace LowCardinality(String),
customer_id Int64,
review_id String,
product_id LowCardinality(String),
product_parent Int64,
product_title String,
product_category LowCardinality(String),
star_rating UInt8,
helpful_votes UInt32,
total_votes UInt32,
vine FixedString(1),
verified_purchase FixedString(1),
review_headline String,
review_body String
)
ENGINE=MergeTree()
ORDER BY (time, millis)
SETTINGS index_granularity=8192
เชเชฎเซเชเซเชจ เชกเซเชเชพเชธเซเชเชฎเชพเช เชธเชฎเซเชเซเชทเชพ เชฎเชพเชเซ เชฎเชพเชคเซเชฐ เชเช เชคเชพเชฐเซเช เชเซ, เชชเชฐเชเชคเซ เชคเซเชฏเชพเช เชเซเช เชเซเชเซเชเชธ เชธเชฎเชฏ เชจเชฅเซ, เชคเซเชฅเซ เชเชพเชฒเซ เช เชกเซเชเชพเชจเซ เชฐเซเชจเซเชกเชจ เชธเชพเชฅเซ เชญเชฐเซเช.
เชคเชฎเชพเชฐเซ เชฌเชงเซ tsv เชซเชพเชเชฒเซ เชกเชพเชเชจเชฒเซเชก เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชจเชฅเซ เช เชจเซ 10 GB RAM เชฎเชพเช เชซเชฟเช เชจ เชนเซเชฏ เชคเซเชตเชพ เชกเซเชเชพเชจเซ เชเชเชฆเชฎ เชฎเซเชเซ เชธเซเช เชฎเซเชณเชตเชตเชพ เชฎเชพเชเซ เชคเชฎเชพเชฐเซ เชเชพเชคเชจเซ เชชเซเชฐเชฅเชฎ ~20-16 เชธเซเชงเซ เชฎเชฐเซเชฏเชพเชฆเชฟเชค เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชจเชฅเซ. TSV เชซเชพเชเชฒเซ เช เชชเชฒเซเชก เชเชฐเชตเชพ เชฎเชพเชเซ เชฎเซเช เชจเซเชเซเชจเชพ เชเชฆเซเชถเชจเซ เชเชชเชฏเซเช เชเชฐเซเชฏเซ:
for i in *.tsv; do
echo $i;
tail -n +2 $i | pv |
clickhouse-client --input_format_allow_errors_ratio 0.5 --query='INSERT INTO amazon(marketplace,customer_id,review_id,product_id,product_parent,product_title,product_category,star_rating,helpful_votes,total_votes,vine,verified_purchase,review_headline,review_body,review_date) FORMAT TabSeparated'
done
Google เชเซเชฒเชพเชเชกเชฎเชพเช 1000 GB เชจเซ เชธเชพเชเช เชงเชฐเชพเชตเชคเซ เชธเซเชเชพเชจเซเชกเชฐเซเชก เชชเชฐเซเชธเชฟเชธเซเชเชจเซเช เชกเชฟเชธเซเช (เชเซ HDD เชเซ) เชชเชฐ (เชฎเซเช เช เชธเชพเชเช เชฎเซเชเซเชฏเชคเซเชตเซ เชเชเชฒเชพ เชฎเชพเชเซ เชฒเซเชงเซ เชเซ เชเซ เชธเซเชชเซเชก เชฅเซเชกเซ เชตเชงเชพเชฐเซ เชนเชคเซ, เชเซ เชเซ เชเชฆเชพเช เชเชฐเซเชฐเซ เชเชฆเชจเซ SSD เชธเชธเซเชคเซ เชนเซเชค) เช เชชเชฒเซเชก 75 เชเซเชฐเซ เชชเชฐ เชเชกเชช เชเชถเชฐเซ ~ 4 MB/sec เชนเชคเซ.
- เชฎเชพเชฐเซ เชเช เชฐเชฟเชเชฐเซเชตเซเชถเชจ เชเชฐเชตเซเช เชเซเชเช เชเซ เชนเซเช Google เชชเชฐ เชเชพเชฎ เชเชฐเซเช เชเซเช, เชชเชฐเชเชคเซ เชฎเซเช เชตเซเชฏเชเซเชคเชฟเชเชค เชเชเชพเชเชจเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเชฏเซ เชเซ เช เชจเซ เช เชฒเซเชเชจเซ เชเชเชชเชจเซเชฎเชพเช เชฎเชพเชฐเชพ เชเชพเชฎ เชธเชพเชฅเซ เชเซเช เชฒเซเชตเชพเชฆเซเชตเชพ เชจเชฅเซ
เชนเซเช เช เชเซเชเซเชเชธ เชกเซเชเชพเชธเซเช เชธเชพเชฅเซ เชคเชฎเชพเชฎ เชเชฟเชคเซเชฐเซ เชฌเชจเชพเชตเซเชถ, เชเชพเชฐเชฃ เชเซ เชฎเชพเชฐเซ เชชเชพเชธเซ เช เชฌเชงเซเช เชเซ.
เชกเซเชเชพ เชธเซเชเซเชจเชฟเชเช เชชเซเชฐเชเชคเชฟ เชฌเชคเชพเชตเซ
เชเซเชฒเชฟเชเชนเชพเชเชธเชฎเชพเช เช
เชฎเซ เชฒเซเชเซเชธ เชธเชพเชฅเซเชจเชพ เชเซเชฌเชฒ เชชเชฐ เชธเชเชชเซเชฐเซเชฃ เชธเซเชเซเชจเชจเซ เชเชชเชฏเซเช เชเชฐเซเชถเซเช, เช
เชจเซ เช เชเชชเชฐเซเชถเชจเชฎเชพเช เชจเซเชเชงเชชเชพเชคเซเชฐ เชธเชฎเชฏ เชฒเชพเชเซ เชถเชเซ เชเซ เช
เชจเซ เชเซ เชฅเซเชกเชพ เชฎเซเช เชเซเชตเชพ เชฎเชณเซ เชคเซ เชฒเชพเชเชฌเชพ เชธเชฎเชฏ เชธเซเชงเซ เชเซเช เชชเชฐเชฟเชฃเชพเชฎ เชจ เชเชชเซ เชถเชเซ, เชคเซ เชฌเชคเชพเชตเชตเชพ เชฎเชพเชเซ เชธเชเซเชทเชฎ เชฌเชจเชตเชพเชจเซ เชธเชฒเชพเชน เชเชชเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชชเชฐเชฟเชฃเชพเชฎ เชธเชพเชฅเซเชจเซ เชชเซเชฐเชฅเชฎ เชชเชเชเซเชคเชฟเช เชชเซเชฐเชพเชชเซเชค เชฅเชพเชฏ เชคเซเชฏเชพเช เชธเซเชงเซ เชเซเชตเซเชฐเซ เชชเซเชฐเชเชคเชฟ. เช เชเชฐเชตเชพ เชฎเชพเชเซ, HTTP เชเชจเซเชเชฐเชซเซเชธเชฎเชพเช เชเช เชชเชฐเชฟเชฎเชพเชฃ เชเซ เชเซ เชคเชฎเชจเซ HTTP เชนเซเชกเชฐเซเชฎเชพเช เชชเซเชฐเชเชคเชฟ เชฎเซเชเชฒเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ: send_progress_in_http_headers=1
. เชเชฎเชจเชธเซเชฌเซ, เชธเซเชเชพเชจเซเชกเชฐเซเชก เชเซ เชฒเชพเชเชฌเซเชฐเซเชฐเซ เชฎเชฅเชพเชณเชพเช เชชเซเชฐเชพเชชเซเชค เชฅเชคเชพเช เชตเชพเชเชเซ เชถเชเชคเซ เชจเชฅเซ, เชชเชฐเชเชคเซ HTTP 1.0 เชเชจเซเชเชฐเชซเซเชธ (1.1 เชธเชพเชฅเซ เชฎเซเชเชเชตเชฃเชฎเชพเช เชจ เชเชตเซ!) ClickHouse เชฆเซเชตเชพเชฐเชพ เชธเชชเซเชฐเซเชเซเชก เชเซ, เชคเซเชฅเซ เชคเชฎเซ ClickHouse เชชเชฐ เชเชพเชเซเช TCP เชเชจเซเชเซเชถเชจ เชเซเชฒเซ เชถเชเซ เชเซ เช
เชจเซ เชคเซเชจเซ เชคเซเชฏเชพเช เชฎเซเชเชฒเซ เชถเชเซ เชเซ. GET /?query=... HTTP/1.0nn
เช
เชจเซ เชเซเชเชชเชฃ เชเชธเซเชเซเชชเชฟเชเช เช
เชฅเชตเชพ เชเชจเซเชเซเชฐเชฟเชชเซเชถเชจ เชตเชฟเชจเชพ เชชเซเชฐเชคเชฟเชธเชพเชฆ เชนเซเชกเชฐเซ เช
เชจเซ เชฎเซเชเซเชฏ เชญเชพเช เชชเซเชฐเชพเชชเซเชค เชเชฐเซ, เชคเซเชฅเซ เช เชเชฟเชธเซเชธเชพเชฎเชพเช เช
เชฎเชพเชฐเซ เชชเซเชฐเชฎเชพเชฃเชญเซเชค เชชเซเชธเซเชคเชเชพเชฒเชฏเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซ เชชเชฃ เชเชฐเซเชฐ เชจเชฅเซ.
เชเซเชฒเชฟเชเชนเชพเชเชธเชฎเชพเชเชฅเซ เชธเซเชเซเชฐเซเชฎเชฟเชเช เชฒเซเช
ClickHouse เชชเซเชฐเชฎเชพเชฃเชฎเชพเช เชฒเชพเชเชฌเชพ เชธเชฎเชฏเชฅเซ (2019 เชฅเซ?) เชฎเชพเชเซ ORDER BY เชธเชพเชฅเซ เชเซเชตเซเชฐเซ เชฎเชพเชเซ เชเชชเซเชเชฟเชฎเชพเชเชเซเชถเชจ เชงเชฐเชพเชตเซ เชเซ, เชคเซเชฅเซ เชเซเชตเซเชฐเซ เชเซเชตเซ
SELECT time, millis, message
FROM logs
WHERE message LIKE '%something%'
ORDER BY time DESC, millis DESC
เชคเซ เชคเชฐเชค เช เชฒเชพเชเชจเซเชธ เชชเชฐเชค เชเชฐเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเชถเซ เชเซ เชเซเชจเชพ เชธเชเชฆเซเชถเชฎเชพเช "เชเชเชเช" เชธเชฌเชธเซเชเซเชฐเชฟเชเช เชนเชถเซ, เชธเซเชเซเชจ เชชเซเชฐเซเชฃ เชฅเชตเชพเชจเซ เชฐเชพเชน เชเซเชฏเชพ เชตเชฟเชจเชพ.
เชเชชเชฐเชพเชเชค, เชคเซ เชเซเชฌ เช
เชจเซเชเซเชณ เชฐเชนเซเชถเซ เชเซ เชเซเชฒเชฟเชเชนเชพเชเชธ เชชเซเชคเซ เชตเชฟเชจเชเชคเซเชจเซ เชฐเชฆ เชเชฐเซ เชเซเชฏเชพเชฐเซ เชคเซเชจเซเช เชเซเชกเชพเชฃ เชฌเชเชง เชนเซเชฏ, เชชเชฐเชเชคเซ เช เชกเชฟเชซเซเชฒเซเช เชตเชฐเซเชคเชจ เชจเชฅเซ. เชตเชฟเชเชฒเซเชชเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชธเซเชตเชเชพเชฒเชฟเชค เชตเชฟเชจเชเชคเซ เชฐเชฆ เชเชฐเชตเชพเชจเซเช เชธเชเซเชทเชฎ เชเชฐเซ เชถเชเชพเชฏ เชเซ cancel_http_readonly_queries_on_client_close=1
.
เชเซเชฎเชพเช SIGPIPE เชจเซเช เชฏเซเชเซเชฏ เชธเชเชเชพเชฒเชจ
เชเซเชฏเชพเชฐเซ เชคเชฎเซ เชเชฒเชพเชตเซ, เชเชนเซ, เชเชฆเซเชถ some_cmd | head -n 10
, เชฌเชฐเชพเชฌเชฐ เชเซเชตเซ เชฐเซเชคเซ เชเชฆเซเชถ some_cmd
เชเซเชฏเชพเชฐเซ เช
เชฎเชฒ เช
เชเชเซ เชเซ head
10 เชฒเซเชเซเช เชฌเชพเชฆ เชเชฐเซ? เชเชตเชพเชฌ เชธเชฐเชณ เชเซ: เชเซเชฏเชพเชฐเซ head
เชธเชฎเชพเชชเซเชค เชฅเชพเชฏ เชเซ, เชชเชพเชเชช เชฌเชเชง เชฅเชพเชฏ เชเซ, เช
เชจเซ some_cmd เชเชฆเซเชถเชจเซ stdout เชถเชฐเชคเซ เชฐเซเชคเซ, "เชเซเชฏเชพเชเชฏ เชธเซเชงเซ" เชจเชฟเชฐเซเชฆเซเชถ เชเชฐเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซ เชเซ. เชเซเชฏเชพเชฐเซ some_cmd
เชฌเชเชง เชชเชพเชเชช เชชเชฐ เชฒเชเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซ เชเซ,
เชเซเชฎเชพเช เช เชกเชฟเชซเซเชฒเซเช เชฐเซเชชเซ เชชเชฃ เชฅเชพเชฏ เชเซ, เชชเชฐเชเชคเซ SIGPIPE เชธเชฟเชเซเชจเชฒ เชนเซเชจเซเชกเชฒเชฐ "เชธเชฟเชเซเชจเชฒ: SIGPIPE" เช เชฅเชตเชพ เชธเชฎเชพเชจ เชธเชเชฆเซเชถ เชชเชฃ เชเชพเชชเซ เชเซ, เช เชจเซ เช เชธเชเชฆเซเชถเชจเซ เชธเชพเชซ เชเชฐเชตเชพ เชฎเชพเชเซ เชเชชเชฃเซ เชซเชเซเชค SIGPIPEเชจเซ เชเชชเชฃเซ เชเซ เชฐเซเชคเซ เชเซเชเช เชเซ เชคเซ เชฐเซเชคเซ เชนเซเชจเซเชกเชฒ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ, เชเชเชฒเซ เชเซ, เชฎเชพเชคเซเชฐ เชถเชพเชเชคเชฟเชฅเซ เชฌเชนเชพเชฐ เชจเซเชเชณเซ
ch := make(chan os.Signal)
signal.Notify(ch, syscall.SIGPIPE)
go func() {
<-ch
os.Exit(0)
}()
เชธเชเชฆเซเชถเชจเซ เชธเชเชฆเชฐเซเชญ เชฌเชคเชพเชตเซ
เชเชฃเซเชตเชพเชฐ เชคเชฎเซ เชคเซ เชธเชเชฆเชฐเซเชญเชจเซ เชเซเชตเชพ เชฎเชพเชเชเซ เชเซ เชเซ เชเซเชฎเชพเช เชเซเชเชฒเซเช เชญเซเชฒ เชเชตเซ เชนเชคเซ (เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชเช เชตเชฟเชจเชเชคเซเชจเซ เชเชพเชฐเชฃเซ เชเชญเชฐเชพเช เชฅเชฏเซ เชนเชคเซ, เช
เชฅเชตเชพ เชเซเชฐเซเชถ เชชเชนเซเชฒเชพเช เชเช เชธเชเชฌเชเชงเชฟเชค เชธเชฎเชธเซเชฏเชพเช เชฆเซเชเชพเชคเซ เชนเชคเซ), เช
เชจเซ grep
เช -A, -B, เช
เชจเซ -C เชตเชฟเชเชฒเซเชชเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชเซ เช
เชจเซเชเซเชฐเชฎเซ เชธเชเชฆเซเชถ เชชเชเซ, เชชเชนเซเชฒเชพ เช
เชจเซ เชเชธเชชเชพเชธเชจเซ เชฐเซเชเชพเชเชจเซ เชเชฒเซเชฒเซเชเชฟเชค เชธเชเชเซเชฏเชพ เชฆเชฐเซเชถเชพเชตเซ เชเซ.
เชเชฎเชจเชธเซเชฌเซ, เชฎเชจเซ ClickHouse เชฎเชพเช เชเชตเซเช เชเชฐเชตเชพเชจเซ เชธเชฐเชณ เชฐเซเชค เชฎเชณเซ เชจเชฅเซ, เชคเซเชฅเซ เชธเชเชฆเชฐเซเชญ เชฆเชฐเซเชถเชพเชตเชตเชพ เชฎเชพเชเซ, เชเชจเชพ เชเซเชตเซ เชตเชงเชพเชฐเชพเชจเซ เชตเชฟเชจเชเชคเซ เชชเชฐเชฟเชฃเชพเชฎเชจเซ เชฆเชฐเซเช เชฒเชพเชเชจ เชชเชฐ เชฎเซเชเชฒเชตเชพเชฎเชพเช เชเชตเซ เชเซ (เชตเชฟเชเชคเซ เชธเซเชฐเซเชเชฟเชเช เชชเชฐ เชเชงเชพเชฐเชฟเชค เชเซ เช เชจเซ เชธเชเชฆเชฐเซเชญ เชชเชนเซเชฒเชพเช เชฌเชคเชพเชตเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชเซ เชเซ เชเซเชฎ. เช เชฅเชตเชพ เชชเชเซ):
SELECT time,millis,review_body FROM amazon
WHERE (time = 'ะะ ะะะฏ_ะกะะะซะขะะฏ' AND millis < ะะะะะะกะะะฃะะะซ_ะกะะะซะขะะฏ) OR (time < 'ะะ ะะะฏ_ะกะะะซะขะะฏ')
ORDER BY time DESC, millis DESC
LIMIT ะะะะะงะะกะขะะ_ะกะขะ ะะ_ะะะะขะะะกะขะ
SETTINGS max_threads=1
เชเซเชฒเชฟเชเชนเชพเชเชธ เช เชจเซเชฐเซเชช เชฒเชพเชเชจ เชชเชฐเชค เชเชฐเซเชฏเชพ เชชเชเซ เชตเชฟเชจเชเชคเซ เชฒเชเชญเช เชคเชฐเชค เช เชฎเซเชเชฒเชตเชพเชฎเชพเช เชเชตเชคเซ เชนเซเชตเชพเชฅเซ, เชคเซ เชเซเชถเชฎเชพเช เชธเชฎเชพเชชเซเชค เชฅเชพเชฏ เชเซ เช เชจเซ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เชตเชฟเชจเชเชคเซ เชเซเชฌ เช เชเชกเชชเชฅเซ เชเชเซเชเชฟเชเซเชฏเซเช เชฅเชพเชฏ เชเซ เช เชจเซ เชฅเซเชกเซ CPU เชตเชพเชชเชฐเซ เชเซ (เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เชตเชฟเชจเชเชคเซ เชฎเชพเชฐเชพ เชตเชฐเซเชเซเชฏเซเช เชฒ เชฎเชถเซเชจ เชชเชฐ เชฒเชเชญเช ~6 ms เชฒเซ เชเซ).
เชฐเซเช เชฒ เชเชพเชเชฎเชฎเชพเช เชจเชตเชพ เชธเชเชฆเซเชถเชพเช เชฌเชคเชพเชตเซ
เชเชตเชจเชพเชฐเชพ เชธเชเชฆเซเชถเชพเชเชจเซ (เชฒเชเชญเช) เชฐเซเช เชฒ เชเชพเชเชฎเชฎเชพเช เชฌเชคเชพเชตเชตเชพ เชฎเชพเชเซ, เช เชฎเซ เชฆเชฐ เชฅเซเชกเซเช เชธเซเชเชจเซเชกเชฎเชพเช เชเชเชตเชพเชฐ เชตเชฟเชจเชเชคเซเชจเซ เชเชเซเชเชฟเชเซเชฏเซเช เชเชฐเซเช เชเซเช, เช เชฎเซ เชชเชนเซเชฒเชพเช เช เชจเซเชญเชตเซเชฒเซ เชเซเชฒเซเชฒเซ เชเชพเชเชฎเชธเซเชเซเชฎเซเชชเชจเซ เชฏเชพเชฆ เชฐเชพเชเซเชจเซ.
เชเชฆเซเชถ เชเชฆเชพเชนเชฐเชฃเซ
เชตเซเชฏเชตเชนเชพเชฐเชฎเชพเช เชฒเชพเชเซเชทเชฃเชฟเช logscli เชเชฆเซเชถเซ เชเซเชตเชพ เชฆเซเชเชพเชฏ เชเซ?
เชเซ เชคเชฎเซ เชเชฎเซเชเซเชจ เชกเซเชเชพเชธเซเช เชกเชพเชเชจเชฒเซเชก เชเชฐเซเชฏเซ เชเซ เชเซเชจเซ เชฎเซเช เชฒเซเชเชจเซ เชถเชฐเซเชเชคเชฎเชพเช เชเชฒเซเชฒเซเช เชเชฐเซเชฏเซ เชเซ, เชคเซ เชคเชฎเซ เชจเซเชเซเชจเชพ เชเชฆเซเชถเซ เชเชฒเชพเชตเซ เชถเชเซ เชเซ:
# ะะพะบะฐะทะฐัั ัััะพะบะธ, ะณะดะต ะฒัััะตัะฐะตััั ัะปะพะฒะพ walmart
$ logscli -F 'walmart' | less
# ะะพะบะฐะทะฐัั ัะฐะผัะต ัะฒะตะถะธะต 10 ัััะพะบ, ะณะดะต ะฒัััะตัะฐะตััั "terrible"
$ logscli -F terrible -limit 10
# ะขะพ ะถะต ัะฐะผะพะต ะฑะตะท -limit:
$ logscli -F terrible | head -n 10
# ะะพะบะฐะทะฐัั ะฒัะต ัััะพะบะธ, ะฟะพะดั
ะพะดััะธะต ะฟะพะด /times [0-9]/, ะฝะฐะฟะธัะฐะฝะฝัะต ะดะปั vine ะธ ั ะบะพัะพััั
ะฒััะพะบะธะน ัะตะนัะธะฝะณ
$ logscli -E 'times [0-9]' -where="vine='Y' AND star_rating>4" | less
# ะะพะบะฐะทะฐัั ะฒัะต ัััะพะบะธ ัะพ ัะปะพะฒะพะผ "panic" ะธ 3 ัััะพะบะธ ะบะพะฝัะตะบััะฐ ะฒะพะบััะณ
$ logscli -F 'panic' -C 3 | less
# ะะตะฟัะตััะฒะฝะพ ะฟะพะบะฐะทัะฒะฐัั ะฝะพะฒัะต ัััะพะบะธ ัะพ ัะปะพะฒะพะผ "5-star"
$ logscli -F '5-star' -tailf
เชธเชเชฆเชฐเซเชญเซ
เชฏเซเชเชฟเชฒเชฟเชเซ เชเซเชก (เชฆเชธเซเชคเชพเชตเซเชเซ เชตเชฟเชจเชพ) เชเซเชฅเชฌ เชชเชฐ เช
เชนเซเช เชเชชเชฒเชฌเซเชง เชเซ
เชธเซเชฐเซเชธ: www.habr.com