ClickHouse คืออะไร และวิธีติดตั้งบน Cloud Server
ClickHouse คือฐานข้อมูลเชิงคอลัมน์ที่ออกแบบมาเพื่องานวิเคราะห์โดยเฉพาะ สามารถสรุปข้อมูลหลายพันล้านแถวได้ในเวลาไม่กี่วินาที จึงเป็นหัวใจของระบบรายงานและ Analytics ยุคใหม่
- หมวดหมู่
- ฐานข้อมูล
- ติดตั้งบนเซิร์ฟเวอร์เองได้
- ได้
- สเปกเริ่มต้นที่แนะนำ
- 4 vCPU · RAM 8 GB
- ไลเซนส์
- Apache License 2.0 (โอเพนซอร์ส)
- เว็บทางการ
- เปิดเว็บไซต์
- ISO/IEC 27001
- ISO 22301
- ISO 20000-1
- CSA-STAR
Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย
ClickHouse คืออะไร
ฐานข้อมูลทั่วไปเก็บข้อมูลเป็นแถว ซึ่งเหมาะกับการอ่านเขียนทีละรายการ แต่ช้าเมื่อต้องสรุปข้อมูลทั้งตาราง ClickHouse เก็บเป็นคอลัมน์ จึงอ่านเฉพาะคอลัมน์ที่ใช้และบีบอัดได้ดีมาก ผลคือคิวรีสรุปข้อมูลเร็วขึ้นหลายสิบเท่า
งานที่ ClickHouse ทำได้ดีที่สุดคือการเขียนข้อมูลเข้าเป็นชุดใหญ่แล้วอ่านเพื่อสรุป เช่น ข้อมูลเหตุการณ์ของเว็บ ข้อมูลจากอุปกรณ์ IoT หรือ Log ปริมาณมหาศาล
สิ่งที่ ClickHouse ไม่ได้ออกแบบมาให้ทำคือการแก้ไขข้อมูลทีละแถวบ่อย ๆ แบบระบบธุรกรรม งานลักษณะนั้นควรอยู่กับ PostgreSQL หรือ MySQL แล้วส่งข้อมูลมาสรุปที่ ClickHouse
ความสามารถเด่นของ ClickHouse
เร็วมากกับงานสรุปข้อมูล
อ่านเฉพาะคอลัมน์ที่จำเป็นและประมวลผลแบบเวกเตอร์ จึงตอบคิวรีระดับพันล้านแถวได้ในไม่กี่วินาที
บีบอัดข้อมูลได้สูง
ข้อมูลชนิดเดียวกันอยู่ติดกันจึงบีบอัดได้ดี ประหยัดพื้นที่จัดเก็บอย่างมีนัยสำคัญ
รองรับ SQL
ใช้ภาษา SQL ที่ทีมข้อมูลคุ้นเคย พร้อมฟังก์ชันวิเคราะห์เฉพาะทางจำนวนมาก
รับข้อมูลเข้าได้หลายทาง
เชื่อมกับ Kafka, ไฟล์ CSV, Parquet และฐานข้อมูลอื่นได้โดยตรง
Materialized View
สรุปข้อมูลล่วงหน้าขณะเขียน ทำให้แดชบอร์ดตอบสนองทันที
ใช้ ClickHouse ทำอะไรได้บ้าง
- แดชบอร์ดวิเคราะห์พฤติกรรมผู้ใช้ที่ต้องสรุปข้อมูลจำนวนมาก
- ระบบเก็บข้อมูลเหตุการณ์และ Log สำหรับตรวจสอบย้อนหลัง
- คลังข้อมูลขนาดกลางที่ไม่อยากลงทุนกับระบบ Data Warehouse เชิงพาณิชย์
- ระบบรายงานที่ต่อกับ Metabase, Superset หรือ Grafana
สเปก Cloud Server ที่แนะนำ
| ระดับการใช้งาน | vCPU | RAM | Disk |
|---|---|---|---|
| เริ่มต้นทดสอบและชุดข้อมูลไม่เกินหลักสิบล้านแถว | 4 vCPU | 8 GB | NVMe 100 GB |
| แนะนำงานวิเคราะห์จริงระดับหลายร้อยล้านแถว | 8 vCPU | 32 GB | NVMe 500 GB |
| ระบบใหญ่คลังข้อมูลระดับพันล้านแถวหรือคลัสเตอร์หลายโหนด | 16 vCPU ขึ้นไป | 64 GB ขึ้นไป | NVMe 1 TB ขึ้นไป |
ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ
วิธีติดตั้ง ClickHouse บน Cloud Server ของ THAI DATA CLOUD
ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server
สิ่งที่ต้องเตรียม
- Ubuntu Server 24.04 LTS หรือ Rocky Linux 9
- ซีพียูที่รองรับชุดคำสั่ง SSE 4.2 ขึ้นไป
- ดิสก์ NVMe และ RAM มากพอสำหรับคิวรีที่ต้องจัดกลุ่มข้อมูลจำนวนมาก
ทดสอบบน Ubuntu Server 24.04 LTS
- 1
เพิ่มที่เก็บแพ็กเกจและติดตั้ง
ระหว่างติดตั้งระบบจะถามให้ตั้งรหัสผ่านของผู้ใช้ default ให้ตั้งรหัสที่แข็งแรง
curl -fsSL https://packages.clickhouse.com/rpm/lts/repodata/repomd.xml.key | \ sudo gpg --dearmor -o /usr/share/keyrings/clickhouse-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/clickhouse-keyring.gpg] https://packages.clickhouse.com/deb stable main" | \ sudo tee /etc/apt/sources.list.d/clickhouse.list sudo apt update sudo apt -y install clickhouse-server clickhouse-client - 2
เปิดบริการ
sudo systemctl enable --now clickhouse-server sudo systemctl status clickhouse-server --no-pager - 3
เข้าใช้งานผ่าน Client
clickhouse-client --password - 4
สร้างตารางตัวอย่างสำหรับข้อมูลเหตุการณ์
เอนจิน MergeTree คือเอนจินหลักของ ClickHouse การเลือกคีย์เรียงลำดับให้ตรงกับรูปแบบการคิวรีมีผลต่อความเร็วมากที่สุด
CREATE TABLE events ( event_time DateTime, user_id UInt64, event_type LowCardinality(String), page String, duration_ms UInt32 ) ENGINE = MergeTree() PARTITION BY toYYYYMM(event_time) ORDER BY (event_type, event_time); - 5
เปิดการเชื่อมต่อจากวงภายใน
แก้ไฟล์ตั้งค่าให้ฟังเฉพาะไอพีภายใน แล้วเปิด Firewall เฉพาะเครื่องที่ต้องใช้
<clickhouse> <listen_host>10.10.0.40</listen_host> </clickhouse>
พอร์ตที่ต้องเปิดบน Firewall
| พอร์ต | โปรโตคอล | ใช้ทำอะไร |
|---|---|---|
| 8123 | TCP | HTTP interface สำหรับเครื่องมือ BI (เปิดเฉพาะวงภายใน) |
| 9000 | TCP | Native protocol สำหรับ Client |
สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ
- ตั้งรหัสผ่านให้ผู้ใช้ default หรือปิดผู้ใช้นี้แล้วสร้างผู้ใช้เฉพาะงาน
- ผูกบริการกับวงภายในและไม่เปิดสู่อินเทอร์เน็ต
- จำกัดโควตาการใช้หน่วยความจำต่อคิวรีเพื่อไม่ให้คิวรีเดียวทำให้เครื่องล่ม
- ตั้ง TTL ของข้อมูลเพื่อลบข้อมูลเก่าอัตโนมัติตามนโยบายการเก็บรักษา
ทำไมควรรัน ClickHouse บน Cloud Server ของ THAI DATA CLOUD
Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง
งานวิเคราะห์กินดิสก์และ RAM สูง การเพิ่มสเปกบน Cloud Server ทำได้ทันทีโดยไม่ต้องลงทุนฮาร์ดแวร์
เก็บข้อมูลดิบของลูกค้าไว้ในไทยแทนการส่งขึ้นบริการวิเคราะห์ต่างประเทศ ช่วยเรื่อง PDPA
ต่อกับ Metabase, Superset หรือ Grafana ที่รันบน Cloud Server อีกเครื่องในวงเดียวกันได้
คำถามที่พบบ่อยเกี่ยวกับ ClickHouse
ClickHouse ใช้แทน MySQL หรือ PostgreSQL ได้ไหม
ไม่ได้ทดแทนกันโดยตรง ClickHouse ออกแบบมาเพื่ออ่านและสรุปข้อมูลจำนวนมาก ไม่ใช่สำหรับงานธุรกรรมที่แก้ไขข้อมูลทีละแถวบ่อย ๆ แนวทางที่นิยมคือใช้ทั้งสองอย่างคู่กัน
ต้องมีข้อมูลมากแค่ไหนถึงคุ้มที่จะใช้
ถ้าตารางรายงานเริ่มมีข้อมูลหลักสิบล้านแถวขึ้นไปและคิวรีสรุปเริ่มใช้เวลาหลายสิบวินาทีบนฐานข้อมูลเดิม นั่นคือจุดที่ ClickHouse จะให้ผลต่างชัดเจน
ต้องทำคลัสเตอร์ตั้งแต่แรกไหม
ไม่จำเป็น เครื่องเดียวที่สเปกดีรองรับข้อมูลได้มากกว่าที่หลายคนคาด เริ่มจากเครื่องเดียวก่อนแล้วขยายเป็นคลัสเตอร์เมื่อข้อมูลหรือทราฟฟิกโตจนจำเป็นจริง
ทางเลือกอื่นที่คล้ายกับ ClickHouse
แอปอื่นในหมวด ฐานข้อมูล
บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง
ให้เราติดตั้ง ClickHouse ให้ฟรี บน Cloud Server ในไทย
แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด